日志:
日志是历史时间
按时间序列将发生的事件予以记录的文件
日志记录:事件发生的时间,事件内容
日志级别:事件的关键性程度,log level
Linux:哪些进程需要记录日志?
syslog: 日志系统
syslogd: 系统进程的相关日志
klogd: 内核事件相关的日志
我们这里使用rsyslog来记录日志。rsyslog特点:
支持多线程
支持:TCP,SSL,TLS,RELP
支持:MySQL, PGSQL, Oracle等多种关系型数据中
有强大的过滤器,可实现过滤系统信息中的任意部分
支持自定义输出格式
适用于企业级别日志记录需求
模块化程序
rsyslog主配置文件:/etc/rsyslog.conf
rsyslog的选项:facility(设施),priority(级别),Target(路径)
facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录其日志
auth:跟认证相关的
authpriv:跟认证授权相关的
cron:跟周期性任务相关的
daemon:帮守护进程相关的
kern:帮内核记录日志的
lpr:帮打印组记录日志
mail:帮邮件服务记录日志
mark:防火墙标记记录日志的
news: 新闻组
security:跟安全相关的
syslog:syslong自己的日志
user:跟用户相关的
uucp:unix日志
local0 through local7: 8 customed facility(8个自定义的facility)
指定设施时可以使用通配符:指定日志选项
* :所有
,:列表,f1,f2,f3,f4...
! : 取反
; :记录多个日志信息
- :启用异步功能
priority: 级别,如果不用=号会记录比自己更高的级别
debug
info
notice
warn, warning
err, error
crit
alert
emerg,panic
通配符:
* :所有级别
none :没有任何级别,不记录日志信息
; :记录多个日志信息
- :启用异步功能
Target:
文件路径:例如/var/log/messages
用户:*,所有用户
日志服务器:@SERVER_IP
管道:|COMMAND
rsyslog的格式:
facility.priority Target
例如1:mail.info/var/log/maillog
比指定级别更高的所有级别,包括指定的级别本身
例如2:mail.=info/var/log/maillog:只记录info级别的日志
明确指定级别
例如3:mail.!info/var/log/maillog
除了指定级别
例如4:*.info/var/log/log
所有facility的info级别
例如5: mail.*/var/log/maillog
mail的所有级别
例如6:mail,news.info/var/log/maillog
mail与news的info级别
例如7:mail.notice, new.info/var/log/log
mial的notice级别和new的info级别
例如8:mail.info*
mail的日志发送给当前系统上已登录的所有用户info级别及以上的日志
将mail的info日志发送给192.168.1.1这个日志服务器
例如10:mail.!info| COMMAND
将mail除info之外的其他级别日志发送给一个命令,如gerp
例如11:*.info;mail.none
记录所有设施的info及其他更高级别日志,但是mail不记录
例如12:mail.*-/var/log/maillog
记录mail的所有级别日志,但是日志是异步同步的
查看日志信息:
tail /etc/log/messages
日志信息格式:
时间主机进程(PID):时间
启用接受其他服务器发送来的日志文件功能:启用日志服务器功能vim /etc/rsyslog.conf
修改配置之后重启才会生效
MODULES:模块
#没跟空格的都是可启用功能
ModLoad imudp:装载一个udp模块
UDPServerRun 514
监听在UDP的514端口接收其他服务器发来的日志信息
--------------------------------------------------
ModLoad imtcp:装载一个tcp模块
InputTCPserverRun:
监听在TCP的514端口接收其他服务器发来的日志信息
--------------------------------------------------
GLOBAL DIRECTIVES:全局指令
--------------------------------------------------
RULES:规则
rsyslog支持将日志存储于MySQL服务器中:vim /etc/rsyslong.conf
yum install rsyslog-mysql: 安装rsyslog-mysql模块
rpm -ql rsyslog-mysql
/lib/rsyslog/ommysql.so: om代表输出模块im代表输入模块
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql:日志输出模版
begin forwarding rule
MODULES
#Log event to MySQL
$ModLoad ommysql: 装载mysql模块
RULES
mail.*:ommysql:127.0.0.1,Syslog,sysloguser,syslogpass
facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWD
将日志模版重定向输入到mysql数据库
mysql
mysql : 进入mysql数据库
SHOW DATABASES; : 查看是否已经将模版导入
use Syslog; : 将Syslog设为默认数据库
SHOW TABLES; : 查看默认数据库的表
GRANT ALL ON Syslog.* TO [email protected] IDENTIFIED BY ‘syslogpass‘;
设置sys的用户名与密码并切拥有syslog的所有权限
FLUSH PRIVILEGES;: 刷新权限
service rsyslog restart:重启服务
做一个服务访问让其生成日志
SELECT * FROM SystemEvents;:查看日志信息