日志简介:
日志:即历史事件,按时间序列将发生的事件予以记录;日志记录了事件发生的时间,时间内容,事件的关键性程度;运维人员可通过检查这些记录的信息,发现错误发生的原因,或寻找受到攻击时,攻击者留下的痕迹。
syslog是CentOS6之前的默认日志系统;
syslogd:系统进程的相关日志
kloged:内核事件相关日志
rsyslog是CentOS6的默认日志系统:
支持多线程
支持tcp,ssl,tls,relp等协议
支持MySQL,PGSQL,Oracle等多种关系型数据中
强大的过滤器,可实现过滤系统信息中的任意部分
支持自定义输出格式
适用于企业级别日志记录需求
facllity:设施,从功能或程序上对日志进行分类,并由专门的工具附则记录其日志
auth:认证相关信息
authpriv:认证授权相关信息
cron:周期性计划任务相关信息
daemon:守护进程相关信息
kern:内核相关信息
lpr:打印相关信息
mail:收发邮件相关信息
mark:防火墙标记
news:新闻相关信息
security:安全相关信息
syslog:自身记录
user:用户相关信息
uucp:早起系统文件共享服务
local0..local7:8个自定义facility
指定设施时可以使用通配符:
*:所有
!:取反
f1,f2,f3,...:列表
priority:级别
debug:调试信息
info:基本说明信息
notice:需要注意的信息
warn,warning:警告信息
err,error:错误信息
crit:蓝色警报
alert:橙色警报
emerg,panic:红色警报
级别可以使用通配符:
*:所有级别
none:没有任何级别
target:目标,制定如何存储日志
文件路径:例如,/var/log/messages
用户:*
日志服务器:@SERVER_IP
管道: | COMMAND
rsyslog的之配置文件:/etc/rslog.conf,其定义格式;
facility.priority Target
mail.info /var/log/maillog
比指定级别更高的所有级别,包括指定的级别本身;
mail.=info /var/log/maillog
明确指定级别;
mail.!info *
除了指定级别
*.info | COMMAND
所有facility的info级别
mail.*:
mail的所有级别
mail,news.info:
日志信息格式:
时间 主机 进程(PID):事件
启用日志服务器的功能:模块
通过514/udp搜集日志信息:
> # Provides UDP syslog reception > $ModLoad imudp > $UDPServerRun 514
通过514/tcp搜集日志信息
> # Provides TCP syslog reception > $ModLoad imtcp > $InputTCPServerRun 514
实例:基于LAMP平台搭建rsyslog+loganalyzer日志服务器
实验环境:
web-php服务器,同为日志客户端:
IP:192.168.1.10
操作系统:CentOS6.7 x86_64
数据库服务器:
IP:192.168.1.11
操作系统:CentOS6.7 x86_64
日志服务器:
IP:192.168.1.12
操作系统:CentOS6.7 x86_64
loganalyzer:loganalyzer-3.6.6.tar.gz
官网:http://www.loganalyzer.net/
实验过程:
连接日志服务器和客户端:
编辑日志服务器配置文件,启动日志服务器功能,接收客户端的日志:
# vim /etc/rsyslog.conf > $ModLoad imudp > $UDPServerRun 514 > > $ModLoad imtcp > $InputTCPServerRun 514
重启rsyslog服务,查看端口:
# service rsyslog restart # ss -tunl | grep :514
编辑日志客户端配置文件,指定日志服务器,重启rsyslog服务;
# vim /etc/rsyslog.conf > *.info;mail.none;authpriv.none;cron.none @192.168.1.12 # service rsyslog restart
日志服务器查看日志:
# tail -l /var/log/messages
服务器已接收到客户端的日志。
日志服务器连接数据库:
数据库服务器安装服务;
# yum install mysql mysql-server
启动mysql服务:
# chkconfig mysqld on # service mysqld start
日志服务器安装mysql模块:
# yum install rsyslog-mysql
查看安装rsyslog-mysql模块生成文件:
# rpm -ql rsyslog-mysql
生成的数据库文件传送给数据库服务器:
# scp /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 192.168.1.11:/root
将文件导入数据库:
# mysql < createDB.sql
授权rsyslog用户
# mysql mysql> GRANT ALL ON Syslog.* [email protected]‘192.168.1.%‘ IDENTIFIED BY ‘rsyslogpass‘; mysql> FLUSH PRIVILEGES;
编辑日志服务器配置文件添加ommysql模块,日志信息指向数据库服务器,重启服务:
# vim /etc/rsyslog.conf > $ModLoad ommysql > *.info;mail.none;authpriv.none;cron.none :ommysql:192.168.1.11,Syslog,rsysloguser,rsyslogpass # service rsyslog restart
查看mysql信息:
数据库已接收到日志信息。
安装lamp平台部署loganalyzer:
安装lamp平台:
# yum install httpd php php-mysql
配置loganalyzer:
# tar xf loganalyzer-3.6.6.tar.gz # mkdir -p /var/www/html/log # cp -a loganalyzer-3.6.6/src/*/var/www/html/log/ # cp -a loganalyzer-3.6.6/contrib/*/var/www/html/log/ # cd /var/www/html/log/ # chmod +x configure.sh secure.sh # ./configure.sh # ./secure.sh # chmod 666 config.php # chown -R apache:apache ./*
启动服务:
# chkconfig httpd on # service httpd start
访问站点http://192.168.1.10/log配置信息:
点击here继续;
点击Next继续;
文件可写,点击Next继续;
关闭用户数据库,Next继续;
连接数据库,Next继续;
安装完成:
结语:
查看日志,分析日志是一位运维工程师的日常,rsyslog+loganalyzer可以将日志信息反映于web页面,显示更直观,便于统计、分析,并且还可以远程查看,管理,搭建过程也非常方便;以上为本人学习整理内容,试验中如有遗漏和失误,欢迎各路大神来喷。