搭建办公环境ElasticSearch 日志分析系统

时间:2019-12-11 21:23:14   收藏:0   阅读:123
搭建办公环境ElasticSearch 日志分析系统

? 计划将公司的防火墙+交换机+服务器(centos7)+ Vmware+Windows server纳入到监控范围,所以开启了ELK监控之旅。

? 本文采用ELK架构栈进行组建,万丈高楼平地起,虽然开始比较简陋,后期会不断完善这个日志分析系统。

? 全文框架如下:

? Hillstone: syslog→logstash→elasticsearch→kibana

? H3C: syslog→logstash→elasticsearch→kibana

? ESXI: syslog→logstash→elasticsearch→kibana

? Vcenter: syslog→logstash→elasticsearch→kibana

? Windows server: winlogbeat→logstash→elasticsearch→kibana

? linux server: filebeate→lasticsearch→kibana

? ELK说明:

? ELK1: 192.168.20.18:9200

? ELK2: 192.168.20.19:9200

? 规划:

? Logstash: 192.168.20.18

? 不同服务根据端口不同进行标记,创建不同的索引。

?

1 Hillstone部分

1.1 Hillstone配置

1.1.1 配置步骤

? 本文通过web界面配置,当然也能进行命令行配置,具体配置请参考链接。

? 找到Stoneos-日志管理-log配置-日志管理器,配置服务器日志:
? 主机名: 192.168.20.18
? 绑定方式: 虚拟路由器 trust-vr
? 协议: UDP
? 端口: 514

? //我使用的root运行,非root账号使用端口在1024以上。

? 技术分享图片

技术分享图片

技术分享图片

1.1.2 参考链接

elk收集数据中心网络设备日志

hillstone常见配置命令

1.2 添加logstash 配置文件

1.2.1 创建配置测试文件

cat  > /data/config/test-hillstone.config << EOF
input{
        udp {port => 518 type => "Hillstone"}
}
output {
    stdout { codec=> rubydebug }
}
EOF
logstash -f test-hillstone.config

1.2.2 选取其中一条日志进行分析调试。

<190>Nov 29 17:24:52 1404726150004842(root) 44243624 Traffic@FLOW: SESSION: 10.6.2.43:49608->192.168.20.160:11800(TCP), application TCP-ANY, interface tunnel6, vr trust-vr, policy 1, user -@-, host -, send packets 1,send bytes 74,receive packets 1,receive bytes 110,start time 2019-11-29 17:24:50,close time 2019-11-29 17:24:52,session end,TCP RST\n\u0000

1.2.3Logstash分析说明

    可以通过grok debug网站进行自动匹配(https://grokdebug.herokuapp.com/discover?#),再根据分析出来的日志,进行二次调整。
    同样晚上有很多案例进行参考,可以先去参考别人想法,再补充自己的想法。
    关于grok部分详细讲解,请参考https://coding.imooc.com/class/181.html,老师讲的很棒,当然吾爱破解论坛和B站,有免费版。

1.2.4 Logstash综合配置

? 只选取了会话+NAT部分

cat  > /data/config/hillstone.config<< EOF
input{
        udp {
        port => 518 
        type => "hillstone"
        }

}
filter {
    grok {
##流量日志

#SESSION会话结束日志
        match => { "message" => "\<%{BASE10NUM:syslog_pri}\>%{SYSLOGTIMESTAMP:timestamp}\ %{BASE10NUM:serial}\(%{WORD:ROOT}\) %{DATA:logid}\ %{DATA:Sort}@%{DATA:Class}\: %{DATA:module}\: %{IPV4:srcip}\:%{BASE10NUM:srcport}->%{IPV4:dstip}:%{WORD:dstport}\(%{DATA:protocol}\), application %{USER:app}\, interface %{DATA:interface}\, vr %{USER:vr}\, policy %{DATA:policy}\, user %{USERNAME:user}\@%{DATA:AAAserver}\, host %{USER:HOST}\, send packets %{BASE10NUM:sendPackets}\,send bytes %{BASE10NUM:sendBytes}\,receive packets %{BASE10NUM:receivePackets}\,receive bytes %{BASE10NUM:receiveBytes}\,start time %{TIMESTAMP_ISO8601:startTime}\,close time %{TIMESTAMP_ISO8601:closeTime}\,session %{WORD:state}\,%{GREEDYDATA:reason}"}
#SESSION会话开始日志
        match => { "message" => "\<%{BASE10NUM:syslog_pri}\>%{SYSLOGTIMESTAMP:timestamp}\ %{BASE10NUM:serial}\(%{WORD:ROOT}\) %{DATA:logid}\ %{DATA:Sort}@%{DATA:Class}\: %{DATA:module}\: %{IPV4:srcip}\:%{BASE10NUM:srcport}->%{IPV4:dstip}:%{WORD:dstport}\(%{DATA:protocol}\), interface %{DATA:interface}\, vr %{DATA:vr}\, policy %{DATA:policy}\, user %{USERNAME:user}\@%{DATA:AAAserver}\, host %{USER:HOST}\, session %{WORD:state}%{GREEDYDATA:reason}"}
#SNAT日志
        match => { "message" => "\<%{BASE10NUM:syslog_pri}\>%{SYSLOGTIMESTAMP:timestamp}\ %{BASE10NUM:serial}\(%{WORD:ROOT}\) %{DATA:logid}\ %{DATA:Sort}@%{DATA:Class}\: %{DATA:module}\: %{IPV4:srcip}\:%{BASE10NUM:srcport}->%{IPV4:dstip}:%{WORD:dstport}\(%{DATA:protocol}\), %{WORD:state} to %{IPV4:snatip}\:%{BASE10NUM:snatport}\, vr\ %{DATA:vr}\, user\ %{USERNAME:user}\@%{DATA:AAAserver}\, host\ %{DATA:HOST}\, rule\ %{BASE10NUM:rule}"}
#DNAT日志
                match => { "message" => "\<%{BASE10NUM:syslog_pri}\>%{SYSLOGTIMESTAMP:timestamp}\ %{BASE10NUM:serial}\(%{WORD:ROOT}\) %{DATA:logid}\ %{DATA:Sort}@%{DATA:Class}\: %{DATA:module}\: %{IPV4:srcip}\:%{BASE10NUM:srcport}->%{IPV4:dstip}:%{WORD:dstport}\(%{DATA:protocol}\), %{WORD:state} to %{IPV4:dnatip}\:%{BASE10NUM:dnatport}\, vr\ %{DATA:vr}\, user\ %{USERNAME:user}\@%{DATA:AAAserver}\, host\ %{DATA:HOST}\, rule\ %{BASE10NUM:rule}"}
    }
    mutate {
                lowercase => [ "module" ]
                remove_field => ["host", "message", "ROOT", "HOST", "serial", "syslog_pri", "timestamp", "mac", "AAAserver", "user"]
        }
}
output {
    elasticsearch {
    hosts => "192.168.20.18:9200"  #elasticsearch服务地址
    index => "logstash-hillstone-%{module}-%{state}-%{+YYYY.MM.dd}"
    }
}
EOF
3.1.2.3 参考文件

hillstone中logstash配置参考

elk收集数据中心网络设备日志

山石hillstone Logstash配置流程

ELK从入门到实践

2 H3C交换机部分

2.1 H3C Syslog转发

2.1.1 H3C交换机配置

? 本文通过命令行进行配置,具体配置请参考链接。

2.1.2 参考链接

? H3C设置时间

? H3C网络日志转发

? H3C配置日志主机

2.2 添加logstash 配置文件

2.2.1 创建配置测试文件

cat  > /data/config/test-h3c.congfig << EOF
input{
        udp {port => 516 type => "h3c"}
}
output {
    stdout { codec=> rubydebug }
}
EOF

2.2.2 选取一条日志进行分析调试。

<190>Nov 30 16:27:23 1404726150004842(root) 44243622 Traffic@FLOW: SESSION: 10.6.4.178:48150->192.168.20.161:11800(TCP), interface tunnel6, vr trust-vr, policy 1, user -@-, host -, session start\n\u0000

2.2.3 mutate基本用法说明

? 参考链接: https://blog.csdn.net/qq_34624315/article/details/83013531

2.2.4 综合配置。

cat > H3C.conf <<EOF
###h3c 日志过滤
    grok {
        match => { "message" => "\<%{BASE10NUM:syslog_pri}\>%{SYSLOGTIMESTAMP:timestamp}\ %{DATA:year} %{DATA:hostname} \%\%%{DATA:ddModuleName}\/%{POSINT:severity}\/%{DATA:brief}\: %{GREEDYDATA:reason}" }       
        add_field => {"severity_code" => "%{severity}"}          
        }
    mutate {    
        gsub => [
            "severity", "0", "Emergency",
            "severity", "1", "Alert",
            "severity", "2", "Critical",
            "severity", "3", "Error",
            "severity", "4", "Warning",
            "severity", "5", "Notice",
            "severity", "6", "Informational",
            "severity", "7", "Debug"
        ]
        remove_field => ["message", "syslog_pri"]
        }
}
output {
    stdout { codec=> rubydebug }
#    elasticsearch {
#    hosts => "192.168.20.18:9200"  #elasticsearch服务地址
#    index => "logstash-h3c-%{+YYYY.MM.dd}"
#    }
}
EOF

2.2.5 参考文件

交换路由等网络设备logstash配置

logstash配置文件

3 Vmware部分

3.1 Esxi日志收集部分

? 主要是收集ESXI机器日志,方便进行安全日志分析;

? 主要通过syslog进行日志收集,再通过ELK栈提供的logstash进行分析

? ESXI-syslog--logstash--elasticsearch

3.1.1 Esxi机器syslog服务器配置

3.1.1.1 配置步骤

? 本文通过客户端配置,当然也能进行web配置,方法基本一致,具体配置请参考链接。

? 推荐学习视频:

? ELK入门到实践

原文:https://blog.51cto.com/9406836/2457859

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!