概念和特性
历史日志、历史事件:时间、事件本身、日志级别(根据时间的关键性程度)
系统日志服务:syslog有两个进程syslogd(system负责用户进程)、 klogd(kernel负责内核进程)
centos7:rsyslog:syslogd、klogd
rsyslog和syslog对比:
1、多进程、可以为非本机上的进程接收日志;
2、支持UDP\TCP\SSL\TLS\RELP;
3、支持MySQL,PGSQL,Oralce实现日志存储;
4、强大的内置过滤器,可实现过滤日志信息中的任意部分;
5、自定义输出格式;
(并非所有程序都rsyslog负责记录,有的程序自己有自己的日志记录)
收集工具elk:elasticsearch强大的弹性搜索工具、logstash日志收集器、kibana前端日志显示
日志收集放:
facility设施(从功能活程序上对日志进行分类),将多个发过来具有相同特性的数据流约束在一个管道内
auth、authpriv、cron、daemon、kern、lpr、mail、mark、news、security、user、uucp、local0-local7、syslog
priority日志级别
debug、info、notice、warn(warning)、err(error)、crit(critical)、alert、emerg(panic)
指定级别:*(所有级别)、none(没有级别)、priority(此级别及更高级别的日志信息)、=priority(此级别)
facility.priority
/var/log/messages
#rpm -q rsyslog
程序环境
主程序rsyslogd
配置文件/etc/rsyslog.conf
RULES:
facility.priority target(不光是文件,可以是用户)
文件路径:记录到文件中,通常在/var/log,文件路径前加-表示异步同步
用户:将日志通知给其他用户,*表示所有用户
日志服务器:[email protected]:514,必须监听在tcp或者udp某个端口,通常514端口
管道:|COMMAND
文件记录的日志的格式:
时间产生的时间 |
主机 |
进程pid |
时间内容 |
有些日志记录二进制格式:/var/log/wtmp(记录当前系统上成功登陆的日志,last查看);/var/log/btmp(记录当前系统上失败登陆的日志,lastb查看)
lastlog命令:显示当前系统每一个用户最近一次登陆时间
服务脚本/etc/rc.d/init.d/rsyslog
rsyslog服务器:
#vi /etc/rsyslog.conf
$ModLoad
imudp
$UDPServerRun
514
#
Provides TCP syslog reception
$ModLoad
imtcp
$InputTCPServerRun
514
配置使用基于mysql存储日志信息:
(1)
准备好MySQL服务器,创建用户,授权对Syslog数据库的全部访问权限;
(2)
安装rsyslog-mysql程序包;
(3)
创建rsyslog-mysql依赖的数据库;
#
mysql -uUSERNAME -hHOST -pPASSWORD <
/usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
(4)
配置rsyslog使用ommysql模块
####
MODULES ####
$ModLoad
ommysql
####
RULES ####
facility.priority
:ommysql:DBHOST,DB,DBUSER,USERPASS
重启rsyslog服务
(5)
安装loganalyzer
(a)
配置webserver, 支持php
#
yum install httpd php php-mysql php-gd
#
service httpd start
(b)
loganalyzer
#
cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer
#
cp loganalyzer-3.6.5/contrib/*.sh /var/www/html/loganalyzer
#
cd /var/www/html/loganalyzer
#
chmod +x *.sh
#
./configure.sh
#
./secure.sh
#
chmod 666 config.php