AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1162954
Accepted
Bryan
Bryan
Asked: 2024-07-24 02:54:19 +0800 CST2024-07-24 02:54:19 +0800 CST 2024-07-24 02:54:19 +0800 CST

升级到 debian bookworm - 如何配置 monit 来检查 syslog(systemd 的日志)中的文本?

  • 772

我已经使用 monit 一段时间了。我所做的检查之一是确保我的邮件服务器没有被滥用。我使用 milter-limit 来限制发送速率 - 它会记录到 syslog 中。在使用 bookworm 之前,我可以让它扫描 syslog 文件以查找特定内容。我还没有看到任何允许我使用 systemd 日志执行此操作的东西 - 有办法吗?

经过调查,似乎可以使用 logcheck 或journalcheck来创建一个脚本供 monit 运行并检查输出,但也许我错过了一个更简单的选项?

syslog
  • 2 2 个回答
  • 30 Views

2 个回答

  • Voted
  1. lutzmad
    2024-07-26T15:52:38+08:002024-07-26T15:52:38+08:00

    Systemd 日志不是文本文件,而是由几个二进制文件组成。因此,Monit 无法从文件中搜索消息。

    也许我错过了一个更简单的选择?

    目前,导出/分析 Systemd 日志的脚本是实现此目的的唯一方法。Lutz

    • 2
  2. Best Answer
    u1686_grawity
    2024-07-26T18:36:46+08:002024-07-26T18:36:46+08:00

    如果您需要文本日志,请安装传统的 syslog 守护程序 - 可以配置 syslog-ng 和 rsyslog 以从 systemd 日志中提取消息(甚至以两种不同的方式),然后您可以像以前一样进行操作。

    对于 syslog-ng 来说,这是默认配置的一部分;Debian 的标准 rsyslog 也默认设置了“imjournal”输入模块,这是旧版 Debian 同时提供两种日志格式的方式。

    (上述两个程序都从 .journal 文件中读取消息,因此它们可以通过日志元数据(如单位名称)进行过滤;您无需启用 ForwardToSyslog 即可使它们工作。)

    您还可以推出一个自定义的.service,它只执行journalctl --follow > system.log(可能带有-u或其他过滤选项),但它不会有日志轮换等,所以它只是一个“零依赖 DIY”选项。

    定期的基于命令的“journalctl | grep”检查实际上并不是一个坏选择 - 它可能不如纯文本文件那样高效,但 journalctl 明确支持使用从最后一个检查点重新启动--cursor-file=;我使用它让 cron 每小时/每天通过电子邮件向我发送所有错误(-p err)消息。

    journalctl -u postfix -t postfix/anvil --cursor-file=/var/lib/monit_postfix_cursor
    
    • 2

相关问题

  • 如何将 Windows Server 2008 事件日志发送到 syslog 服务器?

  • 有没有办法过滤系统日志条目?

  • 生成模拟日志消息

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve