четверг, 20 апреля 2017 г.

Мониторинг MySQL нод кластера с балансировщика Haproxy (один из вариантов)

При включении на haproxy мониторинга состояния нод MySQL методом без имени пользователя, хосты в мониторинге будут в UP'е, но не долго, так как не осуществляется корректное закрытие сессии. При этом просто добавить пользователя (без пароля!!!) сходу не получится.
Предварительно необходимо внести изменения в структуру БД.

ALTER TABLE mysql.user MODIFY COLUMN `ssl_cipher` BLOB NULL;
ALTER TABLE mysql.user MODIFY COLUMN `x509_issuer` BLOB NULL;
ALTER TABLE mysql.user MODIFY COLUMN `x509_subject` BLOB NULL;
ALTER TABLE mysql.user MODIFY COLUMN `authentication_string` TEXT NULL;

после этих операций можно добавить нужного пользователя с указанием хостов кластера (имена FQDN), который будет проверять состояние сервиса MySQL

INSERT INTO user (Host,User) values ('ru1mysqlfr01.domain.local','mysqlcheck');
INSERT INTO user (Host,User) values ('ru1mysqlfr02.domain.local','mysqlcheck');
flush privileges;

правим конфиг haproxy. В результате получаем что-то вроде такого:
sudo vi /etc/haproxy/haproxy.cfg

global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats
listen ru1mysqlvip_220_3306
        bind *:3306
        mode tcp
        timeout client  10800s
        timeout server  10800s
        balance leastconn
        option mysql-check user mysqlcheck # Будет идти проверка
        default-server port 3307 inter 2s downinter 5s rise 3 fall 2 slowstart 60s maxconn 64 maxqueue 128 weight 100
        server ru1mysqlfr01 192.168.196.241:3307 check
        server ru1mysqlfr02 192.168.196.237:3307 check



Отдельно для мониторинга состояния сервисов:
listen stats :9000  # Listen on localhost:9000
mode http
stats enable  # Enable stats page
stats hide-version  # Hide HAProxy version
stats realm Haproxy\ Statistics  # Title text for popup window
stats uri /haproxy_stats  # Stats URI
stats auth login:password  # Authentication credentials

Комментариев нет:

Отправить комментарий