首页 > 系统相关 >Linux 日志管理

Linux 日志管理

时间:2023-07-03 10:36:10浏览次数:46  
标签:log 管理 57 rsyslog Linux var 日志 el7

Linux 日志管理

原创 Lyle_Tu Linux分布式主任 2023-07-01 17:54 发表于福建 收录于合集 #linux36个 #服务器18个

介绍

    Linux 日志管理是指对 Linux 系统中产生的各种日志文件进行收集、分析、备份、轮转和删除等操作,以便监控系统的运行状况,诊断和解决问题,提高系统的安全性和性能。

    Linux 系统中有两种主要的日志服务,一种是传统的 rsyslog 服务,它是一个灵活的日志处理器,可以将日志信息发送到不同的目标,如文件、数据库、网络等。另一种是新添加的 systemd-journal 服务,它是一个二进制日志系统,可以存储更多的元数据,如时间戳、主机名、优先级等,并支持日志查询和过滤。

    Linux 系统中的日志文件通常存放在 /var/log 目录下,不同的程序和服务会生成不同的日志文件,记录了各种类型的信息,如内核消息、用户登录事件、程序错误等。常见的日志文件及其存放内容如下:

 

 

日志文件存放内容
/var/log/message 内核消息及各种应用程序的公共日志信息,是 Red Hat Linux 中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/dmesg 引导过程中的各种事件信息
/var/log/lastlog 每个用户最近一次登录信息
/var/log/wtmp 每个用户登录注销及系统启动和停机事件
/var/log/btmp 失败的、错误的登录尝试及验证事件

 

 

        Linux 系统中的日志文件会定期进行轮转,即将旧的日志文件重命名并压缩,创建新的日志文件。这样可以避免日志文件占用过多的磁盘空间,并保留一定时间段内的日志记录。日志轮转由 logrotate 命令实现,它根据 /etc/logrotate.conf 和 /etc/logrotate.d/ 目录下的配置文件来执行轮转操作。这些配置文件可以指定轮转周期、轮转次数、轮转方式、轮转后执行的命令等。

 

 

Linux 系统中有多种命令和工具可以用来查看和分析日志文件,例如:

 

  • tail 命令:用于查看日志文件的最后几行,常用 -f 选项实时监控日志变化。

  • grep 命令:用于在日志文件中搜索特定的关键字或模式。

  • who 命令:用于查看当前登录到系统的用户信息。

  • last 命令:用于查看成功登录到系统的用户记录。

  • lastlog 命令:用于查看系统中所有用户最近一次登录信息。

  • lastb 命令:用于查看用户错误的登录列表。

  • Logcheck 工具:用于分析系统日志并报告异常或重要事件。

  • Logcheck 工具:用于分析系统日志并报告异常或重要事件。

 

 

 

 

相关软件包和配置文件

 

图片

软件包

图片

[root@Demo01 ~]# rpm -qa | grep rsyslog

 

rsyslog-relp-8.24.0-57.el7_9.3.x86_64

rsyslog-libdbi-8.24.0-57.el7_9.3.x86_64

rsyslog-mmnormalize-8.24.0-57.el7_9.3.x86_64

rsyslog-mmjsonparse-8.24.0-57.el7_9.3.x86_64

rsyslog-crypto-8.24.0-57.el7_9.3.x86_64

rsyslog-gnutls-8.24.0-57.el7_9.3.x86_64

rsyslog-snmp-8.24.0-57.el7_9.3.x86_64

rsyslog-kafka-8.24.0-57.el7_9.3.x86_64

rsyslog-mysql-8.24.0-57.el7_9.3.x86_64

rsyslog-mmkubernetes-8.24.0-57.el7_9.3.x86_64

rsyslog-gssapi-8.24.0-57.el7_9.3.x86_64

rsyslog-mmaudit-8.24.0-57.el7_9.3.x86_64

rsyslog-mmsnmptrapd-8.24.0-57.el7_9.3.x86_64

rsyslog-8.24.0-57.el7_9.3.x86_64

rsyslog-pgsql-8.24.0-57.el7_9.3.x86_64

rsyslog-udpspoof-8.24.0-57.el7_9.3.x86_64

rsyslog-elasticsearch-8.24.0-57.el7_9.3.x86_64

rsyslog-doc-8.24.0-57.el7_9.3.noarch

 

图片

配置文件

图片

/etc/rsyslog.conf #主配置文件

 

/etc/rsyslog.d/*.conf #辅配置文件

 

/var/log/ #日志文件存放位置

 

 

/usr/sbin/rsyslogd #执行文件

 

/usr/lib64/rsyslog/ #模块路径

 

/usr/lib/systemd/system/rsyslog.service #服务单元

 


[root@Demo01 ~]# grep '####' /etc/rsyslog.conf 

#### MODULES ####定义模块

#### GLOBAL DIRECTIVES ####定义全局环境

#### RULES #### 定义规则

 

 

模块定义

module(load="imuxsock"    # 提供对本地系统日志的支持

       SysSock.Use="off") # 关闭通过本地日志接口的信息接收功能,日志信息接收通过下面的imjournal模块

module(load="imjournal"             # 提供对systemd日志的访问

       StateFile="imjournal.state") # 定义状态文件,rsyslog用于记录文件上传进度,避免日志内容混乱

 

 

全局环境设置

# 定义工作目录

global(workDirectory="/var/lib/rsyslog")

 

# 使用默认的时间戳格式

module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")

 

# 定义辅助配置文件位置

include(file="/etc/rsyslog.d/*.conf" mode="optional")

 

规则设置

信息来源.安全级别 处理方式

 

信息来源

  kern:内核相关的日志

  user:用户相关的日志

        mail:邮件相关的日志

        daemon:系统服务相关的日志

        lpr:打印相关的日志

        cron:计划任务相关的日志

        authpriv:认证相关的日志

        news:新闻相关的日志

        uucp:文件copy相关的日志

        local0-local7:自定义相关的日志信息

*: 所有

安全级别

       debug:  调试

info:   消息

notice: 注意

    warn,warning: 警告

err,error: 错误

crit: 严重级别

alert: 需要立即修改该的信息

emerg,panic: 内核崩溃,系统接近崩溃

*:所有日志级别

        none:没有任何级别,也就是不记录日志信息

 

表达形式

mail.err err+crit+alert+emerg

mail.=err err

mail.!err 除了err

 

处理方式

/PATH/FILENAME:将信息储存至 /PATH/FILENAME文件中。注意,如果要系统日志服务把信息储存到文件,该文件必须以

斜线(/) 开头的绝对路径命名之。

USERNAME:将信息送给已登录的用户。

@HOSTNAME:代表使用udp协议将信息转送到远端的日志服务器。

@@hostname:代表使用tcp协议将信息传送到远端的日志服务器

*:将信息传送给所有已登录的用户。

 


#### RULES ####

##########  日志设备.日志级别  ##################          #########  消息发送位置  ###############

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.

# Don't log private authentication messages!

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.

authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.

mail.*                                                  -/var/log/maillog

# Log cron stuff

cron.*                                                  /var/log/cron

# Everybody gets emergency messages

*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.

uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log

local7.*                                                /var/log/boot.log

local2.info           /tmp/test.log

 

图片

日志设备

图片

日志设备.级别说明
auth -pam(linux中的认证机制) 产生的日志
authpriv -ssh,ftp 等登录信息的验证信息
cron 时间任务相关
kern -内核相关
lpr -打印
mail -邮件
mark(syslog) -rsyslog服务内部的信息,时间标识
news -新闻组
user -用户程序产生的相关信息
uucp -unix to unix copy unix主机之间的相关通信
local 1~7 自定义日志设备文件

图片

日志级别

图片

  
级别 说明
NONE 什么都不记录
EMERG (紧急) 导致主机系统不可用的情况
ALERT(警告) 必须马上采取解决措施
CRIT (严重) 比较严重的情况
ERR 运行时的错误
WARNING (提醒) 可能影响系统功能的事件
NOTICE(注意) 不会影响系统功能,但是值得注意
INFO 一般信息
DEBUG 调试信息
自下而上,信息记录的越来越少  

 

 

图片

常用的日志文件

图片

/var/log/boot.log #系统启动时的日志。

 

/var/log/dnf.* #dnf软件包管理器相关日志

 

/var/log/firewalld #防火墙日志

 

/var/log/lastlog #所有用户最后一次登录信息,需要使用lastlog命令查看

 

/var/log/maillog #电子邮件系统相关日志

 

/var/log/messages #整体的系统日志,具体记录范围取决于服务的配置文件

 

/var/log/wtmp #记录当前登录和过去登录的用户信息,使用last命令查看

 

 

 

图片

日志格式

图片

[root@Demo01 ~]# tail -n 20 /var/log/messages 

Jul  1 05:05:41 LAMP dhclient[2115]: bound to 192.168.10.25 -- renewal in 736 seconds.

Jul  1 05:05:41 LAMP systemd: Starting Network Manager Script Dispatcher Service...

Jul  1 05:05:41 LAMP dbus[777]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'

Jul  1 05:05:41 LAMP systemd: Started Network Manager Script Dispatcher Service.

 

 

 

DATE  TIME  HOSTNAME  APP(NAME)[PID]: MESSAGES

 

每一个字段的意义如下说明:

DATE:信息发生的日期。

TIME:信息发生的时间。

HOSTNAME:信息发生的主机。

APP:产生信息的软件。

NAME:软件的名称,或是软件组件(Component)的名称。可以省略。

PID:进程标识符 (Process ID)。可以省略。

MESSAGES:信息的内容。 

 

 

 

 

Sep 15 09:03:59 ecs-t6-large-2-linux-20190824103606 systemd-logind: New session 314 of user root.

    时间            主机名                          子系统名            消息字段

 

 

 

 

 

 

 

收录于合集 #linux  36个 上一篇​什么是数据存储?下一篇Linux 容器是什么?Linux Container 简介 阅读 295   Linux分布式主任 58篇原创内容  

标签:log,管理,57,rsyslog,Linux,var,日志,el7
From: https://www.cnblogs.com/cherishthepresent/p/17522113.html

相关文章

  • 【深度】韦东山:一文看看尽linux对中断处理的前世今生
    交流群一:QQ群:869222007(鸿蒙开发/Linux/嵌入式/驱动/资料下载)交流群二:QQ群:536785813(单片机-嵌入式)公 众 号:百问科技版本日期作者说明V12020韦东山技术文档前言:本文,4200字,研究代码花了一天,写出来花了一天;录视频估计又得花半天;真怀念以前简单粗暴的生活啊:拿起话筒就录视频,先画好......
  • Linux PWM 开发指南
    LinuxPWM开发指南1概述1.1编写目的介绍PWM模块的详细设计方便相关人员进行PWM模块的代码设计开发。1.2使用范围适用于Linux-3.10,linux-4.4和Linux-4.9内核,Linux-5.4内核。1.3相关人员PWM驱动的开发人员/维护人员等2术语及概念2.1术语定义及缩略语术语解释说明Sun......
  • Linux NOR 开发指南
    LinuxNOR开发指南1简介编写目的此文档描述SunxiNOR模块的使用方法,为相关人员调试提供指导适用范围boot0:适用于brandy-2.0u-boot:适用于u-boot-2018kernel:适用于linux-4.9/linux-5.4内核BSP的开发人员、测试人员2模块介绍2.1模块功能介绍Linux中SPINOR体系结构......
  • Tina_Linux_系统裁剪_开发指南
    文章目录Tina_Linux_系统裁剪_开发指南1概述2Tina系统裁剪简介2.1boot0裁剪2.2uboot裁剪2.3内核裁剪2.3.1删除不使用的功能2.3.2删除不使用的驱动2.3.3修改内核源代码2.3.3.1size工具.2.3.3.2ksize.py脚本2.3.3.3nm命令2.3.3.4kernel压缩方式.2.4文件系统裁剪.2.4.1......
  • 全志Tina Linux SPINAND UBI 离线烧录 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-
    1概述编写目的:介绍SunxiSPINand烧写时的数据布局2名词解释词义UBIunsortedblockimagePEBphysicaleraseblockLEBlogicaleraseblockPEB和logicalblock关系1PEB=1logicalblock1logicalblock=2physicalblocks3总体数据布局ubi方案FLASH上的数据布局sys_pa......
  • 全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等
    文章目录1概述2启动速度优化简介2.1启动流程2.2测量方法2.2.1printktime2.2.2initcall_debug2.2.3bootgraph.2.2.4bootchart2.2.5gpio+示波器.2.2.6grabserial.2.3优化方法2.3.1boot0启动优化2.3.1.1非安全启动.2.3.1.2安全启动2.3.2uboot启动优化2.3.2.1完全去......
  • PostgreSQL 是一种功能丰富的关系型数据库管理系统(DBMS),具有以下特色
    PostgreSQL是一种功能丰富的关系型数据库管理系统(DBMS),具有以下特色:开源和免费:PostgreSQL是一款开源软件,它的源代码可以免费获取和修改。这意味着您可以自由地使用、分发和修改PostgreSQL,而无需支付额外的费用。可靠性和稳定性:PostgreSQL以其出色的可靠性和稳定性而闻名。它......
  • 关于Linux系统下-zabbix-agent-的安装
    本文主要讲解关于Zabbix-Agent在Linux系统下的安装可以针对于如下一些系统AmazonLinux1/2 RedHatEnterpriseLinuxServerrelease6.XRedHatEnterpriseLinuxServerrelease7.X1、到Zabbix官方,下载并安装软件包(AmazonLinux1使用RHEL6的安装包,AmazonLinux2使......
  • 在 Linux 上使用的五个超级神奇的 Shell 别名
    导读在这篇文章中,我想告诉你一些作为工程师我每天都在使用的缩写,这些缩写是绝对的生命救星如果你还没有充分利用Shell缩写,那么你正在浪费宝贵的时间。一遍又一遍地重复输入相同的内容是无聊、单调而且效率低下的。为什么要花时间记住冗长的命令,当你可以简化它们呢?缩写是......
  • MySql管理
    系统数据库 常用工具 mysqlmysql-uroot-p123456itcast-e"select*fromstudent"---e前要加具体数据库mysqladmin mysqlbinlog mysqlshow mysqldump--数据备份,在windows命令行下执行,不需要在mysql命令行下执行----single-transacti......