Монитор управляемого MySQL Server от Icinga
Я использую управляемый Azure MySQL-сервер для размещения своих БД.
Я хочу контролировать с помощью тестового соединения с одной из БД, работает ли сервер или нет. Как я могу добавить эту проверку к моей службе Icinga2?
PS - Мне известна команда check_mysql, но как ее использовать? Любой рабочий пример будет очень полезным. Спасибо
1 ответ
Минимум, который вам нужен:
check_mysql [-d database][-H host][-P port][-u user][-p password]
Текст для этого в Icinga2:
object CheckCommand "mysql" {
import "plugin-check-command"
command = [ PluginDir + "/check_mysql" ]
timeout = 1m
arguments += {
"-C" = "$mysql_cacert$"
"-D" = "$mysql_cadir$"
"-H" = "$mysql_hostname$"
"-L" = "$mysql_ciphers$"
"-P" = "$mysql_port$"
"-S" = {
set_if = "$mysql_check_slave$"
}
"-a" = "$mysql_cert$"
"-c" = "$mysql_critical$"
"-d" = "$mysql_database$"
"-f" = "$mysql_file$"
"-g" = "$mysql_group$"
"-k" = "$mysql_key$"
"-l" = {
set_if = "$mysql_ssl$"
}
"-n" = {
set_if = "$mysql_ignore_auth$"
}
"-p" = "$mysql_password$"
"-s" = "$mysql_socket$"
"-u" = "$mysql_username$"
"-w" = "$mysql_warning$"
}
vars.check_address = {
type = "Function"
}
vars.check_ipv4 = false
vars.check_ipv6 = false
vars.mysql_hostname = "$check_address$"
}
Таким образом, в вашем определении Host вы должны иметь:
vars.mysql_port = [port]
vars.mysql_database = [database]
vars.mysql_password = [password]
vars.mysql_username = [user]
vars.mysql_critical = [critical threshold]
vars.mysql_warning = [warning threshold]
Если вы используете Icinga2 Director, это намного проще. Вы можете просто сделать клон команды и создать свои собственные поля.