前言:
无论管理什么系统,对日志文件的监控、调用、管理都是其中重要的一部分。服务器问题的解决都是从查看系统(错误)日志开始的
linux运行的程序通常把系统的消息和错误写入对应的日志文件,如Linux内核消息,用户登录事件,程序错误等。日志文件对于诊断解决问题有很大帮助。
1、内核及系统日志:这种日志数据由系统服务rsyslog统一管理。根据其主配置文件
/etc/rsyslog.conf中的设置决定将内核消息和各种系统程序消息记录到什么位置。
2、用户日志:记录linux系统用户登录及退出系统的相关信息。包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
3、程序旧志:有些应用程序选择独立管理一份日志文件,而不是交给系统服务rsyslog管理,用于记录本程序运行过程中的各种事件信息。
Linux系统本身和大部分服务器程序的日志文件默认存放在/var/log/下。
部分程序共用一个日志文件,部分程序使用单个日志文件。大型服务器程序日志文件多个。
/var/log/message 内核消息及各种应用程序的公共日志信息
,包括启动、I/O错误、 网络错误、
/var/log/cron Crond周期性计划任务产生的时间信息
/var/log/dmesg 弓|导过程中的各种时间信息
/var/log/ maillog 进入或发出系统的电子邮件活动
/var/log/lastlog 每个用户最近的登录事件
/var/log/secure 用户认证相关的安全事件信息
/var/log/wtmp 每个用户登录注销及系统启动和停机事件
/var/log/btmp 失败的、错误的登录尝试及验证事件
0 EMERG(紧急) 导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取解决措施
2 CRIT 严重 比较严重的情况
3 ERR 错误 运行出现错误
4 WARNING 提醒 提醒用户的重要事件
5 NOTICE 注意 不会儿影响系统,提醒用户
6 INFO 信息 一般信息
7 DEBUG 调式 程序调式
8 None 没有 不做记录
基本日志格式主要包含四种内容
由于除了部分第三方程序采用自己的服务记录日志,基本上大部分系统日志都是交由rsyslog服务。rsyslog服务接受消息并将消息存到目标日志文件。rsyslog服务的守护进程是rsyslogd。守护进程看文章:【Linux】守护进程( Daemon)的定义,作用,创建流程_JMW1407的博客-CSDN博客
systemctl命令查看并启动rsyslog系统服务:
#查看服务是否启动
systemctl list-units | grep rsyslog
#若没有启动,则启动服务
systemctl start rsyslog.service
rsyslog 服务的配置文件有两个,
/etc/rsyslog.conf
/etc/rsyslog.d/50-default.conf
。第一个主要是配置的环境,也就是 rsyslog 加载什么模块,文件的所属者等;而第二个主要是配置的 Filter Conditions
rsyslog服务下数据流走向:
首先通过 Input module 来收集消息,然后将得到的消息传给 Parser module,通过分析模块的层层处理,将真正需要的消息传给 Output module,然后便输出至日志文件中。
实现高并发模块:Queue队列
Parser模块 实现 分析处理
logrotate 程序是一个日志文件管理工具
/etc/logrotate
中找到其配置文件
# see "man logrotate" for details //可以查看帮助文档
# rotate log files weekly
weekly //设置每周转储一次(daily、weekly、monthly当然可以使用这些参数每天、星期,月 )
# keep 4 weeks worth of backlogs
rotate 4 //最多转储4次
# create new (empty) log files after rotating old ones
create //当转储后文件不存在时创建它
# uncomment this if you want your log files compressed
compress //通过gzip压缩方式转储(nocompress可以不压缩)
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d //其他日志文件的转储方式配置文件,包含在该目录下
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { //设置/var/log/wtmp日志文件的转储参数
monthly //每月转储
create 0664 root utmp //转储后文件不存在时创建它,文件所有者为root,所属组为utmp,对应的权限为0664
rotate 1 //最多转储一次
}
ddd