rsyslog:
日志:历史事件的相当记录
记录的内容:事件发生的时间、事件内容
日志级别:事件的关键性程序,loglevel
Linux:应用程序,内核
syslogd 为系统记录日志的程序
klogd 为内核记录日志的程序
程序包:syslog (centos5之前的版本)--> rsyslog
rsyslog:
多线程;
基于此些UDP, TCP, SSL, TLS, RELP协议来进行远程记录。
日志可以记录在MySQL, PGSQL, Oracle等多种关系数据库中
强大的过滤器,可实现过滤系统信息中的任意部分
自定义输出格式
适用于企业级别日志记录需求
还有一种日志工具为:elk: elasticsearch, logstash, kibana
日志生成方:应用程序和内核
每个应用程序都可自行记录日志
内核也可记录日志
核心概念:
facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录相应的日志信息;
由下列相应的工具来记录相应的信息:
auth
authpriv
cron
daemon
kern
lpr
mark
news
security
syslog
user
uucp
local0 - local7
priority:级别
debug
info
notice
warn, warning
err, error
crit
alert
emerg, panic
指定级别的方式:
*: 所有级别
none: 没有级别
priority: 比此级别高的(包含)所有级别的日志信息都会记录
=priority: 仅记录指定级别
rsyslog的配置文件:/etc/rsyslog.conf
RULES:
facility.priority target
设施.级别 何处
target:
文件路径:将日志记录于指定的文件中;在文件路径之前使用"-",表示异步写入;
用户:将日志信息通知给文件
*: 所有用户
日志服务器:@SERVER
管道:| COMMAND
文件记录日志文件的格式:
事件产生的时间 主机 进程(PID): 事件
有些日志记录二进制格式,例如,两个日志文件:
成功登录系统的日志:/var/log/wtmp
查看命令:last
失败的登录的尝试:/var/log/btmp
查看命令:lastb
lastlog命令:显示当前系统每个用户各自最近一次的登录信息;
模块:
启用本机成为日志服务器:
$ModLoad imudp
$UDPServerRun 514
udp模块启用后可以用ss -unl查看是否监听在514端口上
$ModLoad imtcp
$InputTCPServerRun 514
tcp模块启用后可以使用ss -tan查看是否监听在514端口上
更配置文件后,service rsyslog restart
rsyslog支持把日志存储于mysql中:
(1) 有可用的MySQL服务器;
yum install mysql-server -y
service mysqld start
(2) 安装rsyslog-mysql程序包;
yum install rsyslog-mysql -y
(3) 创建rsyslog依赖的数据库;
# mysql < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
在mysql中可以查到相关的Syslog以及相关的表;
(4) 配置rsyslog启用ommysql模块,在/etc/rsyslog.conf配置文件内添加;
#### MODULES ####
$ModLoad ommysql
(5) 定义某facility把日志记录至指定的数据库的指定表中;
#### RULES ####
facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD
例:
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,rsyslog,rsyslog
在数据库中创建用户:
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslog';
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'rsyslog';
mysql> FLUSH PRIVILEGES;
mysql> select * from SystemEvents\G
(6) 可选:使用loganalyzer(WebGUI)来展示日志信息;
第一步:下载依赖的lamp组件;
# yum install httpd php php-mysql php-gd
第二步:看是否php能够正常执行
servicehttpd start
在/var/www/html下创建index.php测试页面
<?php
phpinfo;
?>
service httpd reload
在浏览器下输入IP查看测试页面
下载loganalyzer,并展开;这里以loganalyzer-3.6.5为例
# cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer
# cp loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer
# cd /var/www/html/loganalyzer
# chmod +x configure.sh secure.sh
# ./configure.sh
# ./secure.sh
# chmod 666 config.php
访问:http://SERVER_IP/loganalyzer/install.php
如下界面需要配置后才能显示: