一、前言
什么是日志?
日志就是历史事件,按时间序列将发生的事件予以记录;日志记录信息记录的是事件的发生时间以及事件内容
Linux下记录日志的系统:
syslog:是CentOS 5.0系统上使用的日志系统,有两类日志,分别是syslogd、klogd;
syslogd:记录系统进程相关的日志
klogd:记录内核相关的日志
rsyslog:是CentOS 6.0系统使用的日志系统,与syslog日志系统相比,具有以下优点:
①支持多线程
②支持TCP、SSL、TLS、RELP等协议
③强大的过滤器,可实现过滤日志信息中的任意部分
④支持自定义输出格式
⑤适用于企业级别日志记录需求
⑥模块化
二、rsyslog日志系统配置
1、配置文件,以及配置文件的定义格式
/etc/rsyslog.conf \\配置文件
日志定义格式: facility.priority Target
facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录日志;
常用的facility:
lpr: 打印相关的日志
auth:认证相关的日志
user:用户相关的日志
cron:计划任务相关的日志
kern:内核相关的日志
mail:邮件相关的日志
mark:标记相关的日志
news:新闻相关的日志
uucp:文件copy相关的日志
daemon:系统服务相关的日志
authpri: 授权相关的日志
security:安全相关的日志
local0-local7:自定义相关的日志信息(自定义时可以使用通配符)
通配符:
*:所有
f1,f2,f3......:列表
!:取反
priority:日志级别
常用的日志级别:
debug: 调试
info: 消息
notice: 注意
warn,warning: 警告
err,error: 错误
crit: 严重级别
alert: 需要立即修改该的信息
emerg,panic: 内核崩溃,内核恐慌等严重的信息
通配符:
*:所有日志级别
none:没有任何级别,也就是不记录日志信息
Target:文件路径
可以使用的有:
①/var/log/messages
②用户:*当前登录系统的所有用户
③日志服务器:@SERAVER_IP
④管道:| COMMAND
举例:
mail.info /var/log/maillog: 比指定级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中
mail.=info /var/log/maillog: 明确指定日志级别为info,保存至/var/log/maillog
mail.!info /var/log/maillog: 除了指定的日志级别(info)所有日志级别信息,保存至/var/log/maillog
*.info /var/log/maillog: 所有facility的info级别,保存至/var/log/maillog
mail.* /var/log/maillog: mail的所有日志级别信息,都保存至/var/log/maillog
mail.notice;news.info /var/log/maillog: mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog
mail,news.crit -/var/log/maillog: mail和news的crit以上的日志级别保存/var/log/maillog中;“-”代表异步模式
日志信息格式: 时间 主机 进程(pid) 事件
2、启用日志服务器功能,接收其他服务的日志
①编辑/etc/rsyslog.conf,修改以下信息
②重启rsyslog服务,查看监听端口
③在另一台测试机中编辑/etc/rsyslog.conf,将日志信息发送到此服务器,重启rsyslog服务
④在测试机中安装vsftpd,安装完成后再rsyslog服务器中查看日志
⑤至此rsyslog日志服务器已经可以正常工作了
3、配置将日志信息存储到数据库
①安装数据库,启动数据库
# yum -y install mysql-server
# service mysqld start
②安装rsyslog-mysql驱动
# yum -y install rsyslog-mysql
③查看rsyslog-msyql生成的文件
# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so \\rsyslog连接mysql的驱动模块
/usr/share/doc/rsyslog-mysql-5.8.10 \\ rsyslog的文档
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql \\rsyslog的数据库以及表的各项定义,直接导入数据即可使用
④将生成的createDB.sql导入mysql数据库
# mysql -uroot -p
Syslog \\生成的数据库名称
SystemEvents \\存放日志文件的数据库表
SystemEventsProperties \\ 生成的日志数据库表
⑤授权rsyslog用户对到导入的数据库有所有权限
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'syslogpass'; \\用户授权
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'syslogpass';\\用户授权
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES; \\进行权限刷新
Query OK, 0 rows affected (0.00 sec)
⑥编辑/etc/rsyslog.conf配置文件,加载ommysql模块,定义将日志信息存储到mysql数据库
#### MODULES ####
$ModLoad ommysql
#### RULES ####
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,rsyslog,syslogpass
:模块驱动:数据库地址,数据库名称,数据用户,用户密码
⑦重启rsyslog服务
# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
⑧在本机上安装vsftpd,在mysql中查看日志信息
# yum -y install vsftpd \\安装vsftpd服务
# mysql -uroot -p \\进入数据库
Enter password: \\数据密码,默认root用户的密码为空
mysql> SELECT * FROM Syslog.SystemEvents\G; 查看日志命令,输出信息如下:
*************************** 4. row ***************************
ID: 4
CustomerID: NULL
ReceivedAt: 2014-12-16 11:51:42
DeviceReportedTime: 2014-12-16 11:51:42
Facility: 1
Priority: 6
FromHost: localhost
Message: Installed: vsftpd-2.2.2-13.el6_6.1.x86_64
NTSeverity: NULL
Importance: NULL
EventSource: NULL
EventUser: NULL
EventCategory: NULL
EventID: NULL
EventBinaryData: NULL
MaxAvailable: NULL
CurrUsage: NULL
MinUsage: NULL
MaxUsage: NULL
InfoUnitID: 1
SysLogTag: yum[2605]:
EventLogType: NULL
GenericFileName: NULL
SystemID: NULL
4 rows in set (0.00 sec)
⑨到此为止,日志信息已经成功的存储于数据库中,可以便捷的查询相关的日志信息啦
4、配置loganalyzer日志分析工具,便于日常维护
①安装LAMP平台
# yum -y install httpd php php-mysql \\数据库已安装,现在只安装httpd,php即可
②启动相关的服务,测试LAMP是否可以正常提供服务
# service httpd start \\启动httpd服务
③测试web服务正常访问
④配置loganalyzer
# tar xf loganalyzer-3.6.5.tar.gz \\解压loganalyzer到当前目录
# mkdir /var/www/html/log\\在httpd的DocumentRoot目录中创建log目录,用于存储loganalyzer相关页面
# cp -r loganalyzer-3.6.5/src/* /var/www/html/log \\复制loganalyzer目录中的src目录中的所有文件到刚刚创建的/var/www/html/log目录中
# cp loganalyzer-3.6.5/contrib/* /var/www/html/log \\复制loganalyzer目录中的contrib目录中的脚本文件到刚刚创建的/var/html/www/log目中中
# cd /var/www/html/log \\cd 到/var/www/html/log目录中
# chmod +x configure.sh secure.sh \\给刚刚复制过来的脚本添加执行权限
# ./configure.sh \\执行脚本
# ./secure.sh \\执行脚本
# chown -R apache.apache . \\更改当前目录的属主属组为apache,使用rpm安装的httpd,默认用户是apache
# chmod 666 config.php \\ 设置config.php配置文件具有写权限
可能会遇到的问题
1、如果安装完成后提示连接不到数据库,则将第五步中的127.0.0.1改为localhost便可以解决问题
2、使用中出现以下问题
# yum -y install php-gd \\安装php-gd
# service httpd restart \\重启httpd服务
刷新页面,便可以恢复正常访问
77
原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/5257