1.syslog介绍:
日志服务在CentOS 5上默认为syslog,而6上全部升级为rsyslog。Rsyslog是syslog的增强版,提供了很多高级的特性。syslog由两个功能程序构成,klogd和syslogd,klogd记录Kernel产生的日志信息,而syslogd是普通的日志信息。除了一些高级特性,Rsyslog和syslog的整体框架基本一致。
2.Rsyslog的特性:
支持选择UDP|TCP协议传送日志文件;
支持SSL加密;
多线程模型工作;
可以将日志放入关系型数据库中;
可以作为日志服务器接收其他服务器发来的日志;
3.日志的级别
日志的级别就是日志的记录等级,syslog将日志级别分为如下几个(低等级默认会包含高等级的日志信息):
debug | 调试级别,所有信息都会记录 |
info | 比debug级别稍高 |
notice | 通知信息,比info级别高 |
warning | 发出警告 |
err,error | 出现错误 |
crit | 比err更严重 |
alert | 系统出现严重问题 |
emerg,panic | 系统将要挂掉 |
4.syslog设施
syslog将不同的日志分为几个类,这些种类就称作设施:
auth | 认证信息 |
authpriv | 授权信息 |
cron | 计划任务产生的信息 |
daemon | 守护进程产生的信息 |
kern | 内核产生的信息 |
lpr | 打印的信息 |
邮件相关的信息 |
|
mark | 防火墙标记的信息 |
news | 新闻组信息 |
security | 安全相关的信息 |
syslog | 系统日志 |
user | 用户相关的信息 |
uucp | unix间复制相关 |
local{0-7} |
用户自定义的日志类,分为7个级别 |
5.rsyslog的配置:
rsyslog的配置文件是/etc/rsyslog.conf及/etc/rsyslogd/*.conf。
/etc/rsyslog.conf文件分为四个"区域":
MODULES | syslog的模块 |
GLOBAL | 全局定义,记录的格式等等 |
RULES | 记录日志相关 |
begin forwarding rule | 一些转发的记录信息 |
我们主要关心RULES区域,要想使rsyslog记录特定类、级别的日志,就需要在RULES中定义,格式为:
facility(设施).priority(日志级别) Target(日志输出的位置)
注:
日志级别、设施可以使用通配符:
*:所有级别
,:列表,例如:a,b,c是a、b、c三个级别
!:取反
记录的位置常用的大概有四种:
文件,如/var/log/message
用户,发送给指定的用户,*为所有用户
日志服务器:@172.16.10.1
管道:|COMMAND 交给特定的命令处理
例如:
mail.info /var/log/maillog 记录mail类型中info及以上级别的日志信息 mail.=info /var/log/maillog 只记录maill类型中info级别的日志信息 mail.!info /var/log/maillog 记录mail类型中info以下级别的日志信息 mail.!=info /var/log/maillog 记录mail类型中除了info级别的日志信息 *.info /var/log/maillog 记录所有info及以上级别的日志信息 mail,news.info -/var/log/maillog 记录mail类型、news类型中的info及以上级别的日志信息,并且以异步方式写入文件
二、配置rsyslog和loganalyzer结合工作:
1.介绍
loganalyzer是一款Web界面日志分析工具,可以分析mysql中的日志信息,由php编写,依赖于LAMP平台。要想将日志信息写入到mysql中,需要安装rsyslog-mysql工具,并启用rsyslog的模块。
2.安装LAMP及相关文件:
[root@localhost ~]# yum install -y httpd mysql mysql-server php php-mysql rsyslog-mysql
3.导入rsyslog-mysql的sql文件(创建库、表)并创建一个用户:
[root@localhost ~]# service mysqld start [root@localhost ~]# mysql -uroot </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql [root@localhost loganalyzer]# mysql mysql> GRANT ALL ON Syslog.* TO 'loganauser'@'localhost' IDENTIFIED BY 'redhat'; mysql> GRANT ALL ON Syslog.* TO 'loganauser'@'127.0.0.1' IDENTIFIED BY 'redhat';
4.配置rsyslog加载ommysql模块(写入mysql数据库的模块):
[root@localhost ~]# vim /etc/rsyslog.conf 在MODULES区域添加: $ModLoad ommysql 并启用以下两项: $ModLoad imudp $UDPServerRun 514 [root@localhost loganalyzer]# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] [root@localhost loganalyzer]#
5.下载loganalyzer并解压到/var/www/loganalyzer目录进行配置:
[root@localhost ~]# tar -xf loganalyzer-v3.6.1.tar.gz [root@localhost ~]# cd loganalyzer-3.6.1/ [root@localhost loganalyzer-3.6.1]# mv src/ /var/www/loganalyzer [root@localhost loganalyzer-3.6.1]# mv contrib/* /var/www/loganalyzer/ [root@localhost loganalyzer-3.6.1]# cd /var/www/loganalyzer/ [root@localhost loganalyzer]# chmod +x configure.sh secure.sh [root@localhost loganalyzer]# ./configure.sh [root@localhost loganalyzer]# ./secure.sh [root@localhost loganalyzer]# rm -rf configure.sh secure.sh [root@localhost loganalyzer]# chown -R apache.apache *
6.配置httpd默认首页为index.php并启动:
[root@localhost loganalyzer]# vim /etc/httpd/conf/httpd.conf DirectoryIndex index.php [root@localhost loganalyzer]# service httpd start Starting httpd: [ OK ] [root@localhost loganalyzer]#
7.打开http://hostname/loganalyzer/install.php安装之:
8.配置syslog将日志写入到mysql数据库:
[root@localhost loganalyzer]# vim /etc/rsyslog.conf *.info :ommysql:127.0.0.1,Syslog,loganauser,redhat [root@localhost loganalyzer]# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] [root@localhost loganalyzer]#
9.刷新网页查看日志已经有了两条记录: