---出自《分布式监控平台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 用一个PHP文件监控Nginx+PHP+MySQL_逻辑监控

添加完毕后,重载Centreon Engine,是配置生效。保持Nginx与PHP服务正常,尽关闭Mysql数据库,观察管理后台页面显示状态。

Centreon 用一个PHP文件监控Nginx+PHP+MySQL_Centreon_02

几次失败检查重试之后,钉钉机器人告警信息也发送过来了。

Centreon 用一个PHP文件监控Nginx+PHP+MySQL_Centreon_03

照此法单独启停PHP及nginx,检查监控的有效性。