Linux 之 rsyslog+mysql+LogAnalyzer 日志收集系统
作者:邓聪聪
LogAnalyzer 是一个 syslog 和其他网络事件数据的 Web 前端工具,提供简单易用的日志浏览、搜索和基本分析以及图表显示
由于公司部分项目需求使用日志记录系统,随笔记录
1:在rsyslog服务器上部署 LAMP环境。
[root@Log_server ~]# yum -y install wget httpd mysql mysql-server php php-mysql postgresql postgresql-server php-postgresql php-pgsql php-devel gd gd-devel php-gd
[root@Log_server ~]# /etc/init.d/mysqld start
[root@Log_server ~]# /etc/init.d/httpd start
2:安装rsyslog 连接MySQL数据库的模块
[root@Log_server ~]# yum install rsyslog-mysql –y
导入rsyslog-mysql 数据库文件
[root@Log_server ~]# cd /usr/share/doc/rsyslog-mysql-5.8.10/ [root@Log_server rsyslog-mysql-5.8.10]# mysql -uroot < createDB.sql [root@Log_server rsyslog-mysql-5.8.10]# mysql mysql>show databases; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Syslog | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) mysql> mysql> show tables; +------------------------+ | Tables_in_Syslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ 13 rows in set (0.00 sec) mysql> grant all on Syslog.* to rsyslog@localhost identified by 'yourpwd'; mysql> flush privileges; mysql> exit
3:配置服务端支持rsyslog-mysql 模块,并开启UDP服务端口获取网内其他设备日志或LINUX系统日志
Bye [root@Log_server ~]# grep -v '^#' /etc/rsyslog.conf |grep -v '^$' $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog # provides kernel logging support (previously done by rklogd) $ModLoad immark # provides --MARK-- message capability $ModLoad imudp $UDPServerRun 514 $ModLoad ommysql #启动rsyslog的数据库模块 *.* :ommysql:localhost,Syslog,rsyslog,heju@.com #连接数据库的信息 ========以上两行是需要插入的内容 $ModLoad imtcp $InputTCPServerRun 514 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog.d/*.conf *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg * uucp,news.crit /var/log/spooler local7.* /var/log/boot.log
4:配置http下的配置文件,编辑/etc/httpd/conf/httpd.conf,在</IfModule>行增加index.php
DirectoryIndex index.html index.php
</IfModule>
5:安装LogAnalyzer
[root@Log_server ~]# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz [root@Log_server ~]# ll total 1052 -rw-------. 1 root root 1271 Jan 11 23:27 anaconda-ks.cfg -rw-r--r--. 1 root root 8837 Jan 11 23:27 install.log -rw-r--r--. 1 root root 5770 Jan 11 23:27 install.log.syslog -rw-r--r-- 1 root root 1046957 Oct 9 2013 loganalyzer-3.6.5.tar.gz [root@Log_server ~]# tar -xf loganalyzer-3.6.5.tar.gz [root@Log_server ~]# cd loganalyzer-3.6.5 [root@Log_server loganalyzer-3.6.5]# ll total 104 -rw-rw-r-- 1 root root 44027 Oct 9 2013 ChangeLog drwxrwxr-x 2 root root 4096 Oct 9 2013 contrib -rw-rw-r-- 1 root root 35497 Oct 9 2013 COPYING drwxrwxr-x 2 root root 4096 Oct 9 2013 doc -rw-rw-r-- 1 root root 8449 Oct 9 2013 INSTALL drwxrwxr-x 14 root root 4096 Oct 9 2013 src [root@Log_server loganalyzer-3.6.5]# cp src/* /var/www/html/ [root@Log_server loganalyzer-3.6.5]# touch config.php [root@Log_server loganalyzer-3.6.5]# chmod 666 config.php
6:后端的操作大功告成,接下来就是前端web的配置了
浏览器输入日志服务器IP:IP/install.php,完成安装,填写对应的参数IP
这里就不一一贴图了,主要注意填数据库的几个参数
source type 需要修改成mysql native 源,随后填写mysql相关信息,注意(Database Tablename 处默认是首字母小写的,正确应该是SystemEvents !!!)
7:客户端的配置模式
liunx系统设备:
1 检查rsyslog 是否安装
rpm -qa|grep rsyslog #默认都是安装的
2 配置rsyslog 客户端发送本地日志到服务端
vi /etc/rsyslog.conf
*.* @服务器IP
华为交换机客户端配置:
[Sysname] info-center enable #开启信息中心
[Sysname] info-center loghost 192.168.100.100 channel loghost #指定向日志主机输出日志信息的通道为 loghost 通道
[Sysname] info-center source default channel loghost debug state off log state off trap state off #关闭所有模块日志主机的 log、trap、debug 的状态(注意:由于系统对各通道允许输出的系统信息的缺省情况不一样,所以配置前必须将所有模块的需求通道(本例为loghost )上log、trap、debug 状态设为关闭,再根据当前的需求配置输出相应的系统信息。可以用display channel 命令查看通道的状态)。
[Sysname] info-center source default channel loghost log level informational #允许输出信息的模块为所有模块 source:default
display channel loghost #查看通道状态