HAproxy-status zeigt nach UNTEN
Ich habe setup MariaDB Galera cluster, das habe ich getestet und es funktioniert einwandfrei auf den folgenden Servern:
db1 192.169.0.1
db2 192.169.0.2
db3 192.169.0.3
Sind Sie alle laufen auf CentOS-6.5, und die MariaDB version 10.0
Mein Ziel war der Einsatz von HAproxy ein load balancing durchführen. Habe ich installiert und konfiguriert HAproxy auf einem separaten server
db4 192.168.0.4
ohne cluster-setup oder MariaDB installiert, nur HAproxy. Das problem ist, dass die HAproxy scheint nicht zu funktionieren ich.e, tut das load-balancing. Ihr beginnt ok und ich kann darauf zugreifen über das web-interface:
http://192.168.0.4:9000/haproxy
aber der status für die Server zeigt, dass Sie down sind, auch wenn Sie eigentlich auf Ihren jeweiligen Maschinen. Der HAproxy-config ist wie folgt:
global
log 127.0.0.1 local0 notice
user haproxy
group haproxy
defaults
log global
retries 2
timeout connect 1000
timeout server 5000
timeout client 5000
listen mariadb-cluster
bind 0.0.0.0:3306
mode tcp
option mysql-check user haproxy
balance roundrobin
server db1 192.168.0.1:3306 check
server db2 192.168.0.2:3306 check
server db4 192.168.0.3:3306 check
listen webinterface
bind 0.0.0.0:9000
mode http
stats enable
stats uri /haproxy
stats realm Strictly\ Private
stats auth admin:password
db1, db2, db3 und db4 werden nur Hostnamen für jeden server. Also wenn ich den Befehl ausführen #hostname auf dem ersten server, wird die Anzeige db1.
InformationsquelleAutor The Georgia | 2014-10-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dass Sie geprüft haben, die melden, wo Sie sehen können, verbindungen, die in und Wohlbefinden, oder nicht direkt an den Knoten/server-sollen Sie auch.
Ich weiß nicht, ob es war ein Tippfehler oder nicht, aber ich glaube, Sie haben enthalten db4 (die haproxy-Maschine) als Knoten, rechts? Es sollte db3)
Prüfen Sie außerdem, ob Sie Zugriff auf den port 3306 von HAproxy Maschine zu jedem db-Knoten
Wenn nicht, überprüfen Sie bitte, ob die haproxy-Benutzer, den Sie definiert haben, in die Prüfung mit einbezogen haben mysql-Berechtigungen. Wenn nicht, melden Sie sich zu einem Ihrer Knoten Server und:
(aus Sicherheitsgründen sollten Sie zurückhalten, die '%', um die IP-Adresse(N) wo HAproxy läuft)
Ich habe eine ähnliche Konfiguration, um deine, sondern auch die zusätzlichen Optionen für führende mit Knoten Gewicht und max verbindungen pro Knoten. Ich habe auch lieber mit "leastcon" statt "round robin", also bitte bewerten, wenn es passt Ihren Zweck.
haproxy.cfg
In MariaDB Website gibt es auch ein tutorial, das könnte auch helfen Sie bekommen durch: hier
InformationsquelleAutor bigux
Ich lief auch dieses Problem , und verbrachte fast einen Tag, nur um herauszufinden, dass HAPROXY hat 2 Modi der backend-balancing/Gesundheit überprüfen. Ebene 4 check arbeitet auf OSI-Schicht 4 Schicht 7 arbeitet auf app-Ebene. Ich war mit
option mysql-check
welche Prüfungen auf Ebene 7 und mussmysql-client
installiert werden, auf der HAPROXY server /Knoten. Ich habe nicht hatte keine Mysql-client-Paket auf HAPROXY-Maschine /container (docker). Dann konvertierte ich die option überprüfen, umoption tcp-check
es geklappt hat. Hier ist mein vollständiger code fürhaproxy.cfg
Schließlich behoben, indem Sie Sie auf Layer 4 Load balancing
Moredetails kann gesehen werden auf meinem blog -
HAProxy – Mysql cluster auf Docker
Tat Sie weitere tests. Für die Verwendung von mysql-check, meine Probleme war, dass ich nicht die leeren Kennwort für den haproxy_check Konto. Nach der Einstellung von Passwort, mysql-check funktioniert auch einwandfrei. Es lohnt sich, zu beachten, dass ich auch begegnet ein weiteres Problem mit Bezug auf die Replikation von mysql.in der Tabelle user, dass ich beim erstellen der haproxy_check Konto von einem Knoten, wird er nicht automatisch repliziert, um die restlichen Knoten. Es stellt sich heraus, dass ich verschiedene SQL-Anweisung für so tun, oder zumindest sicherzustellen, dass die account-Informationen existiert, die auf allen Knoten identisch. Als getestet werden die folgenden zwei Befehle sind "replizierbar":
1. create user: CREATE USER haproxy_check@'10.0.0.%'; 2. grant Privilegien: GRANT USAGE ON *.* ZU 'haproxy_check'@'10.0.0.%' GEKENNZEICHNET DURCH " WITH GRANT OPTION; FLUSH PRIVILEGES; BTW, ich bin mit MariaDB v10.1.19 mit HAProxy v1.5.14 auf CentOS 7.2.
InformationsquelleAutor vnextcoder
in meinem Fall war es SELinux , war die Verbindung verhindert.
InformationsquelleAutor Mawardy