阿尔海南粉 发表于 2019-1-11 13:25:02

syslogs for cacti

安装syslogs
1、下载及解压及安装syslogs
# wget http://cactiusers.org/downloads/syslog.tar.gz
# tar xvf syslog-0.5.2.tar.gz
# mv syslog/ /var/www/html/plugins/
# cd /var/www/html/plugins/syslog/
# ls
compatibility.phphtml       LICENSE    syslog_alert.php    syslog_process.phpsyslog.sqlconfig.php         images   README   syslog_counter.phpsyslog_remove.php   template
functions.php      index.phpsetup.phpsyslog.php          syslog_reports.php
#

创建syslog数据库
mysql> create database syslog;
mysql> grant all privileges on syslog.* to sysloguser@localhost identified by 'cacti' with grant option;

mysql>flush privileges;

导入数据库文件
# mysql -h localhost -u sysloguser -p syslog < /var/www/html/plugins/syslog/syslog.sql
Enter password:
#

修改数据库连接文件,修改前先备份
# cp config.php config.php.old
# vi config.php
$syslogdb_type   = 'mysql';
$syslogdb_default= 'syslog';
$syslogdb_hostname = 'localhost';
$syslogdb_username = 'sysloguser';
$syslogdb_password = ' cacti ';

2、安装syslog-ng传送日志到数据库中
yum安装syslog-ng
# yum install syslog-ng

停用原syslog,启用syslog-ng
# /etc/init.d/rsyslog stop
Shutting down system logger:

# /etc/init.d/syslog-ng restart
Stopping syslog-ng:
Starting syslog-ng:
#

将syslog-ng加入自启动项并且停用rsyslog
# chkconfig rsyslog off
# chkconfig --level 35 syslog-ng on

配置syslog-ng配置文件,在syslog-ng.conf末端加入如下代码
source net {

      udp ();

};

destination d_mysql {

      pipe(&quot;/tmp/mysql.pipe&quot;
      template(&quot;INSERT INTO syslog_incoming(host,facility,priority,date,time,message) VALUES ('$HOST','$FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG' );\n&quot;)
template-escape(yes)
);
};
log { source(net); destination(d_mysql);};
log { source(s_sys); destination(d_mysql);};

重启相关服务
# /etc/init.d/syslog-ng restart
Stopping syslog-ng:
Starting syslog-ng:
# /etc/init.d/mysqld restart
Stopping mysqld:
Starting mysqld:
#

建立shell脚本
#!/bin/bash
if [ ! -e /tmp/mysql.pipe ]
then
mkfifo /tmp/mysql.pipe
fi
while [ -e /tmp/mysql.pipe ]
do mysql -u sysloguser --password= cacti syslog < /tmp/mysql.pipe >/dev/null 2>&1
done

让脚本启动自动执行
赋予cacituser控制权
# chown -R cactiuser syslogstart.sh
赋予运行权限
$ chmod 755 syslogstart.sh
赋予syslog_process.php以运行权限
$ chmod 775 syslog_process.php
赋予mysql.pipe以运行权限
# chown -R cactiuser mysql.pipe
$ chmod 777 mysql.pipe
以cactiuser用户添加任务
#crontab –e
@reboot /var/www/html/plugins/syslog/syslog.sh
*/1 * * * * php /var/www/html/plugins/syslog/syslog_process.php

重启crond服务,刷新几次网页数据就出来





页: [1]
查看完整版本: syslogs for cacti