cacti中syslog插件,是通过rsyslog或syslog-ng与mysql的交互,将日志存放到mysql数据库中,cacti中的syslog插件从mysql中检索查看日志数据。因此,首先要配置一台rsyslog与mysql的日志中心服务器来接收客户机的日志;其次,配置cacti的syslog插件,通过该插件检索与查询mysql中的日志。
由于rsyslog是开放源代码,因此这是只说明rsyslog的配置。
以下操作平台为:Centos 5.5 X86
一、配置日志中心接收服务器
假设这台接收服务器的IP地址为:192.168.0.213
(1)安装所必需的包:
关于配置yum,可参见前面的博文:
http://skyou.blog.51cto.com/2915693/542835
http://skyou.blog.51cto.com/2915693/541686
安装rsyslog所需的包:
| yum -y install librelp librelp-devel rsyslog rsyslog-gnutls rsyslog-mysql |
(2)配置rsyslog与mysql
执行下面的脚本文件,创建一个Syslog的数据库用于存放日志中的数据:
文本内容如下:
| #!/bin/bash mysql <<EOF create database Syslog; GRANT ALL ON Syslog.* TO [email protected] IDENTIFIED BY 'cacti'; flush privileges; EOF |
配置rsyslog.conf文件
vim /etc/rsyslog.conf(添加以下内容)
其中 :ommysql:localhost,Syslog,cactiuser,cacti;cacti_syslog 表示
加载数据库模块:ommysql
数据库名为:Syslog
数据库用户名:cactiuser
数据库用户密码:cacti
加载自定义的插入数据模板:cacti_syslog (而模板中定义的SQL语句插入的字段与cacti的syslog插件中提供的表结构一致)
文本格式内容如下:
| # provides UDP syslog reception $ModLoad imudp # start a UDP syslog server at standard port 514 $UDPServerRun 514 # Provides kernel logging support (previously done by rklogd) $ModLoad imklog # Provides support for local system logging (e.g. via logger command) $ModLoad imuxsock # provides --MARK-- message capability $ModLoad immark # provides UDP syslog reception $ModLoad imudp # provides TCP syslog reception and GSS-API (if compiled to support it) $ModLoad imtcp # provides mysql $ModLoad ommysql # Use costomer timestamp format $template cacti_syslog,"INSERT INTO syslog_incoming(facility, priority, date, time, host, message) values (%syslogfacility%, %syslogpriority%, '%timereported:::date-mysql%', '%timereported:::date-mysql%', '%HOSTNAME%', '%msg%')", SQL # Insert the log's text into the Syslog database by the costomer timestamp format of the cacti_syslog template *.* :ommysql:localhost,Syslog,cactiuser,cacti;cacti_syslog # Write the log to the /var/log/file.log repeat *.* /var/log/file.log |
注:接收客户端日志文件要配置的
(1)以下两行如果不加入到rsyslog.conf文件中,将无法接收客户端的日志文件。
| $ModLoad imudp $UDPServerRun 514 |
(2)编辑/etc/sysconfig/rsyslog.conf文件,更改文件内容有:
| SYSLOGD_OPTIONS="-r -m 0" |
其中的“-r”选项是接收远程客户机日志的指令。
以上配置完成后,启动rsyslog,停止syslog程序,执行以下操作:
|
chkconfig rsyslogd on
chkconfig syslogd off /etc/init.d/syslog stop /etc/init.d/rsyslogd restart |
二、配置远程客户机发送日志
配置syslog.conf发送指令
vim /etc/syslog.conf(添加以下内容:)
重启syslog日志进程:
| /etc/init.d/syslog restart |
这样,远程客户机的日志发送就已经完成。
三、配置cacti的syslog插件程序
(1)下载安装syslog插件
|
cd /var/www/html/
wget http://cactiusers.org/downloads/syslog.tar.gz tar xvfz syslog-0.5.2.tar.gz -C /var/www/html/cacti/plugins/ |
(2)配置syslog插件
| cd /var/www/html/cacti/plugins/syslog |
vim config.php(更改内容如下)
将上面的数据库名、数据库用户名、数据库用户密码更改为创建数据库时的一致。
导入syslog插件的表结构数据:
| mysql -ucactiuser -pcacti Syslog < /var/www/html/cacti/plugins/syslog/syslog.sql |
(3)现在可以看看导入到mysql库中的syslog表结构是否与rsyslog.conf文件中的定义的INSERT中的字段相一致
从图表中,可以看到rsyslog.conf中定义的插入字段是要与syslog_incoming表结构要一致。
(4)现在在web页面配置syslog插件
在Console---Utilites---User Management,单击admin账号,进入这个页面,选中其中红线标示区域:
保存后,在主窗口中,可以看到:
从图中也可以看到,已经有不少日志在syslog中了,这样检索查看各台机器的日志更加方便了。如果我要查看某个关键字为“192.168.0.145”的日志,可以在Search text中输入“192.168.0.145”后:
当然,syslog插件还支持一定的规则,比如不想看到太多的不需要的日志,可以在右侧的“Removals”创建匹配的内容。
至于报警的设置方法,可以参见前面的几篇博文。比如想要给指定的手机报警,可以在右侧创建“Alerts”规则,这里我列出我想报警的一些内容:
当我定义好上面的报警设置后,没过几分钟,我就收到内容包含的日志内容的短信了:
在收到邮件的同时,也会收到一条相应的短信,是不是很方便呢。
参考文档:
|
http://docs.cacti.net/plugin:syslog.config http://docs.cacti.net/plugin:syslog http://www.rsyslog.com/doc/rsyslog_mysql.html http://opkeep.com/system/linux/rsyslog-install.html |
转载于:https://blog.51cto.com/skyou/550736