Linux日志管理syslog
1、日志管理概述
rsyslog系统日志管理
哪类程序》产生的什么日志》放在什么地方
有系统日志
有应用程序内部日志
ps axu | grep rsyslogd
/usr/sbin/rsyslogd -n
常见的日志文件(系统、进程、应用程序)
tail -10 /var/log/messages = 系统主日志文件(重要)
tail -f /var/log/messages = 动态查看日志文件的尾部
tail /var/log/secure = 认证、安全
tail /var/log/yum.log = yum的日志
tail /var/log/maillog = 跟邮件postfix相关的日志
tail /var/log/cron = crond、at进程相关的日志
tail /var/log/dmesg = 和系统启动相关
tail /var/log/audit/audit.log = 系统审计日志
tail /var/log/mysqld.log = mysql相关日志
tail /var/log/xferlog = 和访问ftp服务相关日志
tail /var/log/wtmp = 当前登录的用户(命令:w)
tail /var/log/btmp = 最近登录的用户(命令:last)
tail /var/log/lastlog = 所有用户的登录情况(命令:lastlog)
2、rsyslog安装与配置
rsyslog是一个程序,是一个进程,有相关的配置文件。
2.1 rsyslog安装
yum install -y rsyslog logrotate
systemctl enable rsyslog.service
systemctl start rsyslog.service
rpm -qa rsyslog
列出rsyslog包产生的相关所有文件
rpm -ql rsyslog
查看rsyslog相关的配置文件
rpm -qc rsyslog
2.2 rsyslog的主要配置文件
配置文件 | 配置说明 |
---|---|
/etc/rsyslog.conf |
rsyslogd的主配置文件(关键) |
/etc/sysconfig/rsyslog |
rsyslogd的相关文件,定义级别(了解一下) |
/etc/logrotate.d/syslog |
和日志轮转(切割)相关的文件 |
rsyslog
ps aux | grep rsyslogd | grep -v grep
所属用户 PID 没有耗CPU 占用内存 虚拟内存 XX 没有终端(操作系统开启的) 在睡觉 开启时长 占用CPU0.00秒 启动命令
root 823 0.0 0.1 218528 4840 ? Ssl 07:45 0:00 /usr/sbin/rsyslogd -n
rsyslogd配置
/etc/rsyslog.conf文件的格式template
布拉布拉布拉
6 #### MODULES ####
布拉布拉布拉
23 #### GLOBAL DIRECTIVES ####
布拉布拉布拉;
46 #### RULES ####
布拉布拉布拉;
RULES 即规则,是一套生成日志,以及存储日志的策略。
规则由:(设备+级别+存放位置) 组成。
(FACILITY+LEVEL+FILE) 组成
authpriv.* /var/log/secure(SSH信息;SSH程序被定义为安全类设备,由开发者定义)
mail.* /var/log/maillog(发邮件)
cron.* /var/log/cron(创建计划任务)
76 # ### begin forwarding rule ###
布拉布拉布拉
91 # ### end of the forwarding rule ###
什么设备、日志级别、存放位置
cron
设备、*
任意级别、存放在/var/log/cron
第60行的 -
表示使用异步的方式记录日志。
查看设备
设备类型:
LOG_SYSLOG syslogd自身产生的日志
LOG_AUTHPRIV 安全认证
LOG_CRON 调度程序(cron and at)
LOG_MAIL 邮件系统 mail subsystem
LOG_USER(default) 用户相关
LOG_DAEMON 后台进程
LOG_FTP 文件服务器
LOG_KERN 内核设备
LOG_LPR 打印机设备
LOG_LOCAL0 through LOG_LOCAL7 用户自定设备
查看级别
LOG_EMERG 紧急、致命、服务无法继续运行;如配置文件丢失。
LOG_ALERT 报警、需要立即处理;如磁盘占用达95%。
LOG_CRIT 知名行为信息。
LOG_ERR 错误行为信息。
LOG_WARNING 警告信息。
LOG_NOTICE 普通、重要的标准信息。
LOG_INFO 标准信息。
LOG_DEBUG 调试信息、排错所需,一般不建议使用。
*.info;mail.none;authpriv.none;cron.none /var/log/messages
;
表示并列规则。
.
表示分割 设备、级别。
none
表示不放在这里
FACILITY+LEVEL+FILE的关系
安装httpd查看相关日志
安装:yum install -y httpd
启动:systemctl start httpd
查看:tail -f /var/log/httpd/access_log
访问:http://192.168.168.172/
3、logrotate安装与配置
/etc/logrotate.conf
:主配置文件:决定每个日志文件如何轮转。
/etc/logrotate.d/*
:子配置文件夹:放置子配置文件。
主配置文件/etc/logrotate.conf实践
weekly //轮转的周期,一周轮转
rotate 4 //保留4份
create //轮转后创建新文件 mv touch
dateext //使用日期作为后缀
#compress //是否压缩
include /etc/logrotate.d //包含此目录下的子配置文件
/var/log/wtmp {
//对某日志文件设置轮转的方法
monthly //一月轮转一次
create 0664 root utmp //轮转后创建新文件,并设置权限
minsize 1M //最小达到1M才轮转, monthly and minsize
rotate 1 //保留1份
}
/var/log/btmp {
missingok //丢失不提示
monthly //每月轮转一次
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
yum轮转规则实战
原结构
/var/log/yum.log {
missingok //丢失不提醒
notifempty //空文件不轮转
maxsize 30k //达到30k轮转,daily or size
yearly //一年一轮转
rotate 3 //保留3份
create 0600 root root //
}
修改后结构
/var/log/yum.log {
missingok
# notifempty
# maxsize 30k
# yearly
daily
create 0777 root root
}
/usr/sbin/logrotate /etc/logrotate.conf
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf