一、首先来解读下rsyslog配置文件的含义
配置文件路径/etc/rsyslog.conf
在rsyslog中facility设施 可以从功能或者程序上对日志分类常用的以下几种
auth | 和认证相关的 |
authpriv | 和认证授权相关的 |
cron | 专门给周期性任务计划做日志记录的 |
daemon | 帮守护进程做日志记录 |
kern | 给内核做日志记录 |
lpr | 给打印做日志记录 |
给邮件做日志记录 | |
mark | 防火墙标记 |
news | 新闻组(这个是很早的) |
security | 和安全相关的(相当于auth) |
syslog | 自己的日志 |
user | 和用户相关 |
uucp | unix主机之间copy文件的日志 |
local | 从local0 through 到local7 8个保留的自定义的facility |
上面的这些设施在指定设施时可以使用通配符的,可用的通配符有以下几种
* | 表示所有的facility |
, | 可以是多个facility 列表的意思,例如facility1,facility2,facility3 |
! | 取反的意思 表示除了它以外的 |
下面是日志级别,从上到下,级别从低到高,记录的信息越来越少
debug | 有调式信息的,日志信息最多,最详细的信息 |
info | 一般信息的日志,最常用 |
notice | 最具有重要性的普通条件的信息 |
warn,warning | 需要引起注意的通知,到了这个时候就需要引起注意了 |
err,error | 严重错误,阻止某个功能或者模块不能正常工作的信息 |
alert | 相当于蓝色警戒,阻止整个系统或者整个软件不能正常工作的信息 |
crit | 相当于橙色警戒,需要立刻修改修复的警告信息 |
emerg,panic | 相当于红色警戒,当出现这个的时候基本上下一秒内核就挂了 |
none | 什么都不做,什么都不记录 |
上面的这些级别也可以使用通配符的,可用的通配符有以下几种
* | 所有的级别 |
none | 没有任何级别 |
下面来说说怎么配置远程基于MariaDB(MySQL)存储的日志系统
1、我们需要修改/etc/rsyslog.conf的配置文件。
首先我们启用#### MODULES ####段配置文件中的端口监听
yum install rsyslog-mysql -y sed -ri ‘s/^#(\$ModLoad im(tc|ud)p)/\1/‘ /etc/rsyslog.conf sed -ri ‘s/^#(\$(InputTCP|UDP)ServerRun)/\1/‘ /etc/rsyslog.conf 然后在/etc/rsyslog.conf的MOUDLES段中追加一个启用MariaDB(MySQL)的配置 sed -i ‘/InputTCPServerRun/a \\n\n# Log event to MariaDB\n\$ModLoad ommysql\n‘ /etc/rsyslog.conf
2、然后我去收集日志的服务器上编译安装MariaDB做日志收集存储
[root@LookBack165 ~]# yum -y groupinstall "Development tools" "Server Platform Development" [root@LookBack165 ~]# yum -y install libxml2-devel cmake ###上面是安装必要的编译所需软件 [root@LookBack165 ~]# wget http://mirrors.hustunique.com/mariadb/mariadb-10.0.12/source/mariadb-10.0.12.tar.gz [root@LookBack165 ~]# tar xf mariadb-10.0.12.tar.gz [root@LookBack165 ~]# cd mariadb-10.0.12 [root@LookBack165 mariadb-10.0.12]# make clean [root@LookBack165 mariadb-10.0.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_SSL=system -DWITH_SPHINX_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATEDX_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_EMBEDDED_SERVER=1 [root@LookBack165 mariadb-10.0.12]# make -j 4 && make install ##开始编译 [root@LookBack165 mariadb-10.0.12]# cd ~/ ###下面是修改必要的配置文件和环境变量 [root@LookBack165 ~]# cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf [root@LookBack165 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld [root@LookBack165 mariadb]# chmod +x /etc/rc.d/init.d/mysql [root@LookBack165 mariadb]# chkconfig --add mysql [root@LookBack165 mariadb]# chkconfig --list mysql mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@LookBack165 ~]# sed -i "/^thread_concurrency.*/a datadir=/mydata/data" /etc/my.cnf [root@LookBack165 ~]# groupadd mysql [root@LookBack165 ~]# useradd -g mysql -r -s /sbin/nologin -m /mydata/data mysql [root@LookBack165 ~]# chown -R mysql.mysql /mydata [root@LookBack165 ~]# sed -i "$(cat /etc/man.config | grep -nE ‘^MANPATH[[:space:]]+‘ | tail -1 | awk -F: ‘{print$1}‘)a MANPATHt/usr/local/mysql/man" /etc/man.config [root@LookBack165 ~]# echo "export PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mariadb1002.sh [root@LookBack165 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ [root@LookBack165 mariadb]# cp /usr/local/mariadb/support-files/mysql.server /etc/rc.d/init.d/mysql [root@LookBack165 mariadb]# service mysql start Starting MySQL..... [ OK ] [root@LookBack165 mariadb]# service mysql stop Shutting down MySQL. [ OK ] [root@LookBack165 ~]# service mysqld start
再做数据库导入
yum install rsyslog-mysql -y [root@LookBack ~]# find / -name rsyslog-mysql* /usr/share/doc/rsyslog-mysql-5.8.10
让后将这个目录下的createDB.sql导入数据库中
mysql -uroot -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
下面的是SQL命令
MariaDB [(none)]> grant all on Syslog.* to rsyslog@‘localhost‘ identified by ‘rsyslog用户的密码‘; MariaDB [(none)]> flush privileges;
最后我们回到需要做日志远程收集统计的服务器上
再次修改配置文件
现在我们可以在MariaDB(MySQL)服务器上配置loganalyzer
loganalyzer需要配合Apache或者Nginx之类的web服务器(本文就不多介绍了)
wget http://www.05hd.com/wp-content/uploads/2014/08/loganalyzer-3.6.5.tar.gz ###官方下载页面http://loganalyzer.adiscon.com/downloads/ [root@LookBack ~]# wget http://www.05hd.com/wp-content/uploads/2014/08/loganalyzer-3.6.5.tar.gz --2014-08-31 02:39:01-- http://www.05hd.com/wp-content/uploads/2014/08/loganalyzer-3.6.5.tar.gz Resolving www.05hd.com... 2001:41d0:8:ea32:1234:5678:9abc:9999, 5.135.167.50 Connecting to www.05hd.com|2001:41d0:8:ea32:1234:5678:9abc:9999|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1046957 (1022K) [application/octet-stream] Saving to: “loganalyzer-3.6.5.tar.gz” 100%[==============================================================================================>] 1,046,957 --.-K/s in 0.09s 2014-08-31 02:39:02 (11.2 MB/s) - “loganalyzer-3.6.5.tar.gz” saved [1046957/1046957] [root@LookBack ~]# tar xf loganalyzer-3.6.5.tar.gz [root@LookBack ~]# cp -a loganalyzer-3.6.5/src/* /home/wwwroot/rsyslog.05hd.com/ [root@LookBack ~]# cp -a loganalyzer-3.6.5/contrib/* /home/wwwroot/rsyslog.05hd.com/ [root@LookBack ~]# chown -R /home/wwwroot/rsyslog.05hd.com/ [root@LookBack ~]# chmod +x /home/wwwroot/rsyslog.05hd.com/*.sh [root@LookBack ~]# /home/wwwroot/rsyslog.05hd.com/configure.sh [root@LookBack ~]# service rsyslog restart
这时候 就可以打开web页面在webui上配置loganalyzer了