PostgreSQL monitor - customize nagios script
背景
前一个章节介绍了使用bucardo提供的check_postgres脚本和nagios来监控数据库.
本文主要介绍如何编写自定义监控脚本.
在编写自定义脚本前首先要搞清楚nagios的判断标准.
1. 脚本的返回值
nagios根据脚本返回值来输出该监控服务的状态. 返回值和状态对应关系如下.
0 : (OK)
1 : (WARNING)
2 : (CRITICAL)
other : (UNKNOWN)
2. 脚本的标准输出
pg92@db-172-16-3-39-> /opt/check_postgres-2.20.0/check_postgres.pl --PGBINDIR=/opt/pgsql92/bin --output=nagios --datadir=/pgdata1919 --action=checkpoint -w 300s -c 600s
POSTGRES_CHECKPOINT CRITICAL: Last checkpoint was 11418 seconds ago | age=11418;300;600
以上监控命令的标准输出为
POSTGRES_CHECKPOINT CRITICAL: Last checkpoint was 11418 seconds ago | age=11418;300;600
注意 | 这个字符, 这个字符分隔了两部分信息 : |
Status Information
Performance Data
如图 :
3. 被监控机上的脚本是在nagios服务端通过check_nrpe远程调用的方式执行的.
被监控端的nrpe程序以什么用户组执行在如下配置中 :
[root@db-172-16-3-39 check_postgres-2.20.0]# cat /etc/xinetd.d/nrpe |grep -E "group|user"
user = pg92
group = pg92
因此监控脚本需要有以上用户组的可执行权限.
编写自定义脚本时需要遵循前面提到的3点.
使用nagios监控常用PostgreSQL监控项举例 :
http://blog.163.com/digoal@126/blog/static/163877040201412763135184/
参考
1. http://blog.163.com/digoal@126/blog/static/1638770402013121102459107/
2. http://blog.163.com/digoal@126/blog/static/163877040201312241028667/
3. http://blog.163.com/digoal@126/blog/static/163877040201302714527/
4. http://blog.163.com/digoal@126/blog/static/16387704020130433036377/
5. http://blog.163.com/digoal@126/blog/static/163877040201292245228613/
6. http://blog.163.com/digoal@126/blog/static/163877040201141134748660/
7. http://blog.163.com/digoal@126/blog/static/16387704020116111445381/
8. http://blog.163.com/digoal@126/blog/static/16387704020130525628988/