跳转到主要内容

Logcheck配置食谱

项目描述

简单的logcheck食谱

在您的构建过程中生成日志文件的程序可以从定期检查这些日志文件中受益。

Logcheck是一个Unix实用工具,可以遍历您的日志文件,并将您感兴趣的行通过邮件发送给您,前提是您正确地通过忽略配置它。

tha.recipe.logcheck提供了一种为logcheck设置一组本地配置文件的方法。要实际使用它,建议使用z3c.recipe.usercrontab。提供${logcheck:command}选项以实现易于集成。

详细文档

支持选项

食谱支持以下选项

logfiles

日志文件列表是一个或多个需要由logcheck工具处理的日志文件的集合。此参数是必需的。

接收者

一个电子邮件地址,用作logcheck电子邮件的接收者。此参数是必需的。

忽略

多行正则表达式。如果正则表达式匹配,则匹配的行将被排除在logcheck电子邮件之外。

主题

用于电子邮件主题的主题。注意:仅为主题的一部分,logcheck本身会附加/前缀日期等。

示例用法

我们将首先创建一个使用该配方构建的buildout

>>> write('buildout.cfg',
... """
... [buildout]
... parts = logcheck
...
... [logcheck]
... recipe = tha.recipe.logcheck
... logfiles = var/example.log
... recipient = someone@example.com
... subject = my site
... """)

运行buildout将在parts和var目录中安装目录结构

>>> print 'start', system(buildout)
start...
Installing logcheck.
logcheck: Created /sample-buildout/var/logcheck
logcheck: Created /sample-buildout/var/logcheck/state
logcheck: Created /sample-buildout/parts/logcheck
logcheck: Created /sample-buildout/parts/logcheck/cracking.d
logcheck: Created /sample-buildout/parts/logcheck/cracking.ignore.d
logcheck: Created /sample-buildout/parts/logcheck/violations.d
logcheck: Created /sample-buildout/parts/logcheck/violations.ignore.d
logcheck: Created /sample-buildout/parts/logcheck/ignore.d.paranoid
logcheck: Created /sample-buildout/parts/logcheck/ignore.d.server
logcheck: Created /sample-buildout/parts/logcheck/ignore.d.workstation
<BLANKLINE>
>>> ls('var/logcheck')
d  state
>>> ls('parts/logcheck')
d  cracking.d
d  cracking.ignore.d
d  ignore.d.paranoid
d  ignore.d.server
d  ignore.d.workstation
-  logcheck.conf
-  logcheck.logfiles
d  violations.d
d  violations.ignore.d
>>> ls('bin')
-  buildout

日志文件配置文件列出日志文件

>>> cat('parts/logcheck/logcheck.logfiles')
/sample-buildout/var/example.log

通用配置文件列出正确的目录

>>> cat('parts/logcheck/logcheck.conf')
REPORTLEVEL="workstation"
SENDMAILTO="someone@example.com"
FQDN=0
RULEDIR="/sample-buildout/parts/logcheck"
LOCKFILE="/sample-buildout/var/logcheck/lock"
LOGFILES_LIST="/sample-buildout/parts/logcheck/logcheck.logfiles"
STATEDIR="/sample-buildout/var/logcheck/state"
EVENTSSUBJECT="my site"

如果您未指定主题,则默认回退为检查的文件名(自0.4版起增加)

>>> write('buildout.cfg',
... """
... [buildout]
... parts = logcheck
...
... [logcheck]
... recipe = tha.recipe.logcheck
... logfiles = var/example.log
... recipient = someone@example.com
... """)
>>> print 'start', system(buildout)
start Uninstalling logcheck.
Installing logcheck.
<BLANKLINE>
>>> cat('parts/logcheck/logcheck.conf')
REPORTLEVEL="workstation"
SENDMAILTO="someone@example.com"
FQDN=0
RULEDIR="/sample-buildout/parts/logcheck"
LOCKFILE="/sample-buildout/var/logcheck/lock"
LOGFILES_LIST="/sample-buildout/parts/logcheck/logcheck.logfiles"
STATEDIR="/sample-buildout/var/logcheck/state"
EVENTSSUBJECT="/sample-buildout/var/example.log"

指定两个日志文件是可能的

>>> write('buildout.cfg',
... """
... [buildout]
... parts = logcheck
...
... [logcheck]
... recipe = tha.recipe.logcheck
... logfiles =
...     var/example.log
...     var/emergency.log
... recipient = someone@example.com
... subject = my site
... """)
>>> print 'start', system(buildout)
start Uninstalling logcheck.
Installing logcheck.
<BLANKLINE>
>>> cat('parts/logcheck/logcheck.logfiles')
/sample-buildout/var/example.log
/sample-buildout/var/emergency.log

策略

此配方执行的logcheck设置非常简单。创建所需的logcheck目录,但大部分留空。这意味着原则上所有日志文件消息都将通过电子邮件发送。

这显然不是预期结果。因此,如果您指定了它们,则在ignore.d.workstation目录中有一个包含忽略正则表达式的文件。

>>> ls('parts/logcheck/ignore.d.workstation')

我们指定一个正则表达式

>>> write('buildout.cfg',
... """
... [buildout]
... parts = logcheck
...
... [logcheck]
... recipe = tha.recipe.logcheck
... logfiles = var/example.log
... recipient = someone@example.com
... ignores =
...     ^.+INFO.*
... """)

>>> print 'start', system(buildout)
start...
Uninstalling logcheck.
Installing logcheck.
logcheck: Writing file with 1 ignore patterns: /...station/logcheck-ignores
<BLANKLINE>

>>> ls('parts/logcheck/ignore.d.workstation')
-   logcheck-ignores
>>> cat ('parts/logcheck/ignore.d.workstation/logcheck-ignores')
^.+INFO.*

logcheck应该从cronjob调用。该配方提供了一个选项,列出可以从其他配方使用的正确命令

>>> write('crontab', '')
>>> write('buildout.cfg',
... """
... [buildout]
... parts = logcheck crontab
...
... [logcheck]
... recipe = tha.recipe.logcheck
... logfiles = var/example.log
... recipient = someone@example.com
... ignores =
...     ^.+INFO.*
...
... [crontab]
... recipe = z3c.recipe.usercrontab
... times = */5 * * * *
... command = ${logcheck:command}
... readcrontab = cat ${buildout:directory}/crontab
... writecrontab = cat > ${buildout:directory}/crontab
...
... """)
>>> print 'start', system(buildout)
start...
Updating logcheck.
Installing crontab.
>>> cat('crontab')
<BLANKLINE>
# Generated by /sample-buildout [crontab]
*/5 * * * * /usr/sbin/logcheck -c /sample-buildout/parts/logcheck/logcheck.conf
# END /sample-buildout [crontab]
<BLANKLINE>

致谢

Reinout van ReesThe Health Agency创建

tha.recipe.logcheck 的变更日志

1.1 (2009-12-18)

  • 文档和许可更新。[reinout]

  • 调整了crontab配方中的测试。[reinout]

1.0 (2009-05-27)

  • 稍微清理了代码(bootstrap.py在正确位置等)。[reinout]

0.4 (2009-05-22)

  • 默认主题现在是第一个日志文件的完整路径名。[reinout]

  • 稍微进行了更多测试。[reinout]

0.3 (2009-04-21)

  • 允许设置主题的选项(“subject”)。(好吧,至少是主题的一部分)。[reinout]

0.2 (2009-03-30)

  • 修复了忽略文件生成中的拼写错误。[reinout]

0.1 (2009-03-17)

  • 为在crontab配方中使用添加了“command”选项。[reinout]

  • 在var/和parts/中创建logcheck目录和配置文件。[reinout]

  • 使用ZopeSkel创建了配方。[reinout]

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

tha.recipe.logcheck-1.1.tar.gz (9.3 kB 查看散列)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面