当前位置: 首页 > news >正文

Linux日志管理

目录

一、Linux日志系统概述

1.1 日志的重要性

1.2 日志分类

二、核心日志管理工具

2.1 syslog(传统系统日志)

2.1.1 配置文件

2.1.2 配置语法

2.1.3 优先级说明

2.1.4 应用场景

2.2 rsyslog(增强型系统日志)

2.2.1 核心特性

2.2.2 配置文件结构

2.2.3 高级功能配置示例

2.2.4 应用场景

2.3 journald(systemd日志系统)

2.3.1 核心特性

2.3.2 配置文件

2.3.3 常用配置参数

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

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 集中式日志服务器搭建(rsyslog)

4.2 日志分析实战

五、故障排查指南

5.1 常见问题处理

六、最佳实践建议

七、总结


一、Linux日志系统概述

1.1 日志的重要性

  • 系统状态监控

  • 故障排查定位

  • 安全审计分析

  • 性能优化依据

  • 合规性要求满足

1.2 日志分类

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

二、核心日志管理工具

2.1 syslog(传统系统日志)

2.1.1 配置文件

/etc/syslog.conf

2.1.2 配置语法

# 格式:设备.优先级 动作


auth.*       /var/log/auth.log
*.emerg     *
mail.err    /var/log/mail.err

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

  • 兼容性要求高的环境

  • 简单日志收集需求

2.2 rsyslog(增强型系统日志)

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

  • 日志内容过滤

  • 模板化输出

  • 高性能队列处理

  • 支持MySQL/PostgreSQL存储

2.2.2 配置文件结构

/etc/rsyslog.conf

# 模块加载


$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

2.2.3 高级功能配置示例

日志存储到MySQL:

$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,password

日志文件切割:

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

2.2.4 应用场景
  • 企业级日志集中管理

  • 需要结构化存储的环境

  • 高并发日志处理场景


2.3 journald(systemd日志系统)

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

  • 结构化日志记录

  • 实时日志查询

  • 与systemd深度集成

2.3.2 配置文件

/etc/systemd/journald.conf

2.3.3 常用配置参数

Storage=persistent          # 存储方式(persistent/volatile)
Compress=yes                # 启用压缩
SystemMaxUse=1G             # 最大磁盘使用量
SystemMaxFileSize=100M      # 单个文件最大尺寸
MaxRetentionSec=1month      # 日志保留时间
2.3.4 常用命令

# 实时日志监控
journalctl -f

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

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

# 时间范围查询
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/

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 手动执行

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

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 集中式日志服务器搭建(rsyslog)

  1. 服务端配置:

1、启用模块
$ModLoad imtcp
$InputTCPServerRun 514

2、定义模板
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"

3、应用规则
*.* ?RemoteLogs

客户端配置:

*.* @@192.168.1.100:514

4.2 日志分析实战

1、 查找错误日志
grep -i "error" /var/log/messages

2、统计HTTP状态码
awk '{print $9}' access.log | sort | uniq -c

3、实时监控登录情况
tail -f /var/log/secure | grep "Failed password"

五、故障排查指南

5.1 常见问题处理

  1. 日志不写入:

  • 检查服务状态:systemctl status rsyslog

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

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

  1. 配置验证:

rsyslogd -N1  # 检查配置文件语法
journalctl --verify  # 验证日志完整性

存储异常处理:

# 查看磁盘空间
df -h /var

# 查找大文件
du -sh /var/log/*

六、最佳实践建议

  1. 日志分级存储策略

  2. 定期备份重要日志

  3. 实施日志监控告警

  4. 敏感信息过滤处理

  5. 建立日志保留策略

  6. 定期演练日志恢复

附:常用日志分析命令速查表

1、按时间筛选
sed -n '/Jul 15 10:00:00/,/Jul 15 11:00:00/p' messages

2、TOP访问IP统计
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -20

3、错误率统计
count_total=$(wc -l < access.log)
count_error=$(grep -c ' 5[0-9][0-9] ' access.log)
echo "Error rate: $((count_error*100/count_total))%"

实践内容:

  1. 配置rsyslog实现日志分级存储

  2. 使用journalctl进行故障诊断

  3. 设计并实施日志轮转策略

  4. 搭建简易ELK日志分析平台

  5. 编写自动化日志分析脚本

七、总结

内容较多,多是背记的,目前理论知识还无法学全,可以先了解在进步学习。

http://www.xdnf.cn/news/712621.html

相关文章:

  • 【LangChain】
  • CAN通信波特率异常的危害
  • 用Python绘制动态爱心:代码解析与浪漫编程实践
  • 进行性核上性麻痹健康护理全指南:从症状管理到生活照护
  • 杏仁海棠花饼的学习日记第十四天CSS
  • 亡羊补牢与持续改进 - SRE 的安全日志、审计与事件响应
  • 树莓派超全系列教程文档--(52)如何启用VNC功能
  • electron安装报错处理
  • K M G T P E Z
  • ChatGPT Plus/Pro 订阅教程(支持支付宝)
  • opengauss 数据库安装主备 非om方式
  • 11 java语言执行浅析1
  • spring boot 拦截器HandlerInterceptor 不生效的原因排查
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(二十一)
  • Shortest path 代码
  • RV1126-OPENCV 交叉编译
  • vue发版html 生成打包到docker镜像进行发版
  • STM32F103_Bootloader程序开发05 - Keil修改生成文件的路径与文件名,自动生成bin格式文件
  • Unity3D仿星露谷物语开发55之保存游戏到文件
  • ubuntu20.04编译 pjproject-2.7.1
  • 删除并重新排队
  • Redis 主从复制中的全量拷贝机制详解
  • IBM DB2数据库管理工具IBM Data Studio
  • Ubuntu 安装 Miniconda 及配置国内镜像源完整指南
  • 源的企业级网络安全检测工具Prism X(棱镜X)
  • Linux:shell脚本常用命令
  • [智能算法]蚁群算法原理与TSP问题示例
  • 高空视角之大美遥感-基于Leaflet和天地图的壮美遥感影像实践
  • ASP.NET Core OData 实践——Lesson7使用Reference增删改查一对多Navigation Property(C#)
  • AU6815集成音频DSP的2x25W数字型ClaSS D音频功率放大器(替代TAS5805)