nagios监控mysql(check_mysql)及内存使用率(check_mem)
一、监控本地(localhost)内存
成都创新互联-专业网站定制、快速模板网站建设、高性价比清涧网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式清涧网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖清涧地区。费用合理售后完善,十年实体公司更值得信赖。
1、上传监控脚本 check_mem 到/usr/local/nagios/libexec
# chown -R nagios.nagios check_mem # chmod +x check_mem
2、修改commands配置
# vim /usr/local/nagios/etc/objects/commands.cfg define command{ command_name check_mem command_line $USER1$/check_mem -w $ARG1$ -c $ARG2$ }
3、修改localhost.cfg
# vim /usr/local/nagios/etc/objects/localhost.cfg define service{ use local-service host_name localhost service_description check_mem check_command check_mem!20!10 }
4、重启nagios服务
# service nagios restart
5、check_mem 脚本
#!/bin/bash USAGE="`basename $0` [-w|--warning][-c|--critical] " THRESHOLD_USAGE="WARNING threshold must be greater than CRITICAL: `basename $0` $*" calc=/tmp/memcalc percent_free=/tmp/mempercent critical="" warning="" STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 # print usage if [[ $# -lt 4 ]] then echo "" echo "Wrong Syntax: `basename $0` $*" echo "" echo "Usage: $USAGE" echo "" exit 0 fi # read input while [[ $# -gt 0 ]] do case "$1" in -w|--warning) shift warning=$1 ;; -c|--critical) shift critical=$1 ;; esac shift done # verify input if [[ $warning -eq $critical || $warning -lt $critical ]] then echo "" echo "$THRESHOLD_USAGE" echo "" echo "Usage: $USAGE" echo "" exit 0 fi # Total memory available total=`free -m | head -2 |tail -1 |gawk '{print $2}'` # Total memory used used=`free -m | head -2 |tail -1 |gawk '{print $3}'` # Calc total minus used free=`free -m | head -2 |tail -1 |gawk '{print $2-$3}'` # normal values #echo "$total"MB total #echo "$used"MB used #echo "$free"MB free # make it into % percent free = ((free mem / total mem) * 100) echo "5" > $calc # decimal accuracy echo "k" >> $calc # commit echo "100" >> $calc # multiply echo "$free" >> $calc # division integer echo "$total" >> $calc # division integer echo "/" >> $calc # division sign echo "*" >> $calc # multiplication sign echo "p" >> $calc # print percent=`/usr/bin/dc $calc|/bin/sed 's/^\./0./'|/usr/bin/tr "." " "|/usr/bin/gawk {'print $1'}` #percent1=`/usr/bin/dc $calc` #echo "$percent1" if [[ "$percent" -le $critical ]] then echo "CRITICAL - $free MB ($percent%) Free Memory" exit 2 fi if [[ "$percent" -le $warning ]] then echo "WARNING - $free MB ($percent%) Free Memory" exit 1 fi if [[ "$percent" -gt $warning ]] then echo "OK - $free MB ($percent%) Free Memory" exit 0 fi
二、监控客户端内存使用情况
1、上传监控脚本 check_mem 到/usr/local/nagios/libexec
# chown -R nagios.nagios check_mem # chmod +x check_mem
2、修改nrpe.cfg
# vim /usr/local/nagios/etc/nrpe.cfg command[check_users]=/usr/local/nagios/libexec/check_users -w 3 -c 5 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_xvda]=/usr/local/nagios/libexec/check_disk -w 10% -c 5% -p /dev/xvda command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 command[check_xvdb2]=/usr/local/nagios/libexec/check_disk -w 10% -c 5% -p /dev/xvdb2 command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10% command[check_mem]=/usr/bin/sudo /usr/local/nagios/libexec/check_mem -w 20 -c 10 #增加此行
3、在nagios服务器端增加监控服务
# vim /usr/local/nagios/etc/servers/192.168.200.111.cfg define service{ use generic-service host_name 192.168.200.111 service_description check_mem check_command check_nrpe!check_mem }
三、排错
1、NRPE: Unable to read output
(1)为nagios用户增加sudo权限
# visudo nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_mem
(2)注释掉一下行,表示不需要控制终端
# visudo #Defaults requiretty
四、nagios监控MySQL
1、check_mysql
nagios监控mysql使用的是 check_mysql 这个插件,需要在nagios服务器上先安装mysql-devel,然后再重新安装nagios-plugin,这样才会出现check_mysql。否则即使copy了一份,也照样用不了。
2、编译或重新编译 nagios-plugin
#yum -y install mysql-devl #cd nagios-plugins-2.0.3 #./configure --with-nagios-user=nagios --with-nagios-group=nagios #make && make install
3、查看 check_mysql
# ls /usr/local/nagios/libexec/check_mysql
4、建立专用数据库
# mysql -uroot -p mysql> create database nagios_monitor; mysql> grant select on nagios_monitor.* to nagios@'%' identified by '123qaz!@#'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> select User,Password,Host from mysql.user; +--------+-------------------------------------------+--------------+ | User | Password | Host | +--------+-------------------------------------------+--------------+ | root | *B9627CB37815863D1E98D0C41E0233A772355E2B | localhost | | root | *B9627CB37815863D1E98D0C41E0233A772355E2B | 127.0.0.1 | | root | *B9627CB37815863D1E98D0C41E0233A772355E2B | ::1 | | cacti | *BC3E1F14C7940F9C8BCDB05A38385754BB55CD64 | localhost | | nagios | *BC3E1F14C7940F9C8BCDB05A38385754BB55CD64 | % | +--------+-------------------------------------------+--------------+ 8 rows in set (0.00 sec)
5、check 一下
# /usr/local/nagios/libexec/check_mysql -H 192.168.200.105 -unagios -dnagios_monitor -p 123qaz!@# # 报了一个错 /usr/local/nagios/libexec/check_mysql: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory # 解决: ln -sv /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18 # 再重新测试 # /usr/local/nagios/libexec/check_mysql -H 192.168.200.111 -unagios -dnagios_monitor -p 123qaz!@# Uptime: 13991 Threads: 5 Questions: 1242101 Slow queries: 0 Opens: 159 Flush tables: 1 Open tables: 60 Queries per second avg: 88.778|Connections=315c;;; Open_files=85;;; Open_tables=60;;; Qcache_free_memory=16285768;;; Qcache_hits=1210926c;;; Qcache_inserts=16654c;;; Qcache_lowmem_prunes=0c;;; Qcache_not_cached=2c;;; Qcache_queries_in_cache=283;;; Queries=1242101c;;; Questions=1242101c;;; Table_locks_waited=2c;;; Threads_connected=5;;; Threads_running=1;;; Uptime=13991c;;;
6、监控localhost
(1)修改 commands.cfg
# vim /usr/local/nagios/etc/objects/commands.cfg define command{ command_name check_mysql command_line $USER1$/check_mysql -H $HOSTADDRESS$ -unagios -dnagios_monitor -p123qaz!@# }
(2)修改 localhost.cfg
# vim /usr/local/nagios/etc/objects/localhost.cfg define service{ use local-service host_name localhost service_description check_mysql check_command check_mysql }
(3)重启 nagios
# service nagios restart
7、监控客户端
(1)check 一下
# /usr/local/nagios/libexec/check_mysql -H 192.168.200.111 -unagios -dnagios_monitor -p123qaz!@#
(2)客户端修改 nrpe.cfg
# vim /usr/local/nagios/etc/nrpe.cfg command[check_mysql]=/usr/local/nagios/libexec/check_mysql -H 192.168.200.111 -unagios -dnagios_monitor -p123qaz!@#
(3)重启 nrpe
# killall nrpe # /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
(4)服务端定义服务
# vim /usr/local/nagios/etc/servers/192.168.200.111.cfg define service{ use generic-service host_name 192.168.200.111 service_description check_mysql check_command check_nrpe!check_mysql }
(5)重启 nagios 服务
# service nagios restart
文章名称:nagios监控mysql(check_mysql)及内存使用率(check_mem)
文章出自:http://pwwzsj.com/article/ijhjjs.html