Linux操作系统日志管理概述与命令操作

 前言:
       1.了解Linux日志系统;
       2.了解核心日志管理工具;
       3.掌握高级日志管理方案。

目录

一、Linux日志系统概述

1.日志的重要性

2.日志分类

二、核心日志管理工具

1.syslog(传统系统日志)

(1)配置文件

(2)配置语法

(3) 优先级说明

(4)应用场景

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

(1)核心特性

(2)配置文件结构

(3)高级功能配置示例

(4)应用场景

3.journald(systemd日志系统)

(1)核心特性

(2) 配置文件

(3)常用配置参数

(4)常用命令

(5)应用场景

4.logrotate(日志轮转)

(1)配置文件

(2)典型配置示例

(3)核心参数说明

(4)手动执行

(5)应用场景

三、高级日志管理方案

1. ELK Stack(分布式日志)

(1)典型架构

(2)Filebeat配置示例

2.auditd(安全审计)

(1)核心配置文件

(2)审计规则配置

(3)审计日志查询
总结

一、Linux日志系统概述

1.日志的重要性

  • 系统状态监控

  • 故障排查定位

  • 安全审计分析

  • 性能优化依据

  • 合规性要求满足

2.日志分类

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

二、核心日志管理工具

1.syslog(传统系统日志)

(1)配置文件
/etc/syslog.conf
(2)配置语法
 # 格式:设备.优先级 动作
 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.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
(3)高级功能配置示例

1.日志存储到MySQL:

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

 2.日志文件切割:

 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
 $FileOwner root
 $FileGroup adm
 $FileCreateMode 0640
 $DirCreateMode 0755
(4)应用场景
  • 企业级日志集中管理

  • 需要结构化存储的环境

  • 高并发日志处理场景

3.journald(systemd日志系统)

(1)核心特性
  • 二进制日志存储

  • 结构化日志记录

  • 实时日志查询

  • 与systemd深度集成

(2) 配置文件
/etc/systemd/journald.conf
(3)常用配置参数
 [Journal]
 Storage=persistent          # 存储方式(persistent/volatile)
 Compress=yes                # 启用压缩
 SystemMaxUse=1G             # 最大磁盘使用量
 SystemMaxFileSize=100M      # 单个文件最大尺寸
 MaxRetentionSec=1month      # 日志保留时间
(4)常用命令
 # 实时日志监控
 journalctl -f
 ​
 # 按服务查询
 journalctl -u nginx.service
 ​
 # 结构化显示
 journalctl -o json-pretty
 ​
 # 时间范围查询
 journalctl --since "2023-07-01" --until "2023-07-10"
(5)应用场景
  • 使用systemd的系统

  • 需要结构化日志分析

  • 实时日志监控需求

4.logrotate(日志轮转)

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

  • 自动化日志归档

  • 符合存储策略要求

三、高级日志管理方案

1. ELK Stack(分布式日志)

组件构成:

  • Elasticsearch:日志存储与检索

  • Logstash:日志收集处理

  • Kibana:数据可视化

(1)典型架构
  1. Filebeat采集日志

  2. Logstash过滤处理

  3. Elasticsearch存储

  4. Kibana展示分析

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

2.auditd(安全审计)

(1)核心配置文件
/etc/audit/auditd.conf
(2)审计规则配置
# 监控文件访问
 -a exit,always -F path=/etc/passwd -F perm=wa
 ​
 # 监控用户登录
 -a exit,always -F arch=b64 -S execve -k user_exec
(3)审计日志查询
 ausearch -k user_exec -i
 aureport -au
总结:
       了解Linux操作系统日志管理中文件用于记录linux系统的各种运行信息的文件,相当于linux主机的日记,不同的日志文件记载了不同类型的信息,如Linux内核消息、用户登录事件、程序错误等。Linux系统日志的查看和管理是一项涉及多个层面的任务,可以根据具体需求选择合适的方法和工具。

你可能感兴趣的:(linux,运维,服务器)