Назад | Перейти на главную страницу

Мониторинг репликации MySQL через службу HAProxy Xinetd

Я настроил многопользовательскую репликацию MySQL с HAProxy в качестве балансировщика нагрузки, следуя руководству Алекса Вильямса, которое можно найти здесь; http://www.alexwilliams.ca/blog/2009/08/10/using-haproxy-for-mysql-failover-and-redundancy/

Я использую средство проверки статуса, найденное здесь; http://sysbible.org/2008/12/04/having-haproxy-check-mysql-status-through-a-xinetd-script/

а также средство проверки репликации, которое можно найти здесь; http://forge.mysql.com/tools/tool.php?id=6

Средство проверки статуса Mysql отлично работает, когда в моем файле конфигурации HAProxy есть следующая строка:

server db02 192.168.15.119:3306 check port 9200 inter 1s weight 1 rise 1 fall 1

Но когда я пытаюсь протестировать сценарий проверки репликации с помощью этой строки:

server db02 192.168.15.119:3306 check port 9201 inter 1s weight 1 rise 1 fall 1

и пытаюсь подключиться через прокси, я получаю сбой:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication  packet', system error: 0

Когда я telnet с машины HAProxy на этот порт, он работает нормально:

# telnet 192.168.15.119 9201

Trying 192.168.15.119...
Connected to 192.168.15.119.
Escape character is '^]'.
Replication slave is running
Connection closed by foreign host.

Есть ли причина, по которой это не сработает, пока я все еще могу проверить это через telnet? Это ограничение HAProxy? Я бы предположил, что нет, поскольку кажется, что это то, что другие использовали для своих установок. Это проблема конфигурации или разрешений? Я не понимаю, как один из них будет работать и позволит мне нормально подключиться, а другой - нет.

Ваш сценарий репликации, запускаемый xinetd, должен возвращать HTTP 200 или 503, поэтому HAProxy может определить работоспособность репликации MySQL.