cacti配置流量监控五---使cacti支持syslog集中日志管理

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的数据库用于存放日志中的数据:

Image00187

文本内容如下:

 

#!/bin/bash
mysql   <<EOF
create database Syslog;
GRANT ALL ON Syslog.* TO cactiuser@localhost IDENTIFIED BY 'cacti';
flush privileges;
EOF

配置rsyslog.conf文件

vim   /etc/rsyslog.conf(添加以下内容)

Image00185

其中   :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"

Image00186

其中的“-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(添加以下内容:)

Image00188

重启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(更改内容如下)

Image00189

将上面的数据库名、数据库用户名、数据库用户密码更改为创建数据库时的一致。

导入syslog插件的表结构数据:

  mysql  -ucactiuser -pcacti   Syslog  <  /var/www/html/cacti/plugins/syslog/syslog.sql

 

(3)现在可以看看导入到mysql库中的syslog表结构是否与rsyslog.conf文件中的定义的INSERT中的字段相一致

Image00190

从图表中,可以看到rsyslog.conf中定义的插入字段是要与syslog_incoming表结构要一致。

 

(4)现在在web页面配置syslog插件

Console---Utilites---User Management,单击admin账号,进入这个页面,选中其中红线标示区域:

Image00191

保存后,在主窗口中,可以看到:

Image00193

从图中也可以看到,已经有不少日志在syslog中了,这样检索查看各台机器的日志更加方便了。如果我要查看某个关键字为“192.168.0.145”的日志,可以在Search  text中输入“192.168.0.145”后:

Image00192

当然,syslog插件还支持一定的规则,比如不想看到太多的不需要的日志,可以在右侧的“Removals”创建匹配的内容。

至于报警的设置方法,可以参见前面的几篇博文。比如想要给指定的手机报警,可以在右侧创建“Alerts”规则,这里我列出我想报警的一些内容:

Image00195

当我定义好上面的报警设置后,没过几分钟,我就收到内容包含的日志内容的短信了:

Image00196

在收到邮件的同时,也会收到一条相应的短信,是不是很方便呢。

 

参考文档:

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

你可能感兴趣的:(数据库,服务器,源代码,流量监控,客户机)