0

我正在使用 Icinga2 来监控远程主机上的 Mysql 服务器。现在,我正在尝试配置一个mysql_check.

这是文件service.conf

apply Service "mysql8" {  
  import "generic-service"
 check_command = "mysql"

 vars.mysql_mode = "uptime"
 vars.mysql_hostname = "remote-host"
 vars.mysql_port = "3306"
 vars.mysql_username = "username"
 vars.myql_password = "password"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.mysql == true && host.vars.client_endpoint
}

这是文件host.conf

object Host "remote-host" {
import "generic-host"
address = "xxx.xxx.xx.xxx"
vars.os = "linux"
vars.mysql = true
host.vars.client_endpoint="remote-host"

当我尝试check_MySQL来自 Icinga2 时,出现以下错误:

无法连接到“远程主机”上的 MySQL 服务器 (111)

我能做些什么来解决check_MySQL远程主机的问题。

谢谢。

4

1 回答 1

0

很高兴在这里找到你。

我认为您的 mysql 服务器不允许远程访问。

在这种情况下 :

  1. 打开命令提示符并运行以下命令以打开 SSH 隧道。

    $ ssh user@example.com -L 3307:127.0.0.1:3306 -N 注意。替换user@example.com为您的 ssh 用户名和您的 ssh 主机名或 IP 地址。

-N : 转发端口

-L :将本地端口绑定到远程主机端口 2. 尝试与您的 mysql-client 连接

$ mysql --protocol TCP -h localhost -u YOUR_MYSQL_USER -P 3307 -p

这是工作?所以, :)

  1. 只需vars.mysql_port=3307在您的 icinga 服务配置中替换即可。

伟大的!好东西!不 ?

于 2019-03-15T21:29:18.533 回答