---出自《分布式监控平台Centreon最佳实践》 为准确掌握站点的可用性,可考虑用一个对象来同时检测Nginx、PHP及数据库的运行状态。基本思路是,写一个PHP文件,该文件的主要工作就
---出自《分布式监控平台Centreon最佳实践》
为准确掌握站点的可用性,可考虑用一个对象来同时检测Nginx、PHP及数据库的运行状态。基本思路是,写一个PHP文件,该文件的主要工作就是对数据库进行查询。当任何一个服务发生故障时,能通过HTTP状态码进行可用性判别。
在站点设定的目录下(也可以是站点的根),编写check_site.php文件,其内容如下:
<?php $servername = "localhost"; $username = "nagios"; $password = "scd736Ydb#G"; try { $conn = new PDO("mysql:host=$servername;", $username, $password); echo "连接成功"; } catch(PDOException $e) { echo $e->getMessage(); header("HTTP/1.0 500 [Database is error]"); } ?>[root@mon172 libexec]#
./check_http -H 172.16.98.235 -u http://172.16.98.235/check_url.php HTTP OK: HTTP/1.1 200 OK - 229 bytes in 0.003 second response time |time=0.003376s;;;0.000000 size=229B;;;0[root@mon172 libexec]#
./check_http -H 172.16.98.235 -u http://172.16.98.235/check_url.php HTTP CRITICAL: HTTP/1.1 500 [Database is error] - 260 bytes in 0.003 second response time |time=0.003423s;;;0.000000 size=260B;;;0不同的输出结果,正是我们所期待的。登录Centreon管理后台,添加主机172.16.98.235,再添加服务check_url,把它与主机“172.16.35.235”相关联。
添加完毕后,重载Centreon Engine,是配置生效。保持Nginx与PHP服务正常,尽关闭Mysql数据库,观察管理后台页面显示状态。
几次失败检查重试之后,钉钉机器人告警信息也发送过来了。
照此法单独启停PHP及nginx,检查监控的有效性。