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

发布时间:2020-07-10 16:43:20 作者:moakia
来源:网络 阅读:1001

搭建办公环境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以上。

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

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

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

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-h4c.congfig << EOF
input{
        udp {port => 516 type => "h4c"}
}
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
###h4c 日志过滤
    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-h4c-%{+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入门到实践

推荐阅读:
  1. Elasticsearch+Logstash+Kibana搭建日志分析系统
  2. 如何在Kubernetes中搭建Elasticsearch集群

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

elk logstash filebeats

上一篇:HTML5如何在canvas中实现马赛克的淡入淡出效果

下一篇:华为AD9430DN奇葩故障问题排查-无法进入系统

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》