设为首页 收藏本站
查看: 947|回复: 0

nagios之集成snmptt

[复制链接]
发表于 2019-1-15 07:13:28 | 显示全部楼层 |阅读模式
  一、什么是SNMPTT(SNMP Trap Translator)
  SNMPTT是用perl写的SNMP trap处理器,它需要使用Net-SNMP/UCD-SNMP snmptrapd程序。SNMPTT支持Linux,Unix和Windows。具体工作原理如下图:

  Net-SNMP程序的snmptrapd是收集和记录SNMP trap,并通过TCP/IP发送消息的程序。
snmptrapd程序接收到的告警的输出如下,一般格式为 variable name=value, variable name=value。
       Feb 12 13:37:10 server11 snmptrapd[25409]: 192.168.110.192: Enterprise  Specific Trap (3008) Uptime: 306 days, 23:13:24.29, .1.3.6.1.2.1.1.5.0 =  SERVER08, .1.3.6.1.4.1.232.11.2.11.1.0 = 0,  .1.3.6.1.4.1.232.3.2.3.1.1.4.8.1 = rebuilding(7)

or

      Feb 12 13:37:10 server11 snmptrapd[25409]: 192.168.110.192:  Enterprise Specific Trap (3008) Uptime: 306 days, 23:13:24.29, sysName.0  = SERVER08, cpqHoTrapFlags.0 = 0, cpqDaLogDrvStatus.8.1 = rebuilding(7)

     使用SNMPTT的变量替换功能,消息可以变的更友好,如在SNMPTT 配置文件中定义如下的格式:
     FORMAT Logical Drive Status Change: Status is now $3.

那么上面收到的消息将会显示,可以看出,第三个变量rebuilding被替换显示出来:
     Feb 12 13:37:13 server11 TRAPD:  .1.3.6.1.4.1.232.0.3008 Normal "XLOGONLY" server08 - Logical Drive  Status Change: Status is now rebuilding

  

     SNMPTT可以将输出记录到文本日志,NT event 日志,SQL数据库,或者通过外部程序传给Nagios,邮件客户端等。除了变量替换,SNMPTT允许如下复杂的配置:
   *接受或拒绝一个trap信息,基于主机名/IP地址/网络段/trap变量中的值
   *执行外部程序来发送page,email等
   *执行正则表达式来匹配和替换消息中的内容。



二、软件前提需求
1.perl及模块支持

  (1). Perl 5.6.1 or higher.  SNMPTT is developed with 5.6.1 and 5.8.0, but other versions may also work.
    (2). Required: Net-SNMP (formerly known as UCD-SNMP).  Specifically snmptrapd.
    (3). Required: Text::ParseWords module (included with most distributions including ActivePerl)
    (4). Required: Getopt::Long module (included with most distributions including ActivePerl)
    (5). Required: Posix module (included with most if not all distributions including ActivePerl)  
    (6). Required: Config::IniFiles module
    (7). Required: Time::HiRes module (only required when using SNMPTT in daemon mode - required by snmptthandler)
    (8). Required: Sys::Hostname module (included with most if not all distributions including ActivePerl).
    (9). Required: File::Basename module (included with most if not all distributions including ActivePerl).
    (10). Required: Text::Balanced module (included with most if not all distributions including ActivePerl).


  其中 Config::IniFiles、 Text::Balanced等比较少用,可以使用cpan进行安装,可能安装过程中碰到模块信赖的问题,像我碰到了信赖关系,例: Config::IniFiles信赖Perl::OSType、Bundle::CPAN和ExtUtils::MakeMaker,有时候还是满麻烦的。碰到问题,慢慢解决,嘿嘿。




2.其他软件支持
  (1).nagios:3版本以上,下载链接:http://www.nagios.org/download/core
  (2).snmptt:1.3版本了,网上有gz包和rpm包,根据自己需求来下载了。
  gz包下载地址:http://sourceforge.net/projects/snmptt/
  三、snmptt和snmptrapd的安装及配置:

1.snmptt的安装及配置
    . 下载snmptt.tgz 包解压
    . 拷贝snmptt到/usr/sbin, 加可执行权限(chmod +x snmptt)
    . 拷贝snmptthandler到/usr/sbin,加可执行权限(chmod +x snmptthandler)
    . 拷贝snmptt.ini 到/etc/snmp或者/etc。更改文件中的选项。
    . 创建日志文件夹/var/log/snmptt
    . 创建spool文件夹(daemon mode会使用)
                   mkdir /var/spool/snmptt/
    . 拷贝启动脚本到init.d目录
               cp snmptt.init.d /etc/rc.d/init.d/snmptt

    . 增加启动项
              chkconfig --add snmptt
              chkconfig --level 2345 snmptt on
              service snmptt start

          或者手工执行snmpttt
              snmptt --daemon
  . 拷贝日志轮训脚本cp snmptt.logrotate /etc/logrotate.d/snmptt,并根据具体目录更改文件中的路径
     . 手工创建snmptt.conf文件,或者使用snmpttconvertmib工具创建。
  使用命令:

             snmpttconvertmib --in= --out=/etc/snmp/snmptt.conf. \               --exec='/usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 1'
例:




其中MIB file可以到各具体设置的官网上进行下载

  . 更改snmptt.ini文件包含snmptt.conf.*文件,并设置选项        
  . 启动snmptt: service snmptt restart
  2.snmptrapd的配置:
  .配置snmptrapd的配置文件/etc/snmp/snmptrapd.conf
  对于standlone mode: 更改Net-SNMP的snmptrapd.conf配置文件,添加如下行:
         traphandle default /usr/sbin/snmptt
              对于 daemon mode,更改Net-SNMP的snmptrapd.conf配置文件,增加如下行:
         traphandle default /usr/sbin/snmptthandler

                   第一行:配置一个认证的community,设置所有用户的访问权限:可执行,记录,传递同时方便agent进行使用snmptrap进行命令测试;

                   第二行:接收到的trap信息默认调用/usr/sbin/snmptt来进行处理。同时也可以针对具体的OID,来指定调用的程序;

                   第三行:禁止访问控制检查 will  disable  the  above  access control checks, and revert to the previous behaviour of accepting all incoming notifications.
                第四行:禁止通知的日志记录disables  the  logging of notifications altogether.  This is useful if the snmptrapd application should only run traphandle hooks and should not log traps to any location.
                注:  snmptrapd.conf有很多很多具体的参数配置,具体可以man一下。

  .snmptrapd服务启动配置:
  使用如下命令启动snmptrapd,snmptrapd -On.
        如果存在/etc/rc.d/init.d/snmptrapd文件,则也要更改添加上选项”-On”。
     OPTIONS="-On -Lf /var/log/snmptrapd.log -p /var/run/snmptrapd.pid"
          注:具体参数意思可查看帮助
  四、snmptt.ini主配置文件的配置

  [General]
snmptt_system_name =
mode = standalone
multiple_event = 1
dns_enable = 0
strip_domain = 0
strip_domain_list =

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-663339-1-1.html 上篇帖子: 使用shell脚本自动化安装Nagios服务器端和客户端 下篇帖子: nagios+mutt邮件发送故障
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表