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

Monitor DRBD devices with nagios

[复制链接]

尚未签到

发表于 2019-1-14 12:51:29 | 显示全部楼层 |阅读模式
install
on all ganeti nodes
  just install check_drbd (http://www.monitoringexchange.org/attachment/download/Check-Plugins/Operating-Systems/Linux/check_drbd/check_drbd) somewhere in the path.
  By default, this script will return CRITICAL if a device is unconfigured, and UNKNOWN if a device does not exists. These situations can happen with ganeti when :
- a vm is down  
- a vm is down and a node has been rebooted (then the drbd device disappears).  
  You may want to patch check_drbd like this to avoid "false" alerts :
--- check_drbd  2010-01-2609:10:16.000000000+0100
+++/usr/local/bin/check_drbd   2010-01-2609:06:23.000000000+0100
@@-38,7+38,7@@
'WFConnection'=>{'value'=>'CRITICAL','type'=>'cs'},
'WFReportParams'=>{'value'=>'CRITICAL','type'=>'cs'},
'Connected'=>{'value'=>'OK','type'=>'cs'},
-'Unconfigured'=>{'value'=>'CRITICAL','type'=>'cs'},
+'Unconfigured'=>{'value'=>'OK','type'=>'cs'},
# DRBD 0.6
'SyncingAll'=>{'value'=>'WARNING','type'=>'cs'},
'SyncingQuick'=>{'value'=>'WARNING','type'=>'cs'},
@@-261,7+261,7@@
}
foreachmy $device (@devices){
if(!(defined($cs{$device}))){
-&myexit('UNKNOWN',"Could not find device $device");
+&myexit('OK',"Could not find device $device");
}
                $check{$device}=1;
}on ganeti master
  put this script somewhere in the path (/usr/local/bin/drbd_gen_nagios.sh for ex):
#!/bin/bash
#
# Copyright (C) 2009 Maxence Dunnewind  
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see .
gnt-instance list  --no-header --separator=:-o name|while read vm;do
        TMP_FILE=$(mktemp)
        gnt-instance info -s $vm > $TMP_FILE
        NODE_A=$(grep "nodeA" $TMP_FILE|grep -o "[^ ]\+,"|head -1|sed
's/,//')
        NODE_B=$(grep "nodeB" $TMP_FILE|grep -o "[^ ]\+,"|head -1|sed
's/,//')
        DEV_A=$(grep "nodeA" $TMP_FILE|cut -d "="-f 2)
        DEV_B=$(grep "nodeB" $TMP_FILE|cut -d "="-f 2)
        rm -rf $TMP_FILE
for disk in $DEV_A;do
                echo "define service {"
                echo " host_name                $NODE_A"
                echo " service_description      DRBD instance $vm /
device n° $disk"
                echo " check_command            check_drbd!$disk"
                echo " use                      generic-service"
                echo "}"
                echo ""
done
for disk in $DEV_B;do
                echo "define service {"
                echo " host_name                $NODE_B"
                echo " service_description      DRBD instance $vm /
device n° $disk"
                echo " check_command            check_drbd!$disk"
                echo " use                      generic-service"
                echo "}"
                echo ""
done
done  Important : This script only define drbd checks, so you already need  to have the hosts configured in your nagios.
on nagios
  Define check_drbd, which will use check_by_ssh to call check_drbd  script on the nodes.
define command{
        command_name    check_drbd
        command_line    /usr/lib/nagios/plugins/check_by_ssh -H $HOSTADDRESS$ -l root -C "/usr/local/bin/check_drbd -d $ARG1$"
}  for example in /etc/nagiosX/conf.d/command.cfg .
  Also, be sure nagios user can connect using ssh without password. If you don't have defined that, you need to :
# su - nagios
# ssh-keygen
Generatingpublic/private rsa key pair.
Enter file in which to save the key (/var/run/nagios3/.ssh/id_rsa):/etc/nagios3/id_rsa
Enter passphrase (empty forno passphrase):
Enter same passphrase again:  Don't forget to replace the file. If you keep /var/run, your key will be deleted after next reboot :) Also, keep the passphrase empty. Then, copy the id_rsa.pub under /root/.ssh/authorized_keys on all your hosts. You can also add a "from" field and a "command" one to limit access :
from="1.1.1.1",command="/usr/local/bin/check_drbd" ssh-rsa AAAAB3NzaC1yc2EAAAABIwA...Use
  To generate the config, after a new instance has been added / removed, or after a replace-disks, run :
drbd_gen_nagios.sh > drbd.cfg   on ganeti master, then just copy the generated file into your nagios  conf.d directory, and check the config / restart your nagios.
  





运维网声明 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-663209-1-1.html 上篇帖子: 部署Nagios监控系统(三)NRPE监控远程主机系统状况 下篇帖子: Nagios 系统监控管理篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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