Logcheck

出自 阿尔卑斯 Linux

Logcheck 是一个简单的工具,用于扫描日志文件并邮件发送无法识别条目的报告。

安装

apk add logcheck grep run-parts

目前,grep 和 run-parts 必须手动安装,否则 logcheck 将无法工作。 正在努力消除这些依赖项。

此外,如果您希望 logcheck 发送邮件报告,则需要 perl-mime-construct。

apk add perl-mime-construct

应该将用户 “logcheck” 添加到 adm 组,以便它可以读取日志文件

adduser logcheck adm

配置

/etc/logcheck/logcheck.conf 中的默认配置是一个很好的起点。 它适用于服务器,并将报告邮件发送给 “logcheck”(如果您的邮件配置不会将此类邮件发送到所需的目标,或者只是让 cron 发送邮件,则应更改)。

如果您不希望 logcheck 向您发送邮件,您可以让 cron 来完成,只需在 logcheck.conf 中添加 MAILOUT=1 即可。

内容 /etc/logcheck/logcheck.conf

... # 将结果输出到 stdout 而不是邮件 MAILOUT=1 ...

日志文件

要扫描的日志文件在 /etc/logcheck/logcheck.logfiles.d 中配置。 您需要注释掉 journal.logfiles 中的 “journal”,因为我们没有使用 systemd

内容 /etc/logcheck/logcheck.logfiles.d/journal.logfiles

#journal

此外,您需要将 /var/log/messages 和任何其他缺失的日志文件添加到 syslog.logfiles,并注释掉您的特定 syslog 守护程序未使用的日志文件,例如 busybox syslog

内容 /etc/logcheck/logcheck.logfiles.d/syslog.logfiles

#/var/log/syslog #/var/log/auth.log /var/log/messages

调度

Logcheck 不作为守护程序运行,而是应该定期运行。 创建一个每小时的 cron 作业

内容 /etc/periodic/hourly/logcheck

#!/bin/sh if [ ! -d /run/lock/logcheck ]; then mkdir -p /run/lock/logcheck chown logcheck:logcheck /run/lock/logcheck fi su -s /bin/bash -c "nice -n10 /usr/sbin/logcheck" logcheck

并使其可执行

chmod +x /etc/periodic/hourly/logcheck

Busybox syslog

Busybox syslog 使用 wheel 组运行,这意味着 logcheck 无法读取它创建的日志文件。 可以将 logcheck 用户添加到 wheel 组,但由于 wheel 组在语义上旨在允许用户提升对 root 的访问权限(即使在实践中不起作用,因为 logcheck 用户不应设置密码),这不是一个最佳解决方案。

相反,busybox syslog 可以设置为以 adm 身份运行

内容 /etc/init.d/syslog

#!/sbin/openrc-run description="消息日志系统" name="busybox syslog" command="/sbin/syslogd" command_args="${SYSLOGD_OPTS} -n" pidfile="/run/syslogd.pid" command_background=true #start_stop_daemon_args="-g wheel -k 027" start_stop_daemon_args="-g adm -k 027" depend() { need clock hostname localmount provide logger }

无论如何,rsyslog 和 syslog-ng 都是这样工作的,无需任何更改。