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

重生之我要当云原生大师(十四)分析和存储日志

目录

一、简述常用的日志文件所存储的消息类型。

二、syslog的优先级?

三、维护准确时间的意义?


一、简述常用的日志文件所存储的消息类型。

1. 系统日志文件

/var/log/messages

  • 消息类型:通用的系统日志文件,记录系统启动、服务启动、内核消息、硬件事件等。
  • 用途:用于查看系统级别的消息和错误。

/var/log/syslog

  • 消息类型:记录系统级别的日志信息,包括内核、服务、应用程序的消息。
  • 用途:在部分 Linux 发行版中替代 /var/log/messages。

2. 认证与安全日志

/var/log/secure

  • 消息类型:记录与系统安全相关的日志,如用户登录、认证、sudo 使用、SSH 登录等。
  • 用途:用于监控用户登录行为和排查安全问题。

/var/log/auth.log

  • 消息类型:与 /var/log/secure 类似,记录认证和授权相关的日志。
  • 用途:在部分 Linux 发行版中使用。

3. 启动日志

/var/log/boot.log

  • 消息类型:记录系统启动过程中的消息,包括服务启动、硬件初始化等。
  • 用途:用于排查系统启动问题。

/var/log/dmesg

  • 消息类型:记录内核环缓冲区中的消息,包括硬件检测、设备驱动加载等。
  • 用途:用于查看硬件相关的日志。

4. 计划任务日志

/var/log/cron

  • 消息类型:记录 cron 和 at 任务的执行情况,包括任务启动、成功或失败的信息。
  • 用途:用于监控计划任务的执行情况。

5. 邮件日志

/var/log/maillog

  • 消息类型:记录邮件服务器(如 Postfix、Sendmail)的日志,包括邮件发送、接收、错误等。
  • 用途:用于排查邮件服务问题。

6. 软件包管理日志

/var/log/yum.log

  • 消息类型:记录 yum 或 dnf 包管理器的操作日志,包括软件包安装、更新、删除等。
  • 用途:用于查看软件包管理操作的历史记录。

7. Web 服务器日志

/var/log/httpd/access_log

  • 消息类型:记录 Apache HTTP 服务器的访问日志,包括客户端请求、响应状态码等。
  • 用途:用于分析网站访问情况。

/var/log/httpd/error_log

  • 消息类型:记录 Apache HTTP 服务器的错误日志,包括服务器错误、配置问题等。
  • 用途:用于排查 Web 服务器问题。

8. 数据库日志

/var/log/mysql.log

  • 消息类型:记录 MySQL 数据库的日志,包括查询、错误、连接等。
  • 用途:用于监控和排查数据库问题。

/var/log/postgresql.log

  • 消息类型:记录 PostgreSQL 数据库的日志,包括查询、错误、连接等。
  • 用途:用于监控和排查数据库问题。

9. X Window 系统日志

/var/log/Xorg.0.log

  • 消息类型:记录 X Window 系统的日志,包括图形界面启动、硬件驱动加载等。
  • 用途:用于排查图形界面问题。

10. 应用程序日志

/var/log/{application_name}

  • 消息类型:某些应用程序会将自己的日志文件存储在 /var/log/ 目录下,例如 /var/log/nginx/(Nginx 日志)。
  • 用途:用于查看特定应用程序的日志。

11. 系统审计日志

/var/log/audit/audit.log

  • 消息类型:记录系统审计日志,包括文件访问、用户操作、权限变更等。

用途:用于安全审计和监控。

二、syslog的优先级?

优先级的组成:

优先级是一个 8 位的数字,范围从 0 到 191。它的计算公式为:

优先级 = 设施代码 * 8 + 严重性代码

  • 设施代码:表示日志消息的来源或类别
  • 严重性代码:表示日志消息的严重程度。

1. 设施(Facility):

设施代码表示日志消息的来源或类别。常见的设施代码包括:

设施代码

设施名称

说明

0

kern

内核消息

1

user

用户级别的消息

2

mail

邮件系统消息

3

daemon

系统守护进程消息

4

auth

安全/认证消息

5

syslog

syslogd 内部生成的消息

6

lpr

打印系统消息

7

news

新闻系统消息

8

uucp

UUCP 系统消息

9

cron

计划任务(cron/at)消息

10

authpriv

私有认证消息

11

ftp

FTP 守护进程消息

16

local0

本地使用 0

17

local1

本地使用 1

...

...

...

23

local7

本地使用 7


2. 严重性(Severity):

严重性代码表示日志消息的严重程度。常见的严重性代码包括:

严重性代码

严重性名称

说明

0

emerg

紧急情况,系统不可用

1

alert

需要立即采取行动

2

crit

严重错误

3

err

一般错误

4

warning

警告信息

5

notice

正常但重要的事件

6

info

一般信息

7

debug

调试信息


优先级的示例:

  • 如果一条日志消息的设施是 auth(代码 4),严重性是 err(代码 3),则优先级为:

优先级 = 4 * 8 + 3 = 35

  • 如果一条日志消息的设施是 cron(代码 9),严重性是 info(代码 6),则优先级为:

优先级 = 9 * 8 + 6 = 78

三、维护准确时间的意义?

1. 系统日志的准确性

  • 意义:系统日志是排查问题和监控系统状态的重要工具。如果时间不准确,日志中的时间戳将失去意义,难以追踪事件发生的顺序。
  • 示例:在多台服务器上排查分布式系统的故障时,需要根据日志的时间戳分析事件的因果关系。

2. 文件同步与一致性

  • 意义:文件系统、备份工具和同步工具(如 rsync)依赖文件的时间戳来判断文件是否被修改。如果时间不准确,可能导致文件同步错误或数据丢失。
  • 示例:在备份操作中,时间戳不准确可能导致备份工具无法正确识别需要备份的文件。

3. 计划任务的执行

  • 意义cron 和 at 等计划任务工具依赖系统时间来触发任务。如果时间不准确,任务可能在不正确的时间执行,甚至完全错过执行时间。
  • 示例:定时备份脚本可能因为时间不准确而未能按时执行,导致数据丢失。

4. 网络安全与认证

  • 意义:许多安全协议(如 Kerberos、TLS/SSL)和认证机制(如 OTP)依赖准确的时间来验证证书的有效性和防止重放攻击。
  • 示例
    • 如果系统时间与证书颁发机构(CA)的时间不同步,可能导致 SSL/TLS 连接失败。
    • Kerberos 认证要求客户端和服务端的时间差在允许范围内(通常为 5 分钟)。

5. 分布式系统的协调

  • 意义:在分布式系统中,多个节点需要协调一致的时间来确保数据一致性、事务顺序和事件排序。
  • 示例
    • 数据库复制和分布式事务依赖时间戳来保证数据的一致性。
    • 分布式锁服务(如 ZooKeeper)需要准确的时间来管理锁的租约。

6. 调试与性能分析

  • 意义:在调试和性能分析中,时间戳是分析事件顺序和性能瓶颈的重要依据。如果时间不准确,可能导致错误的结论。
  • 示例:在分析应用程序的性能问题时,时间戳不准确可能导致无法正确识别性能瓶颈。

7. 合规性与审计

  • 意义:许多行业和法规(如 GDPR、HIPAA)要求系统记录准确的时间戳以满足合规性和审计要求。
  • 示例:在金融交易系统中,准确的时间戳是审计交易合法性的重要依据。

8. 时间敏感型应用

  • 意义:某些应用对时间非常敏感,例如实时数据采集、科学实验、金融交易等。时间不准确可能导致数据错误或交易失败。
  • 示例:高频交易系统依赖微秒级的时间精度来确保交易的公平性和正确性。

9. 网络时间协议(NTP)的作用

为了维护准确的时间,通常使用 网络时间协议(NTP)同步系统时间。NTP 可以将系统时间与可靠的时间源(如原子钟、GPS 或公共 NTP 服务器)同步,确保时间的准确性。

  • 配置 NTP
    在 RHEL 中,可以使用 chrony 或 ntpd 来配置 NTP 服务。例如:

sudo yum install chrony

sudo systemctl start chronyd

sudo systemctl enable chronyd

  • 检查时间同步状态
    使用 chronyc 或 ntpq 命令检查时间同步状态:

chronyc tracking

ntpq -p


http://www.kler.cn/a/539370.html

相关文章:

  • 没用的文章又➕1
  • C++并发编程指南 09(共享数据)
  • Go语言构建微服务:从入门到实战
  • 网络防御高级02-综合实验
  • (done) openMP学习 (Day13: 线程私有数据和如何支持库(Pi again),蒙特卡洛计算 Pi,线性同余法)
  • win32汇编环境,结构体的使用示例一
  • 打家劫舍3
  • 迁移学习 Transfer Learning
  • ESP32-C6通过Thread 1.4认证,设备无线交互联动,物联网通信方案
  • 【数据库创建】用ij工具部署Derby数据库并验证
  • 视觉硬件选型和算法选择(CNN)
  • 01单片机上电后没有正常运行怎么办
  • 升级RAG应用程序与Redis向量库
  • 25寒假周报1,2
  • Deep Dive into LLMs like ChatGPT - by Andrej Karpathy
  • ChunkKV:优化 KV 缓存压缩,让 LLM 长文本推理更高效
  • PyTorch Profiler 性能优化示例:定位 TorchMetrics 收集瓶颈,提高 GPU 利用率
  • [Windows] PDF补丁丁v1.1.0.4627绿色版
  • ASP.NET Core 如何使用 C# 从端点发出 GET 请求
  • PHP 运算符
  • 多线程编程入门-std::future
  • 第十二天 学习ArkUI的交互事件和动画效果
  • HarmonyOS 5.0应用开发——NodeContainer自定义占位节点
  • 每日一题——数组中出现次数超过一半的数字
  • 生成式聊天机器人 -- 基于Pytorch + Global Attention + 双向 GRU 实现的SeqToSeq模型 -- 下
  • AI安全最佳实践:AI云原生开发安全评估矩阵(下)