rsyslog + mysql

 

1. 安装 MySQL a. ./configure --prefix=/usr/local/mysql  --with-charset=utf8b. make install2. 配置 MySQL,增加一个只写的账号和一个只读的账号,只写的账号是给rsyslog往mysql里面写日志,只读的账号是前端web页面用的 GRANT INSERT ON Syslog.* TO 'rsyslog_write'@'localhost' IDENTIFIED BY 'password_123456';GRANT SELECT ON Syslog.* TO 'rsyslog_read'@'localhost' IDENTIFIED BY 'password_234567'; 3. 安装 rsysloga. http://www.rsyslog.com/ 上下载最新版本b. PATH=$ PATH:/usr/local/mysql/bin  # 因为MySQL手工安装,不在环境变量中,而rsyslog的configure会从环境变量中找MySQL的libc. ./configure --prefix=/usr/local/rsyslog --enable-mysql  # 打开MySQL支持,将日志写到MySQL中可以在前端web上直接展示,报表d. Make installe. Mysql -u root -p < ./plugins/ommysql/createDB.sql      # 导入db结构f. Cp rsyslog.conf /etc/                                                              # 默配置文件g. ln -s /usr/local/rsyslog/sbin/rsyslogd /sbin/rsyslogd      # 这一步可用可不用 4. 配置rsysloga. 在/etc/rsyslog.conf最上面加上 $ ModLoad ommysql 载入mysql支持的模块b. 去掉/etc/rsyslog.conf内以下两行前的#号,打开udp监听端口$ ModLoad imudp.so  # provides UDP syslog reception$ UDPServerRun 514  # start a UDP syslog server at standard port 514c. 增加/etc/rsyslog.conf下面两行,将local7和user的日志写到mysql中local7.*  :ommysql:127.0.0.1,Syslog,rsyslog_write,password_123456user.*    :ommysql:127.0.0.1,Syslog,rsyslog_write,password_123456d. 去掉链接错的日志示例:msg, contains, "error: connect"  ~ 5. 替换 syslog 为rsysloga. 由于rsyslog没有附带启动脚本,我做了如下修改b. Cp /etc/init.d/syslog /etc/init.d/syslogd  #保留老的的syslog启动文件,以备要恢复时使用c. 编辑 /etc/init.d/syslog 将里面路径有关的全改成/usr/local/rsyslog/sbin/rsyslogd 如果你上面3.g这一步做了链接,就可以只把syslog改为rsyslogdd. 这样修改完后就是先停掉老的syslog,再启用新的rsyslog了e. /etc/init.d/syslogd  stop;  # 停掉系统自带的f. /etc/init.d/syslog start      # 启用新的 rsyslog 6. 修改 iptables ,增加udp54端口出入,防止被人强xa. Iptables -A RH-Firewall-1-INPUT -s 1.2.0.0/255.255.0.0 -p udp -m udp --dport 514 -j ACCEPTb. Iptables -A RH-Firewall-1-INPUT -s 3.4.0.0/255.255.0.0 -p udp -m udp --dport 514 -j ACCEPT 7. 安装phplogcona. http://www.phplogcon.org/ 上下载最新版本b. 解压到某个目录,并配置好apache的vhost,这些步骤就不写了,比较平常的操作c. 访问 http://127.0.0.1/install.php 安装,填上 mysql的账号和密码就行了,其他选项都默认。8. 配置日志客户端a. 在web服务器上echo 'kern.*;user.*  @1.2.3.4' >> /etc/syslog.confb. /etc/init.d/syslog reload #重启syslogd