nagios监控mysql性能_nagios监控mysql(check_mysql)及内存使用率(check_mem)

本文详细介绍了如何使用Nagios监控本地及客户端的MySQL性能,并监控内存使用率。步骤包括上传和配置监控脚本check_mem,设置警告和临界值,通过Nagios监控内存使用情况。此外,还解释了Nagios监控MySQL的步骤,包括安装插件、创建数据库、授权和解决依赖问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、监控本地(localhost)内存

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值