日志的作用
用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障
日志文件的分类
内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
用户日志
记录系统用户登录和退出相关的系统信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
rsyslog.conf文件的格式
服务级别.日志级别
Authpriv 认证有关的机制
cron 计划任务 cron/at 等产生信息记录的地方
daemon
kern
mail
syslog
local0~local7
news
日志消息的级别
0 EMERG(紧急)
1 ALERT(警告)
2 CRIT(严重)
3 ERR (错误)
4 WARNING(提醒)
5 NOTICE(注意)
6 INFO(信息)
7 DEBUG(调试)
/var/log/
lastlog 最近的用户登录时间(直接用lastlog命令调用)
wtmp 用户登录、注销及系统开、关机事件(用who和last命令可以调用查看)
secure 与用户验证相关的安全性事件
btmp 与用户验证失败的安全性事件(用lastb|more命令可以调用)
/var/run/utmp 当前登录的每个用户的详细信息(直接用who和w调用)
用户登录分析
who、w、users、lastb、last、ac、lastlog
logger:从命令行直接向系统日志文件写入一行信息
为什么不用“>>”,而用logger命令
是因为系统日志文件有自己的格式,用logger 命令可以把输出结果进行格式化
ping -c 2 www.baidu.com | logger -it " A ping test" -p authpriv.info
日志远程备份
编辑/etc/rsyslog.conf配置文件,开启客户机上的日志远程服务
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
*.* @@10.0.10.222:514
编辑/etc/rsyslog.conf配置文件,可接收其他机器上的日志服务
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
netstat -anptu |grep rsyslogd 查看服务器端是否开启514端口(rsyslogd)
如果没有开启514端口的话,就直接执行 service rsyslog restart
更改hostname /etc/sysconfig/network 不要让客户机与服务器的hostname同名
更改/etc/hosts 添加hostname和与之对应的ip地址 ping hostname == ping ip
日志轮转:logrotate
日志轮转主配置文件:/etc/logrotate.conf
对特定的日志文件作轮转的配置文件为:/etc/logrotate.d
日志轮转次要配置文件:/etc/logrotate.d/*
/bin/kill -HUP `cat /var/run/rsyslogd.pid 2>/dev/null` 2>/dev/null || true
-HUP 挂起进程,不关闭进程,直接更新
对某个特定的日志文件进行轮转的步骤:
[[email protected] logrotate.d]# vi /etc/rsyslog.conf
编辑系统日志文件的配置文件,添加特定的日志文件类型或者不添加,直接用本身存在的日志文件,这里是添加
[[email protected] logrotate.d]# service rsyslog restart
重启系统日志文件服务
[[email protected] logrotate.d]# cd /etc/logrotate.d
进入轮转配置文件夹
[[email protected] logrotate.d]# vi admin
编辑新的文件,进行特定的轮转
/var/log/admin.log{
monthly
size 10M
rotate 3
compress
sharedscripts
prerotate
/usr/bin/chattr -a /var/log/admin.log
endscript
sharedscripts
postrotate
/usr/bin/killall -HUP rsyslogd
/usr/bin/chattr +a /var/log/admin.log
endscript
}
[[email protected] logrotate.d]# chattr +a /var/log/admin.log
切记,一定要对/var/log/admin.log文件添加“a”属性,防止被删除之类的操作,具体按照man chattr
[[email protected] logrotate.d]# logrotate -f /etc/logrotate.conf
强制轮转,验证结果