如何使用 icinga2 监控 MySQL 套接字

如何使用 icinga2 监控 MySQL 套接字

我想使用 icinga2 监控我的 MySQL 服务器,如上面的标题所示。我的 MySQL 服务器使用 unix 套接字。我尝试了以下操作:

object Service "MYSQL" {
    import "generic-service"
    check_command = "mysql"
    vars.mysql_query_hostname = "/var/run/mysqld/mysqld.sock"
    vars.mysql_ignore_auth = true
    vars.mysql_port = 6800
    host_name = "mysql.server"
    }

然后我重新启动了 icinga2 服务。当我从 icinga2 网站检查时,我发现 MySQL 服务出现以下错误: 插件输出无法连接到‘192.168.2.4’上的 MySQL 服务器 (111)

icinga2 似乎无法使用 unix 套接字检查 MySQL 服务。我使用的配置有问题吗?

编辑1: 因此,我在客户端上安装了 icinga2,并将其配置为卫星。我读到过,icinga2 代理是监控远程服务上的服务的优雅方式。由于此设置将保留,我愿意花时间和精力来正确配置一切。

在服务器上,/etc/icinga2/conf.d/services.conf

apply Service "MySQL" {
import "generic-service"
check_command = "mysql"
command_endpoint = host.vars.client_endpoint
assign where host.vars.client_endpoint == "client1.example.com"
}

/etc/icinga2/conf.d/hosts.conf

object Host "client1.example.com" {
import "generic-host"
address = "192.168.2.4"
vars.client_endpoint = "client1.example.com"
vars.mysql_hostname = "/var/run/mysqld/mysqld.sock"
}

在客户端上,我安装了所需的插件“check_mysql”,icinga2 正在运行。当我通过 icinga2 Web 界面检查时,我仍然得到以下插件输出:插件输出无法连接到“192.168.2.4”上的 MySQL 服务器 (111) 似乎它仍在通过 TCP 检查。我做错了什么?

答案1

Icinga2 是否在您的 MySQL 服务所在的同一台服务器上运行?在这种情况下,您的命令可能会出现问题。您可以在问题中粘贴命令的详细信息。

在其他情况下,要测试未在 TCP 端口上监听的 mysql 的 Unix 套接字,您必须使用 NRPE 或 SSH 连接到您的 mysql 服务器并检查服务。结果将发送到您的 icinga2 服务器。

编辑1:

如果您想测试远程服务器上没有网络监听器的服务,您可以使用以下几种方法:

  1. 检查_by_ssh

这样,您将能够在远程服务器上执行远程命令,并且该命令的答案将发送到您的 icinga2 服务器。此解决方案在您的服务器之间强加 ssh 配置。

  1. 国家可再生能源计划

否则,您可以在远程服务器上安装 NRPE 并执行命令,并将其结果发送到您的 icinga2 服务器。

NRPE可以在windows或者linux上运行。

我认为这两种解决方案比在所有需要监督的服务器上安装 icinga2 作为卫星更简单。

相关内容