cacti中syslog插件,是通过rsyslog或syslog-ng与mysql的交互,将日志存放到mysql数据库中,cacti中的syslog插件从mysql中检索查看日志数据。因此,首先要配置一台rsyslog与mysql的日志中心服务器来接收客户机的日志;其次,配置cacti的syslog插件,通过该插件检索与查询mysql中的日志。可以收集来自linux、windows等服务器和交换机路由器的日志。做到集中和分类查看。
Cacti 0.8.7g在CentOS5.5上的安装(1)
Cacti 0.8.7g在CentOS5.5上的安装(2)
由于我们此次安装的是集成PIA的cacti,因此不用单独安装PIA,安装好cacti以后要启用Plugin Management,然后我们下载syslog插件
1.设置接收日志
要想接收日志信息,并在cacti的syslog插件中显示接收到的日志,首先是接收日志,有二种办法:1.使用syslog-ng,在centos5.5及以下系统上,系统默认有syslog,可以发送日志,但不能接受日志,因此要借助于syslog-ng,来接收发送过来的日志,并规范成一个模版,再通过自己写的脚本,插入到mysql数据库里
2.使用rsyslog,rsyslog是在centos6以上系统自带的,rsyslog不仅能接收日志,还可以发送日志,因此要是在centos6以上系统就不需要额外安装syslog-ng接收日志了,用自带的rsylog就可以接收日志,再用rsyslog-mysql就可以把接收到的日志写入mysql数据库
下面我分别说明:
A.使用rsyslog
1
|
yum install -y rsyslog rsyslog-mysql |
1
|
vi /etc/rsyslog .conf |
1
2
3
4
5
|
$ModLoad imudp.so $UDPServerRun 514 $ModLoad ommysql $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 *.* >localhost,syslog,cactiuser,cactifans.org;cacti_syslog |
然后保存,重新启动rsyslog,并设置rsyslog开机启动
1
2
|
chkconfig rsyslog on service rsyslog restart |
B.使用syslog-ng
syslog-ng在默认的源里没有,可以编译安装,在这里我用yum安装syslog-ng
首先添加一个第三方源
1
2
|
rpm -Uvh http: //dl .fedoraproject.org /pub/epel/5/i386/epel-release-5-4 .noarch.rpm yum install -y syslog-ng |
安装好后我们配置syslog-ng
1
|
vi /etc/syslog-ng/syslog-ng .conf |
在文件最后加入如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
source net { udp(); }; destination d_mysql { pipe( "/tmp/mysql.pipe" template( "INSERT INTO syslog_incoming (host, facility, priority, date, time, message) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG' );\n" ) template-escape( yes ) ); }; log { source (net); destination(d_mysql); }; log { source (s_sys); destination(d_mysql); }; |
加入后保存,退出。
1
2
3
4
5
6
7
8
9
10
|
vi /sbin/syslogtomysql #!/bin/bash if [ ! -e /tmp/mysql .pipe ]; then mkfifo /tmp/mysql .pipe fi while [ -e /tmp/mysql .pipe ] do mysql -u cactiuser --password=cactifans.org syslog < /tmp/mysql .pipe done |
1
|
chmod +x /sbin/syslogtomysql |
1
|
/sbin/syslogtomysql & |
1
|
/etc/init .d /syslog-ng start |
1
|
vi /etc/rc . local |
1
|
/sbin/syslogtomysql & |
1
|
chkconfig syslog-ng on |
至此syslog的设置完成
syslog-ng和rsyslog的设置就说到这里,基本都是差不多,不过rsyslog好设置一点不用独立写脚本就成。在centos6以上版本中也可以用syslog-ng来接收日志。以下的安装步骤就一样了。
2.配置syslog的数据库
1
2
3
|
mysql -uroot -p create database syslog; GRANT ALL ON syslog.* TO cactiuser@localhost IDENTIFIED BY 'cactifans.org; quit; |
1
2
3
|
wget http: //docs .cacti.net /_media/plugin :syslog-v1.22-2.tgz -O syslog.tgz tar zxvf syslog*.tgz -C /var/www/html/plugins chown -R apache:apache /var/www/html/plugins/syslog |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
vi /var/www/html/plugins/syslog/config .php ...... global $config, $database_type, $database_default, $database_hostname; global $database_username, $database_password, $database_port; /* revert if you dont use the Cacti database */ $use_cacti_db = false ; if (!$use_cacti_db) { $syslogdb_type = 'mysql' ; $syslogdb_default = 'syslog' ; $syslogdb_hostname = 'localhost' ; $syslogdb_username = 'cactiuser' ; $syslogdb_password = 'cactifans.org' ; $syslogdb_port = 3306; } else { $syslogdb_type = $database_type; $syslogdb_default = $database_default; $syslogdb_hostname = $database_hostname; $syslogdb_username = $database_username; $syslogdb_password = $database_password; $syslogdb_port = $database_port; } ....... |
就可以看到syslog已经安装,但是还没有启用,我们点那个绿色箭头就可以启用syslog
启用后我们可以看到syslog了
4.被监控端设置
1
|
*.* @192.168.0.111 |
1
|
*.* @@192.168.0.111:514 |
1
|
logging 192.168.0.111 |