Linux 日志管理与时间管理

Linux 日志管理

操作系统内核和程序记录了发生的事件日志,这些日志用于审核系统并解决问题。日志以文本方式保存在/var/log目录中。可以使用普通文本实用程序(如less和tail)检查这些日志。

Linux 内置了基于Syslog协议的标准日志记录系统。许多程序使用此系统记录事件并将其组织到日志文件中。CentOS 7 中systemd-journald和rsyslog服务负责处理syslog消息。

  • systemd-journald 服务,是操作系统事件记录体系结构的核心,收集系统各方面事件消息,包括内核、引导过程早期阶段的输出、守护程序启动和运行时的输出、syslog事件,然后将它们重组为标准格式,并写入结构化的索引系统日志中。
  • rsyslog 服务,读取systemd-journald日志,然后记录到日志文件,或根据自己的配置将日志保存到不同的文件中,以及转发给其他程序。

rsyslog 日志配置

rsyslog 服务配置
配置文件位置
  • 主配置: /etc/rsyslog.conf。主配置文件中以下配置作用是引入从配置目录中配置文件。
  • 从配置:/etc/rsyslog.d/*.conf。
日志记录规则

每一条日志消息都可以通过消息类型facility和priority分类,参考rsyslog.conf(5)。

日志记录规则格式: facility+连接符号+priority 处理方式

priority(优先级)

0 - EMERG(紧急)

含义:系统不可用,通常表示系统处于严重故障或崩溃状态,例如内核崩溃、硬件灾难性故障等。
示例:当服务器的硬盘突然损坏,导致系统无法正常读写数据,相关组件就可能产生EMERG级别的日志,提示系统已经处于无法继续提供服务的严重状态。
应用场景:这类日志消息通常会触发系统的警报机制,比如通过短信、邮件等方式通知系统管理员立即处理,因为这可能导致整个系统停机。

1 - ALERT(警报)

含义:必须立即采取行动来解决的严重问题,虽然系统还未完全崩溃,但已经处于非常危险的状态 。
示例:当系统的根文件系统即将满额,且剩余空间已经不足以支撑系统正常运行时,相关文件系统监控组件会产生ALERT级别的日志。
应用场景:系统管理员需要尽快响应并处理,通常会将此类日志记录到专门的紧急日志文件中,方便快速定位和解决问题。

2 - CRIT(严重)

含义:表示严重的错误情况,可能会影响系统的部分功能,但系统还能继续运行。
示例:数据库服务出现严重错误,无法正常处理某些关键业务的数据库请求,不过数据库服务器本身还在运行,就会产生CRIT级别的日志。
应用场景:这类日志需要管理员及时关注并排查,一般也会被记录在重要的日志文件中。

3 - ERR(错误)

含义:表示一般性的错误,这些错误会影响系统或应用程序的某些功能,但不会导致系统崩溃或严重影响系统可用性。
示例:应用程序中某个函数调用失败,或者网络连接出现短暂中断等,就会产生ERR级别的日志。
应用场景:开发人员或运维人员可以通过查看这类日志来排查应用程序的故障,通常会记录在应用程序或系统的常规错误日志文件中。

4 - WARNING(警告)

含义:表示潜在的问题或可能会导致问题的情况,目前系统或应用程序还能正常运行,但存在一些异常状况需要关注。
示例:服务器的 CPU 使用率持续过高,接近系统设置的阈值,虽然还未影响到系统的正常运行,但可能会引发性能问题,此时会产生WARNING级别的日志。
应用场景:系统管理员可以通过定期查看此类日志,提前发现系统中的潜在风险,预防问题的发生。

5 - NOTICE(注意)

含义:用于记录正常但需要注意的事件,通常是一些比较特殊的情况,但并非错误或警告。
示例:用户在非常规时间(比如凌晨)登录系统,或者系统进行了一些重要的配置变更等,会产生NOTICE级别的日志。
应用场景:帮助管理员了解系统的运行情况和用户行为,以便进行后续的分析和管理。

6 - INFO(信息)

含义:提供关于系统或应用程序正常运行的一般信息,用于记录系统或应用程序的常规操作和状态。
示例:系统启动时各个服务的加载情况,应用程序处理请求的数量等信息,会记录为INFO级别的日志。
应用场景:有助于管理员了解系统的日常运行状态,在排查问题时可以作为参考,辅助判断系统是否按照预期工作。

7 - DEBUG(调试)

含义:主要用于开发和调试阶段,包含详细的调试信息,这些信息对于开发人员定位代码中的问题非常有用。
示例:程序中变量的值、函数的调用顺序等详细信息,会在调试模式下记录为DEBUG级别的日志。
应用场景:开发人员在开发和测试过程中,通过查看DEBUG级别的日志来排查程序中的逻辑错误、性能问题等。在生产环境中,通常会关闭或限制DEBUG日志的输出,因为其会产生大量数据,影响系统性能。

配置文件内容

/etc/rsyslog.conf

故障模拟
故障1:配置文件丢失
[root@server ~]# mv /etc/ssh/sshd_config .
[root@server ~]# systemctl restart sshd
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
[root@server ~]# tail -f /var/log/messages 

Jul 28 14:57:38 server sshd: /etc/ssh/sshd_config: No such file or directory
Jul 28 14:57:38 server systemd: sshd.service: main process exited, code=exited, status=1/FAILURE
Jul 28 14:57:38 server systemd: Failed to start OpenSSH server daemon.
Jul 28 14:57:38 server systemd: Unit sshd.service entered failed state.
#解决
[root@server ~]# mv sshd_config /etc/ssh/sshd_config
[root@server ~]# systemctl restart sshd

自定义日志

[root@server ~]# systemctl restart sshd
[root@server ~]# vim /etc/rsyslog.d/local5.conf
[root@server ~]# systemctl restart rsyslog.service 
#手动生成一个消息
[root@server ~]# logger -p local5.err "test local5 error messages"
[root@server ~]# cat /var/log/local5.log
Jul 28 15:03:17 server yy: test local5 error messages

  • 虽然系统提供了日志服务,但并不会记录所有内容。

  • 系统中的应用程序是否使用 rsyslog 服务记录日志,取决于应用程序设计。

systemd-journald 日志分析

查看所有日志条目----journalctl

态查看所有日志条目–journalctl -f

查看error级别日志—journalctl -p err

​ journalctl -p err | cat

查看特定unit日志----journalctl -u sshd.service

Linux 时间管理

系统时间设置

vim 使用技巧 批量注释多行
[root@server ~ 15:19:10]# vim /etc/chrony.conf
1. 定位到特定行开头
2. ctrl+v
3. 上下移动光标,选中多行开头部分
4. 大写的I,进行插入 #
5. esc 退出

自动对时-chronyd 服务

# 修改对时服务器
[root@server ~ 11:58:11]# vim /etc/chrony.conf
您在 /var/spool/mail/root 中有邮件
# 与单个服务器 ntp.aliyun.com 对时
server ntp.aliyun.com iburst

[root@server ~ 11:59:25]# systemctl restart chronyd
[root@server ~ 11:59:45]# systemctl stop ffirewalld.ser
vice
Failed to stop ffirewalld.service: Unit ffirewalld.service not loaded.
[root@server ~ 16:13:50]# systemctl stop firewalld.service


[root@client ~ 16:14:12]# vim /etc/chrony.conf

[root@client ~ 16:15:36]# systemctl restart chronyd
# 验证对时情况
[root@client ~ 16:15:50]# chronyc sources -v
^* server.laoma.cloud            3   6    17     5  +22

部署时间服务器

服务端

[root@server ~]# vim /etc/chrony.conf
# 最后添加两条记录

# 配置监听地址
bindaddress 10.1.8.10

# 配置允许哪些网段主机同步
allow 10.1.8.0/24

[root@server ~]# systemctl restart chronyd

# 停止防火墙服务
[root@server ~]# systemctl stop firewalld.service

客户端

# 修改对时服务器
[root@client ~]# vim /etc/chrony.conf
# 与单个服务器 10.1.8.10 对时
server 10.1.8.10 iburst

[root@client ~]# systemctl restart chronyd
[root@client ~]# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
#验证
^* server.laoma.cloud            3   6     7  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值