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

haproxy не распознает службу mariadb

У меня есть один сервер haproxy (172.24.2.42), который перенаправляет на один сервер mariadb с ip 172.24.2.13. Затем я хотел заменить этот сервер другим сервером mariadb с IP 172.24.2.11, потому что на этом новом сервере больше места на жестком диске. Эти серверы - redhat.

Я даю вам haproxy.cfg

global
    log 127.0.0.1 local2
     maxconn 3000
     user haproxy
     group haproxy
     daemon

defaults
    log global
    mode http
    option  tcplog
    option  dontlognull
    option  redispatch
    timeout client 600000
    timeout connect 5000
    timeout server 600000
    retries 3
    maxconn 3000


listen db_cluster 0.0.0.0:1513
    mode tcp
    balance roundrobin
    option httpchk
    default-server port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s    maxconn 500 maxqueue 200
    server node-2 172.24.2.11:3306 check weight 200

Когда я перезапустил службу haproxy. Было показано следующее сообщение:

Message from syslogd@localhost at Mar  2 19:25:59 ...
 haproxy[17163]: proxy db_cluster has no server available!

Проверка var / log / haproxy.log показывает:

Mar  2 19:25:57 localhost haproxy[17158]: Server db_cluster/node-2 is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.

Даже когда использую шпатлевку на 172.24.2.42. Я делаю:

mysql -uuser1 -p --host=172.24.2.13 ## it logins
mysql -uuser1 -p --host=172.24.2.11 ## it logins

Даже я сделал:

nmap 172.24.2.11
PORT     STATE  SERVICE
22/tcp   open   ssh
3306/tcp open   mysql
4567/tcp open   tram

Порт 3306 включен брандмауэром, а getenforce показывает отключено

Итак, что я делаю, чтобы это работало, я добавил в haproxy.cfg:

server node-4 172.24.2.13:3306 check weight 20

Затем я перезапустил службу haproxy, и mariadb 172.24.2.13 был распознан haproxy. Хотя идея не в этом, потому что сервер 172.24.2.11 необходимо заменить на сервер 172.24.2.13.

Я не знаю, что порт 9200 имеет какое-то отношение.

Чего не хватает?

Если вы не знаете, для чего используется порт по умолчанию 9200, я бы рекомендовал удалить его или изменить на 3306 (что вам и нужно). Кроме того, у вас есть опечатка в строке сервера по умолчанию: lowstart 60s должен быть slowstart 60s.

Ошибка, которую вы получаете, означает очень быстрый сбой, то есть отсутствие маршрута к серверу. У вас есть несколько IP-адресов на балансировщике нагрузки? Может быть, в качестве источника проверки используется неправильный?

Я бы упростил конфигурацию и попробовал еще раз.