Linux的/var/log/messages是空的,如何解决?

本文介绍了解决CentOS7系统中日志记录缺失的问题。通过调整rsyslog配置文件并重启服务来恢复/var/log/message等日志文件的正常记录。文中还提供了额外的解决方案,包括重新安装rsyslog及确保正确加载imjournal模块。

之前一直有日志生成的,正常运行,自从前几天搞了下好像重启了下rsyslog ,最后一次轮替日志之后,/var/log/message/var/log/secure等都不记录了,并且都是空文件。

修改方法:

1. 修改配置文件/etc/rsyslog.conf

#$ModLoad imjournal # provides access to the systemd journal
#Enable by uncommenting
$ModLoad imklog # reads kernel messages (the same are read from journald)

#Comment out
#$OmitLocalLogging on

#Comment out
#$IMJournalStateFile imjournal.state

2. 重启rsyslog

$ systemctl stop rsyslog.service
$ systemctl start rsyslog.service

3.查看日志信息

$ tail -f /var/log/secure

如果有日志信息输出,就可以啦~ 有记录啦。

 

注:如果以上的方法还是不行,可以试试下面说的方法:

方法1:

redhat 7 centos7 用system-journal,代替了原来的syslog,并由rsyslog负责写入message等日志文件,关闭、或修改rsyslog可能会导致日志文件不能正常写入。重新安装rsyslog,卸载后,记得删除rsyslog配置文件。

方法2:

$ModLoad imjournal rsyslog的journal模块没载入导致的,centos7版本默认这些模块是注释的,需要放开注释。

### 查看和分析 `/var/log/messages` 日志文件的方法 Linux 系统中的 `/var/log/messages` 文件是记录系统运行期间产生的各种日志消息的核心文件之一。它包含了来自不同服务和组件的消息,通常用于诊断问题、监控系统行为以及审计活动。 #### 使用文本查看工具 由于 `/var/log/messages` 是一个纯文本文件,可以使用常见的文本查看工具进行浏览: - **`less`**:适合分页查看大文件内容。 ```bash less /var/log/messages ``` - **`tail`**:实时跟踪或查看文件末尾的内容,特别适用于动态观察新生成的日志。 ```bash tail -f /var/log/messages ``` - **`cat`**:一次性显示整个文件内容,但不推荐用于大文件。 ```bash cat /var/log/messages ``` #### 使用 `grep` 过滤特定信息 为了快速定位感兴趣的日志条目,可以结合 `grep` 命令过滤特定关键字或模式: - 搜索包含特定关键词(如 "error")的行: ```bash grep "error" /var/log/messages ``` - 忽略大小写搜索并显示匹配行及其上下文: ```bash grep -i -A 2 -B 2 "error" /var/log/messages ``` 此命令会显示匹配行前后各两行的内容,有助于理解上下文环境[^2]。 #### 日志格式解析 每一行日志在 `/var/log/messages` 中都有固定的格式,通常包括以下四个部分: 1. **时间戳**:记录消息发生的时间。 2. **主机名**:产生日志消息的主机名称。 3. **进程名及 PID**:生成消息的服务或程序名称以及其进程 ID。 4. **消息正文**:具体描述事件的内容。 例如: ``` Dec 10 12:34:56 hostname kernel: [12345.678901] Out of memory: Kill process 1234 (process-name) score 123 or sacrifice child ``` 此示例表示内核检测到内存不足,并选择终止某个进程以释放资源的情况[^1]。 #### 配置 `rsyslog` 控制日志输出 如果某些日志没有出现在 `/var/log/messages` 中,可能是因为 `rsyslog` 的配置排除了特定设施或优先级的消息。例如,在配置文件中通过 `local3.none` 排除了 HAProxy 的日志输出: ```bash *.info;mail.none;authpriv.none;cron.none;local3.none /var/log/messages ``` 这会导致所有 `local3` 设施的消息不会写入 `/var/log/messages`,而是被定向到其他指定的日志文件中(如 `/var/log/haproxy/haproxy.log`)[^3]。要恢复这些消息的记录,只需移除 `local3.none` 条目即可。 #### 实时监控日志 对于需要持续监控系统状态的场景,可以使用 `tail -f` 或者更高级的日志监控工具如 `logwatch` 和 `logrotate` 来实现自动化分析和归档操作。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dreaming317

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值