zoukankan      html  css  js  c++  java
  • zabbix log(logrt) key的使用

    今天看了篇帖子是关于如何利用zabbix 自带的key去读log,监控linux异常登陆,一直以来都是自己写脚本去读log的.就想看看这个zabbix log 这个key怎么样..
    好吧开始:

    官方文档: 英语好的去看吧 

    首先: log(logrt) key 只支持 active 模式....

    那么

    1.启动active 模式的agent

    sed -i s/^ServerActive=.*/ServerActive=192.168.1.17/ /etc/zabbix/zabbix_agentd.conf
    sed -i s/^Hostname=.*/Hostname=log_test/  /etc/zabbix/zabbix_agentd.conf
    sed -i /StartAgents=3/aStartAgents=0  /etc/zabbix/zabbix_agentd.conf

      修改 配置中的IP为自己的IP
      修改 Hostname为自己的name

    2.添加host
      Hostname 是上边的hostname
      IP是0.0.0.0 端口不要改
      其他的随意,根据个人需求

    过了20分钟Availability图标都没亮,做了个zabbix Agent 的active 模式的template 加了进去还是不亮, 
    最后搞了个Template OS Linux Active ..Availability图标亮了, 把link Template 取消了还亮着..
    (应该是有数据获取到了才会亮.亮了不出问题是不会暗....) 好吧我们继续..

    我们来显示登陆异常的提醒:

    3. Linux 登陆异常的log文件在: /var/log/secure

    Sep 22 03:38:57 web2 sshd[1587]: Accepted publickey for root from 192.168.1.156 port 52626 ssh2
    Sep 22 05:15:55 web2 sshd[1878]: Failed password for root from 192.168.1.17 port 49665 ssh2

      #这是secure的一段,登陆成功和失败的.

    4. log key的格式

    log[/path/to/file/file_name,<regexp>,<encoding>,<maxlines>,<mode>,<output>]
    or
    logrt[/path/to/file/regexp_describing_filename_pattern,<regexp>,<encoding>,<maxlines>,<mode>,<output>]

    上边是官方文档的解释:很详细...也有样例...

    第一部分:/path/to/file/file_name log文件的路径
    第二部分: <regexp> 正则匹配
    第三部分: <encoding> 文件的编码格式
    第四部分: <maxlines> agent每秒发送给server的最大行数
    第五部分: <mode> 模式
    第六部分: <output> 可选的输出格式

    Zabbix agent will filter entries of the log file by the content regexp, if present.
    Make sure that the file has read permissions for the 'zabbix' user otherwise the item status will be set to 'unsupported'.
    For more details see log and logrt entries in the supported Zabbix agent item keys section.
    再看看官档的解释: 如果 regexp 部分存在的话,zabbix agent会去使用regexp去过滤日志文件的内容
    确保zabbix对日志有可读权限

    5. 创建item
      name 随便起个
      type  要选择 zabbix agent(active)
      key 我们点击 select选择log[......] file 改成我们的日志文件/var/log/secure
      Type of Information 选择log
      其他的随意了
      如图:

        
    看看item 没报错就正常了,这里应该会报错,缺少对log文件的读权限
    实验我只是做了简单的赋权:

    chown zabbix.zabbix /var/log/secure

    好了没什么问题了!

    6. 创建个trigger  

      name 随便写个
      Expression:

    {log_test:log[/var/log/secure,"Failed password"].str(Failed)}=1 and  {log_test:log[/var/log/secure,"Failed password"].nodata(60)}=0

      # item 获取的值中出现Failed 就报警, 如果60s 无数据就恢复.

      Severitey 选择 Warning

    好了一切都完成了....
    模拟个失败登陆试试.....

    这是获取的数据...

    邮件也收到了报警..(前提是你要配置了邮件..)

    完成了...

    好了这个只是简单的模拟了log的用法..我们匹配了Failed 我们也可以配置 key( log[/var/log/secure,"(Accepted|Failed) password"])  trigger相应改下.
    根据不同的需求可以做响应的改变.
    output可以改变输出的结果 像第六步那张表, 输出的都是截取到的内容,你可以让输出0,1 任何这样就可以做一些其他的用途了.
    有人问这个东西读日志的效率,没找到读日志具体的描述,我觉得效率不会太低,应该和tail -f 一个原理...对于不会写脚本去分析日志来说这个已经很简单了...

  • 相关阅读:
    C#使用xpath简单爬取网站的内容
    Python的安装以及编译器的安装
    解析二维码
    C#的历史及IDE总结
    我又回来了,这回是带着C++来的
    Python 基础知识
    template declarations(模板声明)中 class 和 typename 有什么不同?
    投影点坐标
    内存对齐代码解析
    互斥量和信号量的区别
  • 原文地址:https://www.cnblogs.com/idnf/p/4828952.html
Copyright © 2011-2022 走看看