用 Logwatch 工具监控 Linux 系统 Log 日志

如果要想迅速的得到 Linux 环境中的日志报告信息, Logwatch 是一个很好的工具.
一般的 Linux 系统中可能都默认安装了这个工具.几乎不需要额外的配置就可以简单的用起来.

# logwatch --print

这条命令将会把昨天的日志信息简要的打印出来. 比如用户登录失败信息、SSH 登录信息、磁盘空间使用等.
单独查看某个服务,比如 SSH 登录信息:

# logwatch --service sshd --print

这条命令可以查看使用说明:

# logwatch --help

最新版本的 LogWatch 默认有 70 多种 Log 的配置信息. 如果要对自己的特殊 Log 做监控, 定制也是比较容易的。简单记录一下:


基本的做法:
1) 创建一个日志文件组。指定自己的 Log 文件,可以是一个,可以是多个;
2) 创建一个新的服务。指明这个服务的名字, 指明 Log 文件来源(来自上一步的定义);
3) 创建一个过滤脚本;
整个原理就是,LogWatch 首先要知道针对哪一个服务, 从这个服务中得到需要处理的 Log 文件信息, 然后这个文件送给过滤脚本处理, 之后把处理后格式化的信息展现出来;
出于时间关系,例子就不给了。
安全:
LogWatch 旧版本 2.11 有个著名的漏洞:临时目录建立处理中存在竞争条件漏洞。这里有溢出代码:Root Compromise through LogWatch
其他: LogWatch 报告的是 Log 信息的历史数据,如果要实时监控 Log,可以考虑用 Swatch.


7 thoughts on “用 Logwatch 工具监控 Linux 系统 Log 日志

  1. lijietz

    偶也在找一个好的日志察看工具..自己写shell提取模式匹配太麻烦了..有些日志文件还是二进制的..
    不知道logwatch和syslogd有什么关系?和什么后台process关联?ps -ef了一下,好像没找到有价值的.

    Reply
  2. Fenng

    Syslogd 用来记录日志.Logwatch 是用来观察日志的. 你可以把它理解成一个文本格式化工具就成。
    如果要求不高的话,用Logwatch+swatch 可以满足大部分需求了

    Reply
  3. lijietz

    刚才看了一下logwatch的格式化scripts.繁琐阿..:(
    我想利用自己的脚本,隔5分钟的扫描logfile..提取上次提
    取到目前为止新增的log内容,并对此做filter,然后insert
    到database..
    目前只能做些简单的,比如apache,vsftp的访问log提取等.
    我还准备启用iptables,分析iptales的log,把一些可疑的网络
    网络探测入库..
    以前对log相关内容关注不多..

    Reply
  4. Fenng

    我不知道你提取插入数据库有什么必要
    你需要的是:了解过去的概况,准确把握现在的信息

    Reply
  5. lijietz

    我准备把log提取出来,插入数据库后,用.net在web展示出来..也就是说,我准备把监控平台搬到web上来. :)
    已经完成大部分了,就剩下log部分了!

    Reply
  6. annie.peng

    我第一次接触logwatch,想知道logwatch默认的70 多种 Log 的配置信息是否支持pix firewall logs???
    如果没有,我可能只好定制了,能否麻烦给一个简单的定制例子,万分感谢!!!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *