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

使用nagios监控指定的端口号

[复制链接]

尚未签到

发表于 2019-1-14 06:48:39 | 显示全部楼层 |阅读模式
  方法一:
  实验思路:
  第一步在commands.cfg文件中定义你要使用的检测命令:
  vi /usr/local/nagios/etc/objects/commands.cfg
  define command{
  command_name    tcp60910              #命令名
  command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p 60910 -t 60    #命令内容,该处调用到check_tcp这个脚本 -P后面是端口。如果你要监控很多端口,就多编几条,做示范就弄2条。 -t是超时时间,单位是秒。        }
  define command{
  command_name    tcp60911
  command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 60911 -t 60   #这里如果不用-t也可以,默认是10秒,假如你的监控端是电信,你被监控端是网通,那么你监控过去就会偶尔出现10秒以上,所以这个时间可以放大点,但最大是60秒。              }
  再定义主机组。
  第二步定义要进行端口监控的主机并修改nagios.cfg文件使nagios可以识别:
  #vi /usr/local/nagios/etc/objects/hosts.cfg  #注意,这个文件本身不自带的,可以直
  接VI编辑,别忘了还要去nagios.cfg里声明它的存在
  下面是去声明它的存在,vi /usr/local/nagios/etc/nagios.cfg
  # You can specify individual object config files as shown below:
  cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
  cfg_file=/usr/local/nagios/etc/objects/commands.cfg
  cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
  cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
  cfg_file=/usr/local/nagios/etc/objects/templates.cfg
  下面是hosts.cfg的文件内容。
  define host{
  use             linux-server         #这里是调用模板文件就是templates.cfg这个里面的linux-server模板,其实我们监控的是windows,可是我测试了下模板用windows就莫名其妙报错,大家可以用windows-server试试
  host_name       ts1                #这个是定义的ts1名字,这个名字用来给下面的members调用。
  alias           ts1                      #这个是会在网站监控按钮上显示的文字。
  address         XXX.XXX.XXX.XXX        #这个是对应ts1的IP地址,就是你要监控的机器。
  

  }
  

  define host{
  #这里是第二台
  use             linux-server
  host_name       ts2
  alias           ts2
  address         XXX.XXX.XXX.XXX
  }
  define hostgroup{
  hostgroup_name  Ts-servers          #主机组名 Ts-servers  同样等下要被监控服务调用。
  alias           Ts-Servers   #这个同上面那个一个意思,用来在web页面显示的名字。
  members         ts1,ts2     #这里就是调用上面的host_name内容,用”,"逗号分开,我这里就2台,全部添加进去了。
  }
  好了,到最后一步,调用主机组名和命令来监控服务。
  第三步定义需要端口监控的主机要监控的端口:
  在# vi /usr/local/nagios/etc/objects/windows.cfg配置
  define service{
  use                             generic-service               #调用模板不累述。可以不调用,但你要再这直接把所有的信息都放进去,什么联系人,通知各种杂七杂八的字段都要填。直接弄个模板反正大多都是默认的,比如24X7小时监控之类的。
  hostgroup_name                  Ts-servers            #这个就是调用hosts.cfg里的define hostgroup下的“hostgroup_name”
  normal_check_interval           1           #这个是正常检测间隔时间,就是检测1次端口发现正常后下次检测的时间。默认是1分钟,在nagios.cfg里有个
  interval_length=60 这个是指nagios的时间单位,默认是60秒,所以这里的1就是1分钟。
  retry_check_interval            1                          #这个是不正常检测间隔时间,就是检测发现不正常后下次检测的时间。
  service_description             port60910           #这个是描述,也是出现在web页面上的
   check_command                   tcp60910          #这个是调用的命令,就是一开始定义好的命令。注意此check_command后面的tcp60910要跟command.cfg文件中定义的command_name的名称一致。
  }
  下面是监控第二个端口,意思就不累述了。
  define service{
  use                             generic-service             hostgroup_name                  Ts-servers         normal_check_interval           1         retry_check_interval            1
  service_description             port60911         check_command                   tcp60911         }
  最后重启nagios,如果重启失败,请直接#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg来查看 nagios配置文件的错误信息。
  我上面那个不能用windows-server模板就是这么检测出来的,坑爹啊,那个文件里明明有windows模板的,就是不能用,只好用linux-server.望后来人解决之。
  

  方法二:
  第二种方法是在定义命令的时候几个地方变一下
  define command{
  command_name    tcp60910              #命令名        command_line    $USER1$/check_tcp -H
  $HOSTADDRESS$ -p $ARG1$ -t $ARG2$    #"$ARG1$"这个是变量的意思,就是你想输什么就输什么,但一定要输对应意思的,等下下面会再说明。
  }
  中间主机组和主机还是不变,最后的服务调用命令要变下
  define service{
  use                             generic-service             hostgroup_name                  Ts-servers         normal_check_interval           1         retry_check_interval            1
  service_description             port60911
  第一个字段是填IP的,但因为$HOSTADDRESS$是在宏里定义好的。就是最终的host_name。方法2我没试过,网上说可以直接忽略写第二个字段。大家不
  妨试试。这里就直接填了端口和延迟时间。
  

    check_command                   tcp60911!60910!60    #原来这里是没参数的,直接调用的命令名,主要是因为原来定义好了参数,现在要自己写。!号是分隔符         }
  其实我觉得方法二灵活点。由于我现在用了centreon,所以也没直接配置nagios文件了。其实最终效果还是一样的
  还有监控多线路HTTP页面的方法,有机会会更新好的。
  如果你要定义100台机器,那么你只要定义好define host 然后在define hostgroup里添加好像ts1 ts2这样加下去就行了。
  如果你既要监控windows又要监控linux,监控的种类又不相同,那么原理还是一样的。只要在文件里添加好字段和参数就行了。
  

  

  

  

  

  

  

  

  

  

  

  

  





运维网声明 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-662905-1-1.html 上篇帖子: Nagios+ PNP4nagios + rrdtool 监控平台建立 下篇帖子: Nagios的搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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