【老金知道】Zabbix日志监控前传:rsyslog收集网络设备日志

2021-02-03 10:45:29 浏览数 (1)

之前,可爱又迷人的“反派”角色

老金

给大家分享了

Zabbix监控日志文件

▼▼▼

1、Zabbix日志监控表达式描述

2、Zabbix监控linux日志举例

3、Zabbix监控windows日志举例

4、日志监控题外话

点击跳转原文

此篇对日志采集做了外延,特此分享:

rsyslog收集网络设备日志

安装rsyslog

安装rsyslog

1. rpm -qa rsyslog #CentOS7默认会安装rsyslog

2. yum install rsyslog-mysql -y #rsyslog使用此模块将数据传入MySQL数据库,必须安装

导入rsyslog-mysql 数据库文件

导入数据库

1. # cd /usr/share/doc/rsyslog-7.4.7/

2. # mysql -uroot -p<mysql-createDB.sql # Enter password: ``` 设置用户 ``` # mysql -uroot –p mysql> grant all on Syslog.* to rsyslog@localhost identified by '123456';

3. mysql> flush privileges;

4. mysql> exit

导入数据库操作创建了Syslog 库并在该库中创建了两张空表SystemEvents 和SystemEventsProperties。

设置文件

1.# vi /etc/rsyslog.conf #按如下进行更改

2.

3. #### MODULES ####

4.

5. $Modload ommysql

6. $template MySQLInsert,"insert into SystemEvents (Message, Facility, FromHost,Priority, DeviceReportedTime, ReceivedAt, InfoUnitID,

7. SysLogTag) values ('%msg%', %syslogfacility%, '%fromhost-ip%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::d

8. ate-mysql%', %iut%, '%syslogtag%')",SQL

9. *.* :ommysql:localhost,Syslog,rsyslog,123456;MySQLInsert

10.##注意我使用了%fromhost-ip%,而不是%HOSTNAME%

11. #localhost 表示本地主机,Syslog 为数据库名,rsyslog 为数据库的用户,MyNewPass4!为该用户密码。

12. $ModLoad immark # immark是模块名,支持日志标记

13. $ModLoad imudp # imupd是模块名,支持udp协议

14. $UDPServerRun 514 #允许514端口接收使用UDP和TCP协议转发过来的日志

配置日志文件记录

1. #$template logFormat, "%rawmsg%n"

2. template DynaFile, "/var/log/%MONTH%%DAY%/%fromhost-ip%-%YEAR%-%MONTH%-%

3. $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

4. #$ActionFileDefaultTemplate logFormat

5. :fromhost-ip, !isequal, "127.0.0.1" -?DynaFile;RSYSLOG_TraditionalFileFormat

/var/log/messages不写入local4.none

1. *.info;mail.none;authpriv.none;cron.none;local4.none /var/log/messages

最终配置,不搜集本机日志

1. $Modload ommysql

2.

3.

4. $template MySQLInsert,"insert into SystemEvents (Message, Facility, FromHost,Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag,processid) values (

5. '%msg%', %syslogfacility%, '%HOSTNAME%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%', '%fromhost-ip%')

6. ",SQL

7. :fromhost-ip, !isequal, "127.0.0.1" :ommysql:localhost,Syslog,rsyslog,123456;MySQLInsert

8.

9. #$template logFormat, "%rawmsg%n"

10. template DynaFile, "/var/log/%MONTH%%DAY%/%fromhost-ip%-%YEAR%-%MONTH%-%

11. $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

12. #$ActionFileDefaultTemplate logFormat

13. :fromhost-ip, !isequal, "127.0.0.1" -?DynaFile;RSYSLOG_TraditionalFileForma

14. :fromhost-ip, !isequal, "127.0.0.1" ~ #后面忽略

15. #&~ #全部不做后续处理

16. *.info;mail.none;authpriv.none;cron.none;local0.none;local1.none;local2.none;local3.none;local4.none;local5.none;local6.none;local7.none /var/log/messages

网络设备

配置

1. 服务端修改

2. $ModLoad ommysql

3.

4. local4.* :ommysql:localhost,Syslog,rsyslog,123456;MySQLInsert

5.

6. 注意我是local4来接受远程的syslog

7.

8. 在交换机上的配置:

9.

10. 华为的:

11.

12. info-center loghost 1.1.1.1 facility local4 //local4要和rsyslog.conf 里配置的一致,1.1.1.1为你的syslog服务器地址记得要改啊

13. info-center loghost source Vlan-interface 11//你的网管VLAN接口,要改的

14. info-center source SHELL channel loghost log level notifications//我只想要操作日志,其他的不关心,如果你想要更多,请更改

15.

16. 思科的:

17.

18. logging 1.1.1.1(配置 syslog服务器地址,可以定义多个)

19. service timestamps debug datetime localtime show-timezone msec

20. service timestamps log datetime localtime show-timezone msec (syslog 信息包含时间戳)

21. logging facility local4 (定义 facility 级别,缺省为local7,可以设置从 local0 到 local7)

22. logging trap warning (定义severity 级别缺省为 infor 级别)

到这里,一切基本ok了,

到你的mysql服务器是看看:

select * from SystemEvents

应该已经记录有日志了

服务器客户端

配置

1. 检查客户端有没有安装rsyslog

2. # rpm -qa rsyslog

3. 配置rsyslog客户端发送本地日志到服务端

4. # vi /etc/rsyslog.conf

5. *.* @192.168.253.160 #在文件结尾处增加此内容

6. 重启rsyslog服务

7. # systemctl restart rsyslog.service

8. 编辑/etc/bashrc,将客户端执行的所有命令写入系统日志/var/log/messages中

9. # vi /etc/bashrc

10. export PROMPT_COMMAND='{ msg=(history 1 | { read x y; echo y; });logger "[euid=(whoami)]":

11. 设置使其生效

12. # source /etc/bashrc

配置 显示

host ,ip

1. $template MySQLInsert,"insert into SystemEvents (Message, Facility, FromHost,Priority, DeviceReportedTime, ReceivedAt, InfoUnitID,

2. SysLogTag,processid) values ('%msg%', %syslogfacility%, '%HOSTNAME%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenera

3. ted:::date-mysql%', %iut%, '%syslogtag%', '%fromhost-ip%')",SQL

4. *.* :ommysql:localhost,Syslog,rsyslog,123456;MySQLInsert

用processid 显示ip 然后再Admin center->FIELD—>processid->displayname 修改为IP

安装

LogAnalyzer

1. wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.6.tar.gz

2. tar zxf loganalyzer-3.6.5.tar.gz

3. cd loganalyzer-3.6.5

4. mkdir -p /var/www/html/loganalyzer

5. cp -a src/* /var/www/html/loganalyzer/

6. cp -a contrib/* /var/www/html/loganalyzer/

浏览器安装向导中安装

LogAnalyzer

打开浏览器访问

http://192.168.1.107/loganalyzer/

提示没有配置文件,点击 here 利用向导生成。

第一步,测试系统环境

点击 “Next”,进入第二步。

提示错误:缺少config.php 文件,并且权限要设置为666,可以使用contrib目录下的configure.sh 脚本生成。

查看configure.sh 文件内容

需要在/var/www/html/loganalyzer/ 下创建config.php 文件,并设置其权限为666。

1. # touch /var/www/html/loganalyzer/config.php

2.

3. # chmod 666 /var/www/html/loganalyzer/config.php

做完上面的操作之后,执行 ReCheck 操作,config.php 文件可写,点击 Next 进入下一步。

第三步,基础配置

在User Database Options 中,填入上面设置的参数,然后点击 Next.

第四步,创建表

点击 Next 开始创建表。

第五步,检查SQL结果

第六步,创建管理用户

第七步,创建第一个系统日志source.

注意SystemEvents大小写

第八步,完成

测试

LogAnalyzer 首页

点击任何一条记录,查看详情。

查看Statistics

登录测试

在Admin Center 里可以进行一些系统设置。

日志级别

在配置前,我们先来了解下日志的level: local0~local7 16~23保留为本地使用

emerg 0 系统不可用 alert 1 必须马上采取行动的事件 crit 2 关键的事件 err 3 错误事件 warning 4 警告事件 notice 5 普通但重要的事件 info 6 有用的信息 debug 7 调试信息

去掉(Donate)按钮

1. vim /var/www/html/loganalyzer/include/functions_common.php

2. 将下行改为false

3. $content['SHOW_DONATEBUTTON'] = false; // Default = true!

更换分析页面首页图示(Logo)

1 首先将准备好的logo放至images/main目录下。

2 编辑include/functions_common.php

3 修改如下路径:

4 content['EXTRA_PHPLOGCON_LOGO'] = content['BASEPATH'] .

5 "images/main/Header-Logo.png";

中文乱码

1. 找到含有return htmlentities字段的行;

2.

3. return htmlentities(myStr, ENT_NOQUOTES, content['HeaderDefaultEncoding']);// "UTF-8");

4.

5. 修改为:

6.

7. return htmlentities(myStr, ENT_NOQUOTES, content['HeaderDefaultEncoding']), "UTF-8");

汉化

下载链接:

https://pan.baidu.com/s/1BrK8oLAhPS5tmpBvyXDKFw 密码: 2cfm

加压后copy 到lang下面,设置web为chinese

0 人点赞