Linux日志管理

article/2025/8/29 17:34:47

目录

一、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.hkcw.cn/article/JQYWlJJIMQ.shtml

相关文章

Mac系统下,利用wget批量下载ICESat-2测高内陆水位高数据ALT13

首先在NASA地球数据网站中下载测高的数据下载链接文件&#xff1a; Earthdata Search 这是一个txt文件&#xff0c;提供了每一个文件的下载链接&#xff1a; 为了批量下载这些文件&#xff0c;我在mac系统中使用wget工具。 安装wget&#xff08;如果未安装&#xff09;&…

传统呼叫中心系统升级的必要性

据了解&#xff0c;一些老企业或是政务行业&#xff0c;服务型的业务场景还在使用十几年前的呼叫中心系统&#xff0c;经常会出现一些问题&#xff0c;这种情况下是否需要升级到新一代呼叫中心系统呢&#xff1f; 传统的呼叫中心系统采用程控电话交换机&#xff0c;带有基础的I…

大话软工笔记—知识体系分解与归集

1. 知识体系分解 软件工程知识体系有两个分解方向&#xff0c;横向是方向工程分解&#xff0c;纵向是工作分解。 1.1 工程分解 在设计工程部分&#xff0c;工程分解有概要设计、详细设计、应用设计三个阶段。 概要设计 基于需求分析的成果&#xff0c;对未来业务的整体进行…

MySQL的基本架构

1. MySQL基本架构 1.1. MySQL架构 MySQL 可以分为 Server 层和存储引擎层两部分。 1. Server 层&#xff08;上层&#xff09; 作用&#xff1a;处理所有的通用功能&#xff0c;与存储引擎无关。 包含模块&#xff1a; 连接器&#xff08;Connection&#xff09;&#xff…

DeepSeek R1-0528 新开源推理模型(免费且快速)

DeepSeek推出了新模型,但这不是R2! R1-0528是DeepSeek的最新模型,在发布仅数小时后就在开源社区获得了巨大关注。 这个悄然发布的模型DeepSeek R1-0528,已经开始与OpenAI的o3一较高下。 让我来详细介绍这次更新的新内容。 DeepSeek R1-0528 发布 DeepSeek在这次发布中采…

杏仁海棠花饼的学习日记第十四天CSS

一&#xff0c;前言 第二天&#xff0c;今天看CSS。 二&#xff0c;CSS简介及导入方式 CSS简介 CSS&#xff08;层叠样式表&#xff0c;Cascading Style Sheets&#xff09;是一种用于描述 HTML 或 XML&#xff08;包括 SVG、XHTML 等&#xff09;文档呈现效果的样式语言。…

尚硅谷redis7 74-85 redis集群分片之集群是什么

74 redis集群分片之集群是什么 如果主机宕机&#xff0c;那么写操作就被暂时中断&#xff0c;后面就要由哨兵进行投票和选举。那么一瞬间若有大量的数据修改&#xff0c;由于写操作中断就会导致数据流失。 由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行…

【Linux笔记】——进程间关系与守护进程

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;linux &#x1f339;往期回顾&#x1f339;&#xff1a; 【计算机网络】基于TCP进行socket编程——实现客户端到服务端远程命令行操作 &#x1f516;流水不争&#xf…

OSI 七大层详解

一、应用层 人与电脑相互沟通的桥梁&#xff0c;该层协议定义了应用进程之间的交互规则&#xff0c;通过不同的应用层协议为不同的网络应用提供服务。 二、表示层 定义数据格式&#xff08;比如.pdf .txt&#xff09;、加密解密、压缩解压缩 三、会话层 建立、管理和终止链…

Vue的生命周期

一、生命周期是什么 生命周期&#xff08;Life Cycle&#xff09;的概念应用很广泛&#xff0c;特别是在政治、经济、环境、技术、社会等诸多领域经常出现&#xff0c;其基本涵义可以通俗地理解为“从摇篮到坟墓”&#xff08;Cradle-to-Grave&#xff09;的整个过程在Vue中实…

如何用Go创建一个 deployment 到容器拉起来的全流程

整体流程概述&#xff1a; 认证与配置&#xff1a; 连接到Kubernetes集群。创建Deployment对象&#xff1a; 构建一个appsv1.Deployment结构体&#xff0c;定义Pod的模板、副本数量、选择器等。发送创建请求&#xff1a; 使用Kubernetes Go客户端库将Deployment对象发送到API服…

echarts主题切换实现

文章目录 一、实现方式1.实现思路2.指定主题3.设置图表背景透明 二、具体实现1.监听与销毁2修改主题色细节 参考链接 一、实现方式 场景: 首先是我的项目有不同主题色&#xff0c;切换主题时候想要将echarts的图表主题色也一并更改&#xff0c;暂时只设置’light’和’dark’…

如何在 Ubuntu 24.04 服务器上安装 Apache Solr

Apache Solr 是一个免费、开源的搜索平台&#xff0c;广泛应用于实时索引。其强大的可扩展性和容错能力使其在高流量互联网场景下表现优异。 Solr 基于 Java 开发&#xff0c;提供了分布式索引、复制、负载均衡及自动故障转移和恢复等功能。 本教程将指导您如何在 Ubuntu 24.…

从零开始的云计算生活——第十四天,困难重重,安全管理。

一故事背景 在前面的基本无操作内容后&#xff0c;来到了大头内容&#xff0c;安全管理&#xff01;其中的防火墙相关的内容更是重中之重&#xff0c;要好好掌握&#xff0c;熟练运用。 二SELinux安全上下文 1SELinux 简介 a. SELinux&#xff08;Security-Enhanced Linux&…

UDP编程

udp是无连接的&#xff0c;没有listen 与 accept。 bind 服务端一定需要bind&#xff0c;告知别人自己的ip和port。 客户端可以不bind&#xff0c;在发送数据时候可以随机分配&#xff0c;客户端推荐bind&#xff08;与tcp不同&#xff0c;udp本身无连接&#xff09;。 注意&am…

【计网】分片

MF DF MAC帧 MTU 首部数据载荷 片偏移是整数

记录一个梦,借助大语言模型图片生成

梦见家门口有一条大河&#xff0c;但大河和其它景物都是灰暗没有鲜艳色彩很普通的梦中场景。大河似乎是长江的支流&#xff0c;但也可能有一个响亮的名字似乎是金沙江。 突然看到一条金红色的龙在快速游动&#xff0c;不敢相信自己的眼睛&#xff0c;因为一直不相信有这种生物…

PostgreSQL查询一个表的数据

要从一个表中检索数据就是按要求查询表的信息&#xff0c;。SQL的SELECT语句可分为&#xff1a; 1.选择列表&#xff08;选择查询返回的列&#xff09; 2.表列表操作&#xff08;从中查询出的数据&#xff0c;进一步进行加减乘除-*/、筛选等操作&#xff09; 3.可选的条件 whe…

聊聊后端面试中的MySQL高频考题

如大家所了解的&#xff0c;SQL&#xff08; Structured Query Language &#xff09;是一门在开发者中使用覆盖率超50%的数据库结构化查询语言。 不可否认&#xff0c;无论是常年与数据打交道的数据分析师和数据科学家&#xff0c;经常需要管理和维护数据库的数据库管理员&am…

R3GAN利用配置好的Pytorch训练自己的数据集

简介 简介:这篇论文挑战了"GANs难以训练"的广泛观点,通过提出一个更稳定的损失函数和现代化的网络架构,构建了一个简洁而高效的GAN基线模型R3GAN。作者证明了通过合适的理论基础和架构设计,GANs可以稳定训练并达到优异性能。 论文题目:The GAN is dead; long l…