在Nagios服务端:
/usr/local/nagios/libexec
执行
# ./check_nrpe -H 192.168.1.***(被监控主机内网IP)
返回:
Connection refused by host
=========================
http://www.zhouwenyi.com/node/11358
今天公司需要监控淘客宝手机短信进程,写了个小脚本可以利用Nagios来进行监控:
0:OK
2: Critical
[iyunv@VM0362 libexec]# cat check_php
#!/bin/sh
phpcount=$(ps aux | grep '/usr/local/php/bin/php'| grep -v 'grep' | wc -l)
if [ $phpcount != 2 ]; then
echo "Critical! Taokebao_sms IS died"
exit 2
else
echo "OK! Taokebao_sms IS alive"
exit 0
fi
http://pesen.blog.iyunv.com/4575807/812635
nagios监控应用的进程。为什么要监控进程呢?这是因为对于一些应用,它通过程序本身来进行通讯,既不开启端口也没有输出,这让我们熟悉了nagios监控端口和输出的人无从下手,只好监控应用的进程了。在这儿我以keepalived为例,整理一下监控进程的方法。
我采用的是nrpe的方法进行的监控。当然,也可以采用nagios自己定义的command来进行监控。不过自定义command监控就涉及到了监控机与被控机连接信任的问题。多了几个配置步骤,而且使用自定义command的时候还要传递参数,稍微反锁了一点。有现成的nrpe简单的多。做法如下:
1、被监控机
编辑nrpe配置文件:
vi /usr/local/nagios/etc/nrpe.cfg
在文件末尾添加:
command[check_keepalived]=/usr/local/nagios/libexec/check_keepalived
在nagios插件目录下创建脚本文件:
vi /usr/local/nagios/libexec/check_keepalived
添加如下内容:
#!/bin/sh
KPD=`ps aux | grep 'keepalived -D' |grep -v grep |wc -l`
if [ $KPD != 2 ] //进程数的设定以自己系统当中的数量为准
then
echo "Critical!Keepalived process count is $KPD"
exit 2
fi
echo "OK . Keepalived process count is $KPD"
exit 0
保存退出。
更改属主和属组,增加可执行权限:
chown nagios:nagios /usr/local/nagios/libexec/check_keepalived
chmod +x /usr/local/nagios/libexec/check_keepalived
重启nrpe:
killall -9 nrpe
ps -ef | grep nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
ps -ef | grep nrpe
2、nagios监控机设置
定义主机组---根据个人需求定义
vi /usr/local/nagios/etc/objects/yidongIDC/hosts.cfg //这是我自己定义的配置文件,刚安装的nagios没有这个文件。需要自己创建,并且将配置文件添加到nagios.cfg主配置文件中。具体写法为:cfg_file=[配置文件全路径]。
添加如下内容(members中涉及到的主机已经在上面定义了):
define hostgroup{
hostgroup_name keepalived-servers
alias The servers who have keepalived service
members web110,web111,localhost,web115
}
创建监控keepalived服务的配置文件
vi /usr/local/nagios/etc/objects/yidongIDC/keepalived_monitor.cfg
添加如下内容:
define service{
use generic-service
hostgroup_name keepalived-servers
service_description CHECK_KEEPALIVED
is_volatile 0
max_check_attempts 2
normal_check_interval 2
retry_check_interval 1
check_command check_nrpe!check_keepalived
}
更该文件属主属组,更改权限
chown nagios:nagios /usr/local/nagios/etc/objects/yidongIDC/keepalived_monitor.cfg
chmod 755 /usr/local/nagios/etc/objects/yidongIDC/keepalived_monitor.cfg
重置nagios
/etc/init.d/nagios reload
至此配置完成。监控效果如下图:
本文出自 “运维之道” 博客,请务必保留此出处http://pesen.blog.iyunv.com/4575807/812635
http://blog.iyunv.com/yuanxuran0101/article/details/5844967
安装完nagios后准备监控被监控服务器上的某一程序,脚本通过查看进程状态返回状态值,并传送给nagios,来达到监控目的。
nagios每个插件监控会返回以下状态值,我只用到了 0 、1、 2
#!/bin/bash -x
# Exit values:
# ------------
# 0 OK
# 1 Warning
# 2 Cirital
# 3 Unknown
# Others Unknown
##############################################
dfs_process=`ps -ef | grep './dfs client' | grep -v grep`
if [ -z "$dfs_process" ];then
echo "Critical the program of gather is down !!!"
exit 2
fi
process_ppid=`echo $dfs_process|awk '{print $3}'`
process_pid=`echo $dfs_process|awk '{print $2}'`
if [ $process_ppid = 1 ];then
echo 'The process of dfs put back'
exit 1
else
while [ $process_ppid != 1 ]
do
old_process_ppid=$process_ppid
process_ppid=`ps -ef | grep $process_ppid | grep -v $process_pid | grep -v grep | awk '{print $3}'`
process_pid=`ps -ef | grep $old_process_ppid| grep -v $process_pid | grep -v grep|awk '{print $2}'`
done
dfs_pprocess=`ps -ef | grep "$process_pid 1" | grep -v grep`
echo "process of './dfs client' OK ! - Parent process is `echo $dfs_pprocess | awk '{print $8,$9,$10}'`"
exit 0
fi
然后打开被监控端nrpe的配置文件
# vi /usr/local/nagios/etc/nrpe.cfg
添加:
command[check_dfs]=/usr/local/nagios/libexec/check_dfs.sh
就可以在监控端定制监控服务(service.cfg)了
http://blog.sina.com.cn/s/blog_659b48590100n2qj.html
用到的脚本为安装后 nagios/libexec 目录下的 check_procs
check_procs -w 2:2 -c 1:1024 -C test -u test
用户为test进程名为 test 的 进程 在 2:2 这个范围以外警告,在1:1024 范围以外报警
详解等- -
http://www.cnblogs.com/oubo/archive/2011/12/12/2394634.html
例如:需要监控Mysqld后台服务进程是否启动 修改/usr/local/nagios/etc/nrpe.cfg文件,在最后面添加如下一行:
command[check_mysql]=/usr/local/nagios/libexec/check_procs -c 2:2 -a mysqld
再修改/usr/local/nagios/etc/objetc/services.cfg,加入以下配置:
# Define services to Mysqld
define service{
use local-service ; Name of service template to use
#host_name 192.168.0.36
hostgroup_name mysql-servers
service_description Mysql Server
contact_groups admins;Monitors ; Notifications get sent to the admins by default
check_command check_nrpe!check_mysqld
}
再重启nagios服务即可;
sudo /etc/init.d/nagios restart
http://hi.baidu.com/zjx416/item/44474b1004b33038b831802f
nagios plugins 之check_procs
旨在帮助和我一样的菜鸟,高手请绕道!
用法:
Usage: check_procs -w <range> -c <range> [-m metric] [-s state] [-p ppid] [-u user] [-r rss] [-z vsz] [-P %cpu] [-a argument-array]
[-C command] [-t timeout] [-v]
现在就来解释下逐个参数的意思
-w -c 大家都知道,设置警告和严重警告的范围。一般都是设置一个数字,这样设置的话,进程数比设置的更大才报,比如
[iyunv@udb151k libexec]# ./check_procs -w 84 -c 90
PROCS OK: 83 processes
还具有另一种写法
[iyunv@udb151k libexec]# ./check_procs -w 84: -c :90
PROCS WARNING: 83 processes 冒号的意思是大于或者小于,这里的意思是小于84 或 大于90 报警
-m 以什么来衡量报警,后面的参数有
PROCS - number of processes (default) 以进程的数量(默认)
VSZ - virtual memory size 占用虚拟内存的大小
RSS - resident set memory size占用物理内存的大小
CPU - percentage CPU 占用CPU的比例
-s 以进程的状态加以区分,进程的状态有很多种,详细可ps -exX 查看
-p 进程的父进程
-u 进程的UID
-r 实际使用的物理内存
-z 虚拟内存
-P 占用CPU
-a 设定字符串
-C 进程的命令
-t 超时设定
-a 的缺点:很多时候,我们要监控一个进程是否正常,这个时候很多人都喜欢用-a 加上自己进程的参数名称来监控,这样做其实很容易引起不必要的报警,它会找出所有符合设定的字符串的进程,比如,我们在vi一个同名的文件或者查看该目录下的文件时:
[iyunv@udb151k libexec]# ./check_procs -w 1: -c :2 -a mysqld
PROCS CRITICAL: 3 processes with args 'mysqld'
这个时候用-C是更准确的:
[iyunv@udb151k libexec]# ./check_procs -w 1: -c :2 -C mysqld
PROCS OK: 1 process with command name 'mysqld'
==============================
http://space.itpub.net/27043155/viewspace-732183
NRPE分为两部分:
u check_nrpe插件,位于监控机器Nagios本地;
u NRPE守护进程,位于远程被监控的Linux/Unix主机;
当Nagios需要从远程Linux/Unix主机监控服务资源时,需要进行以下步骤:
n Nagios将会执行check_nrpe插件,并且告诉它什么样的服务需要监测;
n 插件check_nrpe将会联系远程主机的NRPE守护进程,根据需要可以选择SSL保护连接;
n NRPE守护进程选择适当的Nagios插件监测服务或者资源;
n 服务检测的结果将会通过check_nrpe插件传递到NRPE守护进程,换句话说就是将被监控主机上监控的结果传回到Nagios的守护进程;
这里需要说明的一点是NRPE需要将Nagios插件安装在远程的Linux/Unix主机上,如果没有安装这些插件,那么NRPE守护进程什么也干不了。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com