免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ccjsj1
打印 上一主题 下一主题

[其他] 自动化运维之--如何实现nagios插件的编写? [复制链接]

论坛徽章:
4
ChinaUnix专家徽章
日期:2015-07-27 10:05:26IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2016-07-29 06:20:00PHP
日期:2016-10-25 16:08:01
11 [报告]
发表于 2015-06-16 00:32 |只看该作者
1.nagios在使用中遇到哪些问题?
   nagios 图形化展示需要借助第三方插件画图
   nagios 配置相对比较繁琐
   nagios 分布式监控性能不是很好
   nagios 在使用nrpe时需要配置sudo权限
2.nagios插件是否编写过?可以举例说明。
   nagios插件编写最好是借助于nrpe扩展,可以自由使用自己熟悉的各种语言去实现监控,
nagios只需要根据脚本返回的状态值去做不同的事情,主要有4个状态:
0 成功
1 警告
2 失败
3 未知
另外返回的信息获取的是脚本的输出值。
比如:
简单的检查服务进程存活状态的shell脚本,
只有2个状态,存活,不存活,
也就是说脚本返回0或者2即成功和失败:
  #!/bin/sh
   status=0
   msg=""
   runtime=`date +'%Y-%m-%d %H:%M:%S'`
   pid=`ps -ef|grep $1|gep -E -v 'grep'|awk '{a++}END{if(a){print a}else{print 0}}`
   if [ ${pid} -eq 0]
   then
         status=2
         msg='CRITICAL,$1 Service is not Alive at ${runtime}'
  else
        status=0
        msg='OK,$1 Service is Alive at ${runtime}'
  fi
   echo ${msg}
   exit ${status}

  之后将脚本放到客户端,比如脚本放到/opt/sbin下,名称叫chk_service.sh,
配置nrpe.cfg,添加监控mysql进程的监控项
加入:
   commands[check_mysql]=/bin/sh /opt/sbin/chk_service.sh mysql
再在server端配置:
配置一个service项目监控:
   define service{        
        use                             linux-service
        host_name                       192.168.1.18
        service_description             chk_mysql_pid_status
        check_command                check_nrpe!check_mysql
       }
  重启服务即可,另外server端的配置需要参考官方文档,比如:
你需要定义check_nrpe命令,需要定义报警smtp设置,需要添加pnp扩展去展示图形等等
   
3.如何扩展Nagios,以实现自定义监控?
   linux/unix 使用nrpe
   windows使用NSClient++
4.如何借助Nagios监测常用服务?
   同上面例子,可以自由定制各种监控脚本去监控服务,比如:
可以使用curl去检查web服务和接口的返回状态,响应时间,返回值
可以使用脚本去连接mysql/oracle获取运行状态,设置阈值,返回不同的状态
可以使用脚本测试文件存储的读写(先创建一个文件,再去读取文件内容,最后删除创建的测试文件)
可以使用脚本执行一些动作(定时重启服务,切割日志,删除缓存等)
总结:
   重要的是实现思想,不是脚本语言的本身,不管是使用python/perl/shell/c/java ,思想方法正确,就能达到预期的效果

论坛徽章:
0
12 [报告]
发表于 2015-06-16 18:04 |只看该作者
1.nagios在使用中遇到哪些问题?
之前插件传参的一些细节没弄清楚,导致某些名称总是匹配不了。
另外若有较多的主机服务特别是大部分都不同而无法套用模板的话,配置文件的编写就蛮麻烦了。
2.nagios插件是否编写过?可以举例说明。
之前需求是被监测主机不能装软件,只得自己写些python插件来通过snmp抓取数据,有cpu、磁盘、内存等等
就以流量插件为例吧,下面摘了主要的部分:
import sys
import re
from pysnmp.entity.rfc3413.oneliner import cmdgen
import time
import pickle
......
errorIndication, errorStatus, errorIndex, varBinds = cmdgen.CommandGenerator().nextCmd(.......)
......
pat = re.compile(netname)
n = None
for n in range(varlen):
    if pat.search(varBinds[n][1][1]) != None:
        break
    if n == varlen - 1:
        print("can not match:", netname)
        exit(state_unknown)
.......

    try:
        data = pickle.load(f)
    else:
        oldtime, oreadbyte, owritebyte = data
        .......
        pickle.dump(wdata, f)
......
if readbyte >= 0 and readbyte < warning_r or writebyte >= 0 and writebyte < warning_w:
    state = state_ok
elif readbyte >= warning_r and readbyte < critical_r or writebyte >= warning_w and writebyte < critical_w:
    state = state_warning
......
3.如何扩展Nagios,以实现自定义监控?
nagios自身就提供了接口,可以说功能少也可以说扩展强,自定义监控就自己根据需要写检测插件。
4.如何借助Nagios监测常用服务?
外部检测有自带的网页检测、ping等,还可以通过代理软件nrpe、nscp,常用的功能都有了没有可以到官网翻翻插件,再就是自己写插件了。

论坛徽章:
17
2015年辞旧岁徽章
日期:2015-03-03 16:54:152017金鸡报晓
日期:2017-02-08 10:39:422017金鸡报晓
日期:2017-01-10 15:19:56JAVA
日期:2016-11-01 13:25:46C
日期:2016-10-25 16:01:4715-16赛季CBA联赛之八一
日期:2016-06-21 23:38:0815-16赛季CBA联赛之山东
日期:2016-05-12 12:49:54IT运维版块每日发帖之星
日期:2016-04-20 06:20:00IT运维版块每日发帖之星
日期:2016-03-22 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13IT运维版块每日发帖之星
日期:2015-08-25 06:20:002015亚冠之德黑兰石油
日期:2015-08-22 22:55:54
13 [报告]
发表于 2015-06-17 08:58 |只看该作者
回复 11# bbzsxjj
   nagios 配置相对比较繁琐
       使用第三方配置工具后会很方便,如centreon,可以定义模版,添加服务很方便;
   nagios 分布式监控性能不是很好
       还是需要第三方工具,如centreon,nagios将监控数据发给centreon,由centreon统一展现,解决了分布式问题;

论坛徽章:
8
2015年亚洲杯之阿联酋
日期:2015-02-19 13:23:46拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015亚冠之胡齐斯坦钢铁
日期:2015-05-29 12:47:50程序设计版块每日发帖之星
日期:2015-06-03 10:32:58综合交流区版块每日发帖之星
日期:2015-06-03 10:32:582016猴年福章徽章
日期:2016-02-18 15:30:34
14 [报告]
发表于 2015-06-17 09:24 |只看该作者
支持精彩活动

论坛徽章:
17
2015年辞旧岁徽章
日期:2015-03-03 16:54:152017金鸡报晓
日期:2017-02-08 10:39:422017金鸡报晓
日期:2017-01-10 15:19:56JAVA
日期:2016-11-01 13:25:46C
日期:2016-10-25 16:01:4715-16赛季CBA联赛之八一
日期:2016-06-21 23:38:0815-16赛季CBA联赛之山东
日期:2016-05-12 12:49:54IT运维版块每日发帖之星
日期:2016-04-20 06:20:00IT运维版块每日发帖之星
日期:2016-03-22 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13IT运维版块每日发帖之星
日期:2015-08-25 06:20:002015亚冠之德黑兰石油
日期:2015-08-22 22:55:54
15 [报告]
发表于 2015-06-17 09:31 |只看该作者
回复 14# shjhcx

谢谢!

   

论坛徽章:
11
CU十二周年纪念徽章
日期:2013-10-24 15:41:342015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-14 10:36:40技术图书徽章
日期:2015-01-12 15:46:11白羊座
日期:2014-11-14 09:35:36狮子座
日期:2014-10-30 13:18:49巳蛇
日期:2014-10-11 12:52:08子鼠
日期:2014-09-28 14:11:06双鱼座
日期:2014-04-22 13:05:48午马
日期:2014-02-11 17:58:002015年迎新春徽章
日期:2015-03-04 09:55:28
16 [报告]
发表于 2015-06-17 09:54 |只看该作者
过来支持下精彩活动。

论坛徽章:
4
ChinaUnix专家徽章
日期:2015-07-27 10:05:26IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2016-07-29 06:20:00PHP
日期:2016-10-25 16:08:01
17 [报告]
发表于 2015-06-17 15:26 |只看该作者
回复 13# ccjsj1

centreon 也用过,总体还是不错的,不过整个下来搞的相对比较繁琐,没有zabbix更集中一些
实际上什么工具不是关键,关键是如何使用工具解决你的问题

   

论坛徽章:
1
2015亚冠之柏太阳神
日期:2015-09-29 10:00:55
18 [报告]
发表于 2015-06-26 15:35 |只看该作者
推荐Check MK ,它以nagios为核心、pnp4nagios进行绘图,附带很多数据库、中间件、网络、存储、服务器的模板,很强大!和zabbix相比我更喜欢Check MK!

论坛徽章:
0
19 [报告]
发表于 2015-07-08 15:49 |只看该作者
1.nagios在使用中遇到哪些问题?
*机器很多以及监控项目很多的情况下,修改配置文件会比较麻烦。
*图像化不够好
*如果只是单点的情况,存在nagios机器发生故障或者网络故障而无法监测及报警;

2.nagios插件是否编写过?可以举例说明。
安装nrpe之后,感觉够用了,所以没有编写过插件。
目前是用shell编写过监控脚本,例如监控异常ip和进程、发现异常时禁用ip、每日的日志处理等,现在想来,其实可以把类似很多工作和nagios协同起来,包括每日的日志处理等都可以,只要输出状态和nagios,就可以实现自动监控了,就不用每天一台台机器去看了。

3.如何扩展Nagios,以实现自定义监控?
nrpe和NSClient。一般情况下,nagios已经足够强大,支持所需要的监控类别了。

4.如何借助Nagios监测常用服务?
通过nrpe和NSClient可以检测很多常用服务了。
例如libexec目录下很多检查命令如:check_disk,吃透其参数,然后到配置文件中如commands.cfg 配置好即可,总体来说,配置不复杂,熟悉之后更多的像体力工作(机器多的情况下)。
当然也可以只简单的监控目前机器是否alive,那不需要在目标机器上安装任何插件,只需要开通对监控机器的ping功能即可。

论坛徽章:
0
20 [报告]
发表于 2015-07-08 15:52 |只看该作者
对了,我之前用的短信接口报警到手机上,后来这个接口要收费了,就采用了邮件报警,一封是到公司自己的邮箱,一封是到139邮箱,然后在139邮箱上设置邮件到达通知发给手机,和短信报警差不多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP