手把手教你Linux日志的管理!!

目录

一、Linux日志系统概述

1.1 日志的重要性

1.2 日志分类~~

二、核心日志管理工具

2.1 syslog(传统系统日志)

2.1.1 配置文件

2.1.2 优先级说明

2.1.3 应用场景

2.2 rsyslog(增强型系统日志)

2.2.1 核心特性

2.2.2 配置文件结构

2.2.3 应用场景

2.3 journald(systemd日志系统)

2.3.1 核心特性

2.3.2 配置文件

2.3.3 常用配置参数

2.3.4 常用命令

2.3.5 应用场景

2.4 logrotate(日志轮转)

2.4.1 配置文件

2.4.2 典型配置示例

2.4.3 核心参数说明

2.4.4 手动执行

2.4.5 应用场景

三、高级日志管理方案

3.1 ELK Stack(分布式日志)

3.1.1 典型架构

3.1.2 Filebeat配置示例

3.2 auditd(安全审计)

3.2.1 核心配置文件

3.2.2 审计规则配置

3.2.3 审计日志查询

四、故障排查指南

4.1 常见问题处理


一、Linux日志系统概述

1.1 日志的重要性

  • 系统状态监控

  • 故障排查定位

  • 安全审计分析

  • 性能优化依据

  • 合规性要求满足

1.2 日志分类~~

[root@localhost log]# ls
anaconda           dnf.log      qemu-ga               vmware-network.2.log
audit              dnf.rpm.log  README                vmware-network.3.log
boot.log           firewalld    samba                 vmware-network.log
boot.log-20250528  gdm          secure                vmware-vgauthsvc.log.0
boot.log-20250529  hawkey.log   speech-dispatcher     vmware-vmsvc-root.log
btmp               kdump.log    spooler               vmware-vmtoolsd-root1.log
chrony             lastlog      sssd                  vmware-vmtoolsd-root.log
cron               maillog      tallylog              vmware-vmusr-root1.log
cups               messages     tuned                 vmware-vmusr-root.log
dnf.librepo.log    private      vmware-network.1.log  wtmp

日志类型存储位置典型内容
系统日志/var/log/messages内核、系统服务通用日志
认证日志/var/log/secure用户登录、sudo操作记录
启动日志/var/log/boot.log系统启动过程记录
内核日志/var/log/kern.log内核相关事件
计划任务日志/var/log/croncron任务执行记录
邮件日志/var/log/maillog邮件系统相关操作
应用程序日志/var/log/{application}/各应用程序专用日志

二、核心日志管理工具

2.1 syslog(传统系统日志)

2.1.1 配置文件

/etc/syslog.conf

2.1.2 优先级说明
优先级数值说明
emerg0系统不可用
alert1需要立即采取行动
crit2严重情况
err3错误条件
warn4警告条件
notice5正常但重要的事件
info6信息性消息
debug7调试级信息
2.1.3 应用场景
  • 传统Linux系统日志管理

  • 兼容性要求高的环境

  • 简单日志收集需求


2.2 rsyslog(增强型系统日志)

2.2.1 核心特性
  • 支持TCP/UDP传输

  • 日志内容过滤

  • 模板化输出

  • 高性能队列处理

  • 支持MySQL/PostgreSQL存储

2.2.2 配置文件结构

/etc/rsyslog.conf

[root@localhost ~]# cd /etc/rsyslog.conf         
[root@localhost etc]# cat rsyslog.conf
# rsyslog configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# or latest version online at http://www.rsyslog.com/doc/rsyslog_conf.html 
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
# 模块加载
$ModLoad imuxsock # 本地系统日志
$ModLoad imklog   # 内核日志
​
# 模板定义
$template MyTemplate,"%timestamp% %hostname% %syslogtag% %msg%\n"
​
# 规则配置
'*.info';mail.none;authpriv.none  /var/log/messages
'authpriv.* '                     /var/log/secure
​
# 远程日志配置
*.* @192.168.1.1:1
2.2.3 应用场景
  • 企业级日志集中管理

  • 需要结构化存储的环境

  • 高并发日志处理场景


2.3 journald(systemd日志系统)

2.3.1 核心特性
  • 二进制日志存储

  • 结构化日志记录

  • 实时日志查询

  • 与systemd深度集成

2.3.2 配置文件

/etc/systemd/journald.conf

[root@localhost ~]# cd /etc/sys
sysconfig/ sysctl.d/  systemd/   
[root@localhost ~]# cd /etc/systemd/
[root@localhost systemd]# ls
coredump.conf  logind.conf  sleep.conf  system.conf  user.conf
journald.conf  pstore.conf  system      user
[root@localhost systemd]# cat journald.conf 
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
#SystemMaxFileSize=100M
SystemMaxUse=1000M
#MaxFileSec=1month

2.3.3 常用配置参数
[Journal]
Storage=persistent          # 存储方式(persistent/volatile)
Compress=yes                # 启用压缩
SystemMaxUse=1G             # 最大磁盘使用量
SystemMaxFileSize=100M      # 单个文件最大尺寸
MaxRetentionSec=1month      # 日志保留时间
2.3.4 常用命令
# 实时日志监控
journalctl -f
[root@localhost systemd]# journalctl -f
5月 29 19:31:35 localhost.localdomain systemd[1]: packagekit.service: Consumed 1.438s CPU time.
5月 29 19:45:45 localhost.localdomain systemd[1]: Starting dnf makecache...
5月 29 19:45:46 localhost.localdomain dnf[51503]: 元数据缓存近期已刷新。
5月 29 19:45:46 localhost.localdomain systemd[1]: dnf-makecache.service: Deactivated successfully.
# 按服务查询
journalctl -u init.scope 
[root@localhost ~]# journalctl -u init.scope 
5月 29 08:49:14 localhost systemd[1]: Starting Create Volatile Files and Directories...
5月 29 08:49:14 localhost systemd[1]: Finished Create Volatile Files and Directories.
5月 29 08:49:15 localhost systemd[1]: Finished Setup Virtual Console.
# 结构化显示
journalctl -o cat
[root@localhost ~]# journalctl -o cat
Linux version 5.14.0-427.13.1.el9_4.x86_64 (mockbuild@iad1-prod-build001.bld.equ.rockylinux.>
The list of certified hardware and cloud instances for Enterprise Linux 9 can be viewed at t>
Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.14.0-427.13.1.el9_4.x86_64 root=/dev/mapper/>
x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
# 时间范围查询
journalctl --since "2023-07-01" --until "2023-07-10"
2.3.5 应用场景
  • 使用systemd的系统

  • 需要结构化日志分析

  • 实时日志监控需求


2.4 logrotate(日志轮转)

2.4.1 配置文件 

/etc/logrotate.conf 应用特定配置:/etc/logrotate.d/

[root@localhost etc]# cat logrotate.conf 
# see "man logrotate" for details
​
# global options do not affect preceding include directives
​
# rotate log files weekly
weekly
[root@localhost ~]# cd /etc/logrotate.d/
[root@localhost logrotate.d]# ls
bootlog  chrony  firewalld    kvm_stat  rsyslog  sssd            wtmp
btmp     dnf     iscsiuiolog  psacct    samba    wpa_supplicant

2.4.2 典型配置示例
/var/log/nginx/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        systemctl reload nginx
    endscript
}
2.4.3 核心参数说明
参数作用
daily/weekly轮转周期
rotate N保留历史文件数量
compress启用gzip压缩
delaycompress延迟压缩前一个日志文件
size 100M按大小触发轮转
missingok文件不存在时不报错
create 0640 user group新日志文件权限设置
2.4.4 手动执行
[root@localhost ~]# logrotate -vf /etc/logrotate.d/nginx
2.4.5 应用场景
  • 防止日志文件过大

  • 自动化日志归档

  • 符合存储策略要求


三、高级日志管理方案

3.1 ELK Stack(分布式日志)

组件构成:

  • Elasticsearch:日志存储与检索

  • Logstash:日志收集处理

  • Kibana:数据可视化

3.1.1 典型架构
  1. Filebeat采集日志

  2. Logstash过滤处理

  3. Elasticsearch存储

  4. Kibana展示分析

3.1.2 Filebeat配置示例
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/*.log
​
output.logstash:
  hosts: ["logstash:5044"]

3.2 auditd(安全审计)

3.2.1 核心配置文件

/etc/audit/auditd.conf

[root@localhost ~]# cd /etc/audit/
[root@localhost audit]# ls
auditd.conf  audit.rules  audit-stop.rules  plugins.d  rules.d

3.2.2 审计规则配置
# 监控文件访问
-a exit,always -F path=/etc/passwd -F perm=wa
​
# 监控用户登录
-a exit,always -F arch=b64 -S execve -k user_exec
3.2.3 审计日志查询
ausearch -k user_exec -i
aureport -au

四、故障排查指南

4.1 常见问题处理

  1. 日志不写入:

  • 检查服务状态:systemctl status rsyslog

    [root@localhost ~]# systemctl status rsyslog
    ● rsyslog.service - System Logging Service
         Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled)
         Active: active (running) since Thu 2025-05-29 08:50:08 CST; 11h ago
           Docs: man:rsyslogd(8)

  • 验证文件权限:ls -l /var/log/messages

    [root@localhost ~]# ls -l /var/log/messages 
    -rw-------. 1 root root 1200887  5月 29 20:19 /var/log/messages

  • 测试日志生成:logger "Test Message"

  1. 配置验证:

rsyslogd -N1  # 检查配置文件语法
journalctl --verify  # 验证日志完整性
  1. 存储异常处理:

# 查看磁盘空间
df -h /var
​
# 查找大文件
du -sh /var/log/*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值