您的位置:首页 > 运维架构

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

2011-04-21 17:59 597 查看
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,可参见前面的博文:

/article/4288764.html

/article/4288762.html

安装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 cactiuser@localhost 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
本文出自 “宁静致远” 博客,请务必保留此出处http://skyou.blog.51cto.com/2915693/550736
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: