<返回更多

ELK交换机日志分析

2019-08-28    
加入收藏

又是一个吃着火锅唱着歌的日子,同事A过来吐槽说,某某交换机的风扇坏了,要不是今天过去例行巡检设备,发现设备声音不对劲还发现不了这个问题。

作为一名资深网工其实你深深的知道这种报错,设备的日志会有体现的,而且公司是有一台日志服务器滴,但是由于开打速度慢,查询速度慢,几乎没有分析展示功能,也没有报警功能。大家几乎很少去用它。

这个时候领导过来说: 我们要做一种日志分析系统,查询速度飞快,分析界面高端大气上档次,低调奢华有内涵,最重要是能主动发微信报警,要是以前听到这样的需求一般都是 下面的表情:

但是我们今天就是要好好聊聊这个日志分析,设备的哭喊 没有日志分析系统怎么能及时听得到。

架构简述

日志系统首先要面临几个问题:

不同厂家设备的不同日志格式的处理,如何调用微信来发报警信息。采用的解决办法是 不同厂商的设备发送日志的时候采用不同的端口,日志先发送到logstash, logstash会先解析日志成标准格式,然后logstash会做2件事情,一个是存放日志到es里面,通过kibana做出展示。

环境搭建

Elk的搭建就省掉了 这不是今天讲的重点,推荐先百度,或者私信、留言。

交换机配置

其实交换机的配置是一个痛点,几台设备手动配置一下也就算了,要是你的环境中有几百台,要是还没有统一配置工具 直接配到你怀疑人生啊。

#cisco:
logging host 10.100.18.18 transport udp port 5002
 
#H3C 
info-center enable
info-center source default channel 2 trap state off 
// 必要,不然日志会出现 不符合级别的 alert 日志
info-center loghost 10.100.18.18 port 5003
 
#huawei
info-center enable
info-center loghost 10.100.18.18
info-center timestamp log short-date
info-center timestamp trap short-date

上面是思科设备的脚本,H3C, 华为的脚本 。

Logstash配置

不同厂商的日志 gork我都写好了,复制过去就能用。

input{
 tcp {port => 5002 type => "Cisco"}
 udp {port => 514 type => "HUAWEI"}
 udp {port => 5002 type => "Cisco"}
 udp {port => 5003 type => "H3C"}
}
filter {
 if [type] == "Cisco"{
 grok{
 match => { "message" => "<%{BASE10NUM:syslog_pri}>%{NUMBER:log_sequence}: .%{SYSLOGTIMESTAMP:timestamp}: %%{DATA:facility}-%{POSINT:severity}-%{CISCO_REASON:mnemonic}: %{GREEDYDATA:message}" }
 match => { "message" => "<%{BASE10NUM:syslog_pri}>%{NUMBER:log_sequence}: %{SYSLOGTIMESTAMP:timestamp}: %%{DATA:facility}-%{POSINT:severity}-%{CISCO_REASON:mnemonic}: %{GREEDYDATA:message}" }
 add_field => {"severity_code" => "%{severity}"}
 overwrite => ["message"]
 } 
}
 else if [type] == "H3C"{
 grok {
 match => { "message" => "<%{BASE10NUM:syslog_pri}>%{SYSLOGTIMESTAMP:timestamp} %{YEAR:year} %{DATA:hostname} %%%{DATA:vvmodule}/%{POSINT:severity}/%{DATA:digest}: %{GREEDYDATA:message}" }
 remove_field => [ "year" ]
 add_field => {"severity_code" => "%{severity}"}
 overwrite => ["message"]
 }
}
 else if [type] == "HUAWEI"{
 grok {
 match => { "message" => "<%{BASE10NUM:syslog_pri}>%{SYSLOGTIMESTAMP:timestamp} %{DATA:hostname} %%%{DATA:ddModuleName}/%{POSINT:severity}/%{DATA:Brief}:%{GREEDYDATA:message}"}
 match => { "message" => "<%{BASE10NUM:syslog_pri}>%{SYSLOGTIMESTAMP:timestamp} %{DATA:hostname} %{DATA:ddModuleName}/%{POSINT:severity}/%{DATA:Brief}:%{GREEDYDATA:message}"}
 remove_field => [ "timestamp" ]
 add_field => {"severity_code" => "%{severity}"}
 overwrite => ["message"]
 }
}
 
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"
 ]
 }
}
output{
 elasticsearch {
 index => "syslog-%{+YYYY.MM.dd}"
 hosts => ["your_ipaddress:9200"]
 }
}

日志量top 10的设备

设备产生日志量很大,需要关注一下呢

ELK交换机日志分析

 

日志分类的占比

不同级别的日志 一目了然

ELK交换机日志分析

 

日志分类数量占比

可以在一张图上看到日志级别和占比最多的主机

ELK交换机日志分析

 

每小时的日志量

讲道理 日志量会有一定的规律 如果有异常高的日志量的时候 需要关注一下

ELK交换机日志分析

 

Dashboard

创建一个Dashboard 在一个页面中完成日志的展示,查询,ELK的查询速度快到飞起。

ELK交换机日志分析

 

作为一个网工,网络设备的日志,备份其实是一直困扰我的问题。值得欣喜的是Oxidized系统的出现,完美的解决了交换机等网络设备备份的问题, 日志分析报警也伴随这ELK。变的更加方便实用,给网工们带来真正的利好。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>