Монитор управляемого 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, это намного проще. Вы можете просто сделать клон команды и создать свои собственные поля.

Другие вопросы по тегам