小白畅通Linux之旅-----Linux日志管理

文章目录

一、Linux日志系统概述

1、日志的重要性

  • 系统状态监控
  • 故障排查定位
  • 安全审计分析
  • 性能优化依据
  • 合规性要求满足

2、日志分类

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

二、核心日志管理工具

1、syslog(传统系统日志)

(1)配置文件

bash 复制代码
/etc/syslog.conf

(2)配置语法

bash 复制代码
# 格式:设备.优先级 动作
auth.*       /var/log/auth.log
*.emerg     *
mail.err    /var/log/mail.err

(3)优先级说明

优先级 数值 说明
emerg 0 系统不可用
alert 1 需要立即采取行动
crit 2 严重情况
err 3 错误条件
warn 4 警告条件
notice 5 正常但重要的事件
info 6 信息性消息
debug 7 调试级信息

(4)应用场景

  • 传统Linux系统日志管理
  • 兼容性要求高的环境
  • 简单日志收集需求

2、rsyslog(增强型系统日志)

(1)核心特性

  • 支持TCP/UDP传输
  • 日志内容过滤
  • 模板化输出
  • 高性能队列处理
  • 支持MySQL/PostgreSQL存储

(2)配置文件结构

/etc/rsyslog.con

bash 复制代码
# 模块加载
$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.100:514

(3)高级功能配置示例

  1. 日志存储到MySQL:
bash 复制代码
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,password
  1. 日志文件切割:
bash 复制代码
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

(4)应用场景

  • 企业级日志集中管理
  • 需要结构化存储的环境
  • 高并发日志处理场景

3、journald(systemd日志系统)

(1)核心特性

  • 二进制日志存储
  • 结构化日志记录
  • 实时日志查询
  • 与systemd深度集成

(2)配置文件

bash 复制代码
/etc/systemd/journald.conf

(3)常用配置参数

bash 复制代码
[Journal]
Storage=persistent          # 存储方式(persistent/volatile)
Compress=yes                # 启用压缩
SystemMaxUse=1G             # 最大磁盘使用量
SystemMaxFileSize=100M      # 单个文件最大尺寸
MaxRetentionSec=1month      # 日志保留时间

(4)常用命令

bash 复制代码
# 实时日志监控
journalctl -f

# 按服务查询
journalctl -u nginx.service

# 结构化显示
journalctl -o json-pretty

# 时间范围查询
journalctl --since "2023-07-01" --until "2023-07-10"

(5)应用场景

  • 使用systemd的系统
  • 需要结构化日志分析
  • 实时日志监控需求

4、logrotate(日志轮转)

(1)配置文件

bash 复制代码
/etc/logrotate.conf

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

(2)典型配置示例

bash 复制代码
/var/log/firewalld {
    weekly
    missingok
    rotate 4
    copytruncate
    minsize 1M
}

(3)核心参数说明

作用
daily/weekly 轮转周期
rotate N 保留历史文件数量
compress 启用gzip压缩
delaycompress 延迟压缩前一个日志文件
size 100M 按大小触发轮转
missingok 文件不存在时不报错
create 0640 user group 新日志文件权限设置

(4)手动执行

bash 复制代码
logrotate -vf /etc/logrotate.d/bgubx

(5)应用场景

  • 防止日志文件过大
  • 自动化日志归档
  • 符合存储策略要求
相关推荐
日取其半万世不竭6 小时前
用 Portainer 可视化管理 Docker:容器再多也不用背命令了
运维·docker·容器
2023自学中6 小时前
Linux 图形系统
linux
kirs_ur7 小时前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化
mounter6259 小时前
高性能网络技术演进与创新探索:RDMA、eBPF/XDP 深度解析及 LSF/MM/BPF 2023 专题演讲
linux·ebpf·linux kernel·kernel·rdma·xdp
动恰客流统计9 小时前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能
名字还没想好☜9 小时前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
ziguo112212 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
无垠的广袤12 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
会编程的土豆12 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
砍材农夫13 小时前
运维|devops|jenkins构建应用发布
运维·jenkins·devops