linux日志文件

        前言:

        无论管理什么系统,对日志文件的监控、调用、管理都是其中重要的一部分。服务器问题的解决都是从查看系统(错误)日志开始的

一、作用:

        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 没有 不做记录

六、日志文件格式

        基本日志格式主要包含四种内容

  1. 事件发生时间
  2. 发生事件的主机名
  3. 发生事件的服务或程序(或内核),包含进程PID
  4. 事件内容

七、操作 (配置日志文件+查看日志并分析) 围绕rsyslog服务展开。

        由于除了部分第三方程序采用自己的服务记录日志,基本上大部分系统日志都是交由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,然后便输出至日志文件中。

linux日志文件_第1张图片

 实现高并发模块: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

你可能感兴趣的:(linux学习笔记,linux,运维,服务器)