又是一个吃着火锅唱着歌的日子,同事A过来吐槽说,某某交换机的风扇坏了,要不是今天过去例行巡检设备,发现设备声音不对劲还发现不了这个问题 。
作为一名资深网工其实你深深的知道这种报错,设备的日志会有体现的,而且公司是有一台日志服务器滴,但是由于开打速度慢,查询速度慢,几乎没有分析展示功能,也没有报警功能 。大家几乎很少去用它 。
这个时候领导过来说: 我们要做一种日志分析系统,查询速度飞快,分析界面高端大气上档次,低调奢华有内涵,最重要是能主动发微信报警,要是以前听到这样的需求一般都是 下面的表情:
但是我们今天就是要好好聊聊这个日志分析,设备的哭喊 没有日志分析系统怎么能及时听得到 。
架构简述日志系统首先要面临几个问题:
不同厂家设备的不同日志格式的处理,如何调用微信来发报警信息 。采用的解决办法是 不同厂商的设备发送日志的时候采用不同的端口,日志先发送到logstash, logstash会先解析日志成标准格式,然后logstash会做2件事情,一个是存放日志到es里面,通过kibana做出展示 。
环境搭建Elk的搭建就省掉了 这不是今天讲的重点,推荐先百度,或者私信、留言 。
交换机配置其实交换机的配置是一个痛点,几台设备手动配置一下也就算了,要是你的环境中有几百台,要是还没有统一配置工具 直接配到你怀疑人生啊 。
#cisco:logging host 10.100.18.18 transport udp port 5002 #H3C info-center enableinfo-center source default channel 2 trap state off // 必要,不然日志会出现 不符合级别的 alert 日志info-center loghost 10.100.18.18 port 5003 #huaweiinfo-center enableinfo-center loghost 10.100.18.18info-center timestamp log short-dateinfo-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交换机日志分析】
日志分类数量占比
可以在一张图上看到日志级别和占比最多的主机
推荐阅读
- 交换机CPU占用率高案例汇总
- 我的实习日志——人生若只如初见 实习日记范文
- 三层交换机如何配置?如何实现不同vlan间的通信?
- 华为S5700交换机设置IP-MAC绑定功能
- telnet远程登录华为交换机
- 三层交换机怎样设置MAC白名单?只允许指定的MAC地址上网
- 分享一个winserver自动清理Oracle过期归档日志脚本
- 校园机房项目交换机配置案例
- 一分钟带你了解交换机和路由器的区别
- 华为交换机MSTP公有生成树协议