1

Ich versuche einen pgpool-Server auf dem Ubuntu-Server einzurichten und folge diesem Link: pgpool-II Tutorial [ Watchdog ].PostgreSQL - Fehler beim Starten der Delegierten-IP-Adresse auf pgpool 2

Aber wenn ich einen pgpool-Dienst starten, wird die delegierte IP nicht gestartet.

Ich habe in einer Protokolldatei auf Syslog gesehen und einen Fehler wie folgt erhalten.

Oct 25 08:46:25 pgpool-1 pgpool[1647]: [8-2] 2017-10-25 08:46:25: pid 1647: DETAIL: Host:"172.16.0.42" WD Port:9000 pgpool-II port:5432 
    Oct 25 08:46:25 pgpool-1 pgpool: SIOCSIFADDR: Operation not permitted 
    Oct 25 08:46:25 pgpool-1 pgpool: SIOCSIFFLAGS: Operation not permitted 
    Oct 25 08:46:25 pgpool-1 pgpool: SIOCSIFNETMASK: Operation not permitted 
    Oct 25 08:46:25 pgpool-1 pgpool[1648]: [18-1] 2017-10-25 08:46:25: pid 1648: LOG: failed to acquire the delegate IP address 
    Oct 25 08:46:25 pgpool-1 pgpool[1648]: [18-2] 2017-10-25 08:46:25: pid 1648: DETAIL: 'if_up_cmd' failed 
    Oct 25 08:46:25 pgpool-1 pgpool[1648]: [19-1] 2017-10-25 08:46:25: pid 1648: WARNING: watchdog escalation failed to acquire delegate IP 

Ich benutze Ubuntu 14.04 mit pgpool2 Version 3.6.6-1 und Watchdog-Version 5,31-1.

Und ich habe auf pgpool.conf bei virtuellen IP-Einstellung wie folgt konfiguriert.

# - Virtual IP control Setting - 
delegate_IP = '172.16.0.201' 
if_cmd_path = '/sbin' 
if_up_cmd = 'ifconfig eth0:0 inet $_IP_$ netmask 255.255.0.0' 
if_down_cmd = 'ifconfig eth0:0 down' 
arping_path = '/usr/sbin' 
arping_cmd = 'arping -U $_IP_$ -w 1' 

Irgendwelche Vorschläge dafür? Danke für jede Hilfe.

Antwort

0

Sieht aus wie Benutzer, der ausgeführt wird, hat keine Berechtigung, ifconfig zu verwenden. Haben Sie those steps aus dem Tutorial verfolgt?

setuid- Konfiguration

In Watchdog-Prozess wird Root-Rechte erforderlich virtuelle IP contol. Sie könnten pgpool-II als Root-Benutzer starten. In diesem Tutorial muss Apache jedoch pgpool als Apache-Benutzer starten und die virtuelle IP-Adresse starten, da wir pgpoolAdmin verwenden. Zu diesem Zweck setzen wir if_config und arping. Wir wollen auch nicht, dass ein anderer Benutzer als Apache aus Sicherheitsgründen auf die Befehle zugreift. Führen Sie die folgenden Befehle auf jedem von osspc19 und osspc20 aus (erfordert Root-Berechtigung).

Zuerst, machen Sie ein Verzeichnis für die Aufnahme von ipconfig und arping, die setuid ist. Der Pfad wird in ifconif_path und arping_path angegeben. in dieses Tutorial, das ist/home/apache/sbin. Geben Sie dann dem Apache-Benutzer die Ausführungsberechtigung .

$ su - 
# mkdir -p /home/apache/sbin 
# chown apache:apache /home/apache/sbin 
# chmod 700 /home/apache/sbin 

Als nächstes kopieren Sie das Original ifconfig und arping in das Verzeichnis und dann Satz auf diese setuid.

# cp /sbin/ifconfig /home/apache/sbin 
# cp /use/sbin/arping /home/apache/sbin 
# chmod 4755 /home/apache/sbin/ifconfig 
# chmod 4755 /home/apache/sbin/arping 

Bitte beachten Sie, dass das oben Erläuterte nur für Lernzwecke verwendet werden sollte. In der realen Welt sollten Sie besser Setuid-Wrapper-Programme erstellen, um ifconfig und arping auszuführen. Dies ist für Ihre Übung übrig.

+0

Ich versuche zu tun, wie dies erneut vorgeht, aber ein gleiches Ergebnis erhalten. –

0

(Anmerkung: diese Antwort im Fall kann Ihnen helfen, pgpool-II-Server mit Watchdog in Docker-Container laufen)

Ich habe versucht, die Einrichtung pgpool-II-Server mit Watchdog in Docker-Container heute, und ich habe fast der gleiche Fehler (obwohl ich set the SUID bit tat und versuchte sogar pgpool-II als root-Benutzer ausgeführt wird):

SIOCSIFADDR: Operation not permitted 
SIOCSIFFLAGS: Operation not permitted 
SIOCSIFNETMASK: Operation not permitted 
pid 88: LOG: failed to acquire the delegate IP address 
pid 88: DETAIL: 'if_up_cmd' failed 
pid 88: WARNING: watchdog escalation failed to acquire delegate IP 

Später fand ich, dass es war, weil der Behälter nicht das Privileg haben, ihre Netzwerkkonfigurationen zu ändern, standardmäßig von Entwurf.

Ich ließ meine pgpool-II Docker dann Container im privilegierten Modus wie folgt:

ist
pgpool1: 
    privileged: true 
    image: postdock/pgpool:latest-pgpool36 
    ... 

Der Fehler verschwunden und die virtuelle IP korrekt eingerichtet ist.

Verwandte Themen