Linux 日志服务

日志分析是一个成熟的应用中必不可少的 , 人们不可能随时在服务器状观察服务器状态 , 所以分析机器的日志文件可以看到所有服务运行状态 , 其中产生的问题等 !!!

rsyslogd 介绍

增强版本的syslogd,它支持数据使用插件、直接调用模板、异步写数据库等相对高级的功能

使用前可能需要安装服务

yum install rsyslog -y

特点:

  1. 基于TCP网络协议传输日志信息
  2. 更安全的网络传输方式
  3. 有日志消息的及时分析框架
  4. 后台数据库
  5. 配置文件中可以写简单的逻辑判断
  6. 与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 等信息查询

日志文件格式

**包含如下四列 : **

  1. 产生时间
  2. 发生事件的服务器的主机名
  3. 产生事件的服务名或程序名
  4. 事件的具体信息

rsyslogd 配置文件

/etc/rsyslog.conf 这是个这个服务的配置文件

# 基本格式如下 :
authpriv.*                /var/log/secure
# 服务名称[连接符号]日志等级                  日志记录位置
# 认证相关服务.所有日志等级

只要我们对照这三个信息,就可以了解其日志运行方式如何

服务名称

服务名称 说明
auth –pam产生的日志
authpriv –ssh,ftp等登录信息的验证信息
cron –时间任务相关
kern –内核
lpr –打印
mail –邮件
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      疼痛等级信息,系统已经无法使用了

注意:日志等级越高记录的信息越少,优先级越高,日志的等级越低记录的信息越多,优先级越低

日志拆分

日志信息太多,所以我们需要这样做

  1. 切割:将日志分为一天一天的
  2. 轮替:删除旧的为新的腾空间

日志文件的命名规则

时间命名:

有"dateext"参数,会用日期来作为日志文件的后缀
例如"secure-20170824",日志文件名不会重叠,也不需要改名,只需要保存指定的日志,删除多余的即可

自动改名,加后缀:

没有"dateext"参数,那么就需要进行改名了

  1. 第一次进行轮替时,当前的"secure"日志会自动改名为"secure.1",然后新建"secure"日志。
  2. 第二次进行轮替时,"secure.1"会自动改名为"secure.2",当前的"secure"日志会自动改名为"secure.1",然后也会新建"secure"来保存新的日志
  3. 第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    强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中的所有的日志进行轮替

1 条评论

发表评论

*