linux系统中日志分析 是很重要的一部分,下面介绍一下简单的日志自定义配置和日志收集linux
1 日志配置服务器
配置文件在/etc/rsyslog.conf中网络
日志分为日志类型,日志级别。post
日志类型:测试
mail 邮件类型优化
cron 定时任务类型debug
user 用户类型调试
authpriv 审计类型rest
news 新闻类型日志
kern 内核数据类型
daemon 守护类型
日志级别(告警级别)
0 debug 调试级别
1 info 消息级别
2 notice 注意级别
3 warning 告警级别
4 err 错误级别
5 crit 级别
6 aler 级别
7 emerg 急救级别
能够根据本身的定义A.B 其中A是日志类型B是日志级别,配置好日志输出在那些文件中
# test
mail.err /var/log/myMailErr.log
配置完rsyslog.conf以后重启rsyslog:
service rsyslog restart
重启完以后
/var/log/myMailErr.log 就自动生成
日志文件配置好,日志文件生成以后,能够测试一下,
logger -p mail.err 'hello you mail have some error'
检查myMailErr.log 文件
2 日志收集
管理多台服务器的时候管理人员不可能登录每一台服务器(下面就叫客户机)去查看日志,须要把每一台客户机的日志发送到服务机(管理人员的本机),进行日志收集。
先在客户机的/etc/rsyslog.conf文件里面加上*.* @@IP :514
上面IP是发送到服务机的IP,514是端口
重启service rsyslog restart
默认收集的客户机的日志都在/var/log/messages里面(以实际状况而定,也能够查看服务机对于的日志文件里面)
注意:客户机要和服务机网络互通
上面是客户机的新建的日志消息
日志消息已经发送到服务机上
3 日志优化
在服务机上的/etc/rsyslog.conf 末尾加上下面代码重启rsyslog
$template Remote,"/var/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
:fromhost-ip, !isequal, "127.0.0.1" ?Remote
优化以后每一台客户机发送过来的日志都会自动保存在以客户机网关命名的文件里面,这样就对不一样的客户机日志分批收集分析。
4 日志轮循
日志轮循也叫日志切割,能够根据不一样的时间进行切割,好比按天切割,按周切割,按月切割,按年切割。时间到了就自动从新创建日志文件,并以日期为后缀。也能够按照日志大小切割。
在/etc/logrotate.conf 文件中设置切割规则,
以下天天切割
/var/log/log-file {
daily
rotate 5
compress
delaycompress
missingok
notifempty
create 644 root root
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}
以下按大小切割
/var/log/myMailErr.log{
daily
rotate 5
compress
delaycompress
missingok
notifempty
create 644 root root
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}
能够修改系统时间到当天最后的几秒而后等待几秒只能哦给,来验证按天截取。按天截取系统自动执行有时候没有那么准时在下一天第一秒,因此能够手动强制切割:
logrotate -vf /etc/logrotate.conf