小白畅通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)应用场景

  • 防止日志文件过大
  • 自动化日志归档
  • 符合存储策略要求
相关推荐
自动驾驶小卡1 小时前
ubuntu 常用操作指令(与域控制器交互相关)
linux·ubuntu·操作指令
意如流水任东西2 小时前
Linux开发工具(apt,vim,gcc)
linux·服务器
XMAIPC_Robot2 小时前
基于RK3568的多网多串电力能源1U机箱解决方案,支持B码,4G等
linux·fpga开发·能源·边缘计算
程序猿小D2 小时前
第14节 Node.js 全局对象
linux·前端·npm·node.js·编辑器·vim
文牧之2 小时前
Oracle 的 SEC_CASE_SENSITIVE_LOGON 参数
运维·数据库·oracle
Antonio9152 小时前
【Linux】 Linux 进程控制
linux·运维·服务器
thinkMoreAndDoMore3 小时前
linux驱动开发(1)-内核模块
linux·运维·驱动开发
darin_ฅ( ̳• ◡ • ̳)ฅ13 小时前
Linux环境-通过命令查看zookeeper注册的服务
linux·zookeeper
不想头秃a3 小时前
JavaEE初阶-网络编程
java·运维·服务器·网络