Linux日志管理(2)

查看服务是否启动:
[root@localhost ~]# ps aux | grep rsyslogd
root 6542 0.2 0.6 214444 6444 ? Ssl 22:11 0:00 /usr/sbin/rsyslogd -n
root 6898 0.0 0.0 112724 984 pts/0 S+ 22:12 0:00 grep --color=auto rsyslogd

查看服务是否自启:
[root@localhost ~]# chkconfig --list | grep rsyslog

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。

要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。


常见日志的作用:
/var/log/cron 记录定时任务相关的日志
/var/log/cups 记录打印信息的日志
/var/log/dmess 记录了系统在开机时内核自检的信息。也可以使用dmesg命令直接查看系统自检信息
/var/log/btmp 记录错误登录的日志。二进制文件,不能直接vim查看,而要使用lastb命令
/var/log/last1og 记录系统中所有用户最后一次的登录时间的日志。这个文件也是二进制文件,不能直接vi,而要使用lastlog命令
/var/log/maillog 记录邮件信息
/var/log/message 记录系统中重要的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检 查的就是这个日志文件。
/var/log/secure 记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录。比如系统的登录,ssh的登录,su切换用户, sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中。
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。该文件是二进制文件,需要用last 查看
/var/run/utmp 记录当前已经登录的用户信息。这个文件会随着用户的登录和注销而发生变化。只记录当前登录用户的信息。该文 件用w、who、users等查询

 

rsyslogd日志服务

基本日志格式包含以下四列:
事件产生的时间
发生事件的服务器的主机名
产生事件的服务名或程序名
事件的具体信息

/etc/rsyslog.conf配置文件

authpriv.* /var/log/secure
#服务名称[连接符号] 日志等级 日志记录位置
#认证相关服务.所有日志等级 记录在/var/log/secure日志中

说明:
authpriv : 服务名称
. : 连接符号
* : 日志等级,*表示所有的
/var/log/secure : 日志位置


服务名称 说明
auth : 安全和认证相关信息(不推荐)
authpriv : 安全和认证相关信息(私有的)
cron : 系统定时任务cron和at产生的日志
daemon : 和各个守护进程相关的日志
ftp : ftp进程产出的日志
kern : 内核产生的日志(不是用户进程产生的)
local0-local7 : 为本地使用预留的服务
lpr : 打印产生的日志
mail : 邮件收发信息
news : 与新闻服务器相关的日志
syslog : 有syslogd服务产生的日志信息,虽然服务名称已经修改为rsyslogd,但是很多配置都还是沿用了syslogd的
这里并没有修改服务名
user : 用户等级类别的日志信息
uucp : uucp子系统的日志信息,uucp是早期linux系统进行数据传递的协议,后来也常用在新闻组服务中

连接符号:
* 代表所有的日志等级,比如“authpriv.*”代表authpriv认证信息服务产生的日志,所有的日志等级都记录
. 代表只要比后面的等级高的)(包含该等级)日志都记录下来。比如:“cron.info”代表cron服务产生的日志,只要日志等级大于等于info级别,就记录。
.= 代表只记录所需等级的日志,其他等级的都不记录。比如“*.=emerg”代表人和日志服务产生的日志,只要等级是emerg等级就记录。这种用法及少见,了解就好。
.! 代表不等于,也就是除了该等级的日志外,其他等级的日志都记录。

日志等级:
debug :一般的调试信息说明
info :基本的通知信息
notice:普通信息,但是有一定的重要性
warning:警告信息,但是还不会影响到服务和系统的运行
err:错误信息,一般达到err等级的信息以及可以影响到服务或系统的运行了。
crit:临界状况信息,比err还要严重。
alert:警告状态信息,比crit还严重。必须立即采取行动
emerg:疼痛等级信息,系统已经无法使用了

日志记录位置:
日志文件的绝对路径,如 /var/log/secure
系统设备文件,如 /dev/lp0
转发给远程主机,如 @192.168.0.210:514
用户名,如 root
忽略或丢弃日志:如 ~

日志轮替
日志命名规则:配置文件拥有dateext参数,生成如下日志:secure、secure-20130605、secure-20130606
配置文件没有dateext参数,生成如下日志:secure、secure.1、 secure.2、 secure.3

logrotate配置文件
daily : 日志的轮替周期是每天
weekly : 日志的轮替周期是每周
monthly : 日志的轮替周期是每月
rotate 数字 : 保留的日志文件的个数。0指没有备份
compress : 日志轮替时,旧的日志进行压缩
create mode owner group : 建立新日志,同时指定新日志的权限与所有者和所属组。如create 0600 root utmp
mail address : 当日志轮替时,输出内容通过邮件发送到指定的邮件地址。如:mail shenc@lamp.net
missingok : 如果日志不存在,则忽略该日志的警告信息
notifempty : 如果日志为空文件,则不进行日志轮替
minsize 大小 : 日志轮替的最小值。也就是日志一定要达到这个最小值才会轮替,否则就算时间达到也不轮替
size 大小 : 日志只有大于指定大小才进行日志轮替,而不是按照时间轮替 如 size 100k
dateext : 使用日期作为日志轮替文件的后缀,如secure-201306

vim /etc/logrotate.conf

rpm包安装的日志可以默认识别
源码包安装的,手动把apache日志加入轮替
vim /etc/logrotate.conf

/usr/local/apache2/logs/access_log{
daily
create
rotate 30 #保留30天日志
}


logrotate [选项] 配置文件名
选项:
如果此命令没有选项,则会按照配置文件中的条件进行日志轮替
-v:显示日志轮替过程。加了-v选项,会显示日志的轮替的过程
-f:强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中所有的日志进行轮转

logrotate -v /etc/logrotate.conf
logrotate -f /etc/logrotate.conf

 

posted @ 2019-07-15 18:15  雷雨客  阅读(172)  评论(0编辑  收藏  举报