日志分析是一个成熟的应用中必不可少的 , 人们不可能随时在服务器状观察服务器状态 , 所以分析机器的日志文件可以看到所有服务运行状态 , 其中产生的问题等 !!!
rsyslogd 介绍
增强版本的syslogd,它支持数据使用插件、直接调用模板、异步写数据库等相对高级的功能
使用前可能需要安装服务
yum install rsyslog -y
特点:
- 基于TCP网络协议传输日志信息
- 更安全的网络传输方式
- 有日志消息的及时分析框架
- 后台数据库
- 配置文件中可以写简单的逻辑判断
- 与syslog配置文件相兼容
常用日志的作用
| 日志文件 | 说明 |
|---|---|
| /var/log/cron | 记录了定时任务相关的日志 |
| /var/log/cups | 记录了打印信息的日志 |
| /var/log/dmesg | 记录了系统在开机时内核自检的信息 |
| /var/log/btmp | 记录了错误登录日志 , 这个文件是二进制文件,使用 lastb 查看 |
| /var/log/lastlog | 记录所有用户最后一次登录时间的日志 , 这个文件是二进制文件 , 使用 lastlog 命令查看 |
| /var/log/maillog | 记录邮件信息 |
| /var/log/message | 记录系统重要信息的日志 , 会记录系统绝大多数信息 , 如果系统出现问题 , 首先检查这个日志文件 |
| /var/log/secure | 记录验证和授权方面的信息 , 只要涉及账号密码的程序都会记录 |
| /var/log/wtmp | 永久记录所有用户的登录、注销信息,记录系统启动、重启、关机事件,二进制文件, 使用 last 命令查看 |
| /var/log/utmp | 记录当前已经登录的用户信息 , 会随着用户登录和注销不断变化 , 只记录当前登录用户信息 , 要使用 w, who, users 等信息查询 |
日志文件格式
**包含如下四列 : **
- 产生时间
- 发生事件的服务器的主机名
- 产生事件的服务名或程序名
- 事件的具体信息
rsyslogd 配置文件
/etc/rsyslog.conf这是个这个服务的配置文件
# 基本格式如下 :
authpriv.* /var/log/secure
# 服务名称[连接符号]日志等级 日志记录位置
# 认证相关服务.所有日志等级
只要我们对照这三个信息,就可以了解其日志运行方式如何
服务名称
| 服务名称 | 说明 |
|---|---|
| auth | –pam产生的日志 |
| authpriv | –ssh,ftp等登录信息的验证信息 |
| cron | –时间任务相关 |
| kern | –内核 |
| lpr | –打印 |
| –邮件 | |
| mark(syslog) | –rsyslog服务内部的信息,时间标识 |
| news | –新闻组 |
| user | –用户程序产生的相关信息 |
| uucp | –unix to unix copy, unix主机之间相关的通讯 |
| local 1~7 | –自定义的日志设备 |
连接符号
连接符号总共如下 :
- "*"代表所有日志等级
- "."代表只要比后面的等级高的(包含该等级)日志都记录下来。比如:"cron.info"代表cron服务产生的日志,只要日志等级大于info级别,就记录
- ".="代表只记录所需等级的日志,其他等级的都不记录。比如:"*.=info" , 只要等级是info就记录
- ".!"代表不等于,除了该等级,其他等级都记录
日志等级
| 等级名称 | 说 明 |
|---|---|
| debug | 一般的调试信息说明 |
| info | 基本的通知信息 |
| notice | 普通信息,但是有一定的重要性 |
| warning | 警告信息,但是还不会影响到服务或系统的运行 |
| err | 错误信息,一般达到err等级的信息以及可以影响到服务或系统的运行了 |
| alert | 警告状态信息,比crit还要严重,必须立即采取行动 |
| emerg | 疼痛等级信息,系统已经无法使用了 |
注意:日志等级越高记录的信息越少,优先级越高,日志的等级越低记录的信息越多,优先级越低
日志拆分
日志信息太多,所以我们需要这样做
- 切割:将日志分为一天一天的
- 轮替:删除旧的为新的腾空间
日志文件的命名规则
时间命名:
有"dateext"参数,会用日期来作为日志文件的后缀
例如"secure-20170824",日志文件名不会重叠,也不需要改名,只需要保存指定的日志,删除多余的即可
自动改名,加后缀:
没有"dateext"参数,那么就需要进行改名了
- 第一次进行轮替时,当前的"secure"日志会自动改名为"secure.1",然后新建"secure"日志。
- 第二次进行轮替时,"secure.1"会自动改名为"secure.2",当前的"secure"日志会自动改名为"secure.1",然后也会新建"secure"来保存新的日志
- 第x次进行轮替时,"secure.x"会自动改名为"secure.x+1",当前的"secure"日志会自动改名为"secure.x",然后也会新建"secure"来保存新的日志
配置文件位置
默认RPM安装的服务 , 默认是支持轮替的
/etc/logrotate.conf主配置文件
/etc/logrotate.d/各个服务的配置文件
logrotate配置文件
| 参 数 | 参 数 说 明 |
|---|---|
| daily/weekly/monthly | 日志轮替周期是 每天/每周/每月 |
| rotate 数字 | 保留的日志文件的个数,0指没有备份 |
| compress | 日志轮替时,旧的日志进行压缩 |
| create mode owner | 建立新的日志,同时指定新日志的权限与所有者和所属组 |
| mail address | 当日志轮替时,输出内容通过邮件发送到指定的邮件地址 |
| missingok | 如果日志不存在,则忽略该日志的警告信息 |
| notifempty | 如果日志为空文件,则不进行日志轮替 |
| minsize 大小 | 日志轮替的最小值,也就是日志一定要达到这个最小值才会轮替,否则就算时间大达到也不轮替 |
| size 大小 | 日志只有大于指定的大小才进行日志轮替,而不是按照时间轮替。如size 100k |
| dateext | 使用日期作为日志轮替文件的后缀,如secure-20170824 |
把源码包安装的服务日志加入轮替(apache示例)
vi /etc/logrotate.conf
/usr/local/apache2/logs/access_log {
daily # 第天
create # 方式: 创建
rotate 30 # 保留30天
}
logrotate命令
logrotate -f[选项] /etc/logrotate.conf[配置文件名]
如果此命令没有选项,则会按照配置文件中的条件进行日志轮替
-v 显示日志轮替过程。加了-v选项,会显示日志的轮替过程
-f 强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中的所有的日志进行轮替
原创文章转载请注明:转载自:Linux 日志服务
感谢分析,正在学习
温故而知新,可以为师已