Ubuntu 24.04
Sponsored Link

Keepalived : स्क्रिप्ट के साथ मॉनिटर करें2024/07/23

 

Keepalived द्वारा स्क्रिप्ट के साथ प्रक्रियाओं या सेवाओं और कार्यक्रमों की अन्य स्थिति की निगरानी करना संभव है।

यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है।

                            VIP:10.0.0.30
+----------------------+          |          +----------------------+
|  [node01.srv.world]  |10.0.0.51 | 10.0.0.52|  [node02.srv.world]  |
|     Keepalived#1     +----------+----------+     Keepalived#2     |
|                      |                     |                      |
+----------------------+                     +----------------------+

[1]

बुनियादी Keepalived सेटिंग्स कॉन्फ़िगर करें, यहां देखें।

[2] उदाहरण के लिए, बुनियादी Keepalived सेटिंग्स के अलावा, HAProxy सेवा और HTTP पोर्ट की निगरानी के लिए सेटिंग्स जोड़ें।
root@node01:~#
vi /etc/keepalived/keepalived.conf
global_defs {
    router_id node01
    notification_email {
        root@localhost
    }
    notification_email_from root@node01.srv.world
    smtp_server localhost
    smtp_connect_timeout 30
    # जोड़ना
    enable_script_security
    # एक उपयोगकर्ता निर्दिष्ट करें जो स्क्रिप्ट चलाता है
    # सुरक्षा कारणों से, इसे root का उपयोग नहीं करना चाहिए
    script_user root
}

# हैप्रोक्सी सेवा के लिए मॉनिटरिंग सेटिंग जोड़ें
# [script] तर्क के लिए कोई भी आदेश या अपनी मूल स्क्रिप्ट सेट करना संभव है
vrrp_script track_haproxy {
    script "systemctl is-active haproxy"
    # उपरोक्त स्क्रिप्ट को चलाने के लिए अंतराल (sec)
    interval 5
    # यदि स्क्रिप्ट 4 बार गैर-शून्य लौटती है, तो FAULT स्थिति दर्ज करें
    fall 4
    # यदि स्क्रिप्ट 2 बार शून्य लौटाती है, तो FAULT स्थिति से बाहर निकलें
    rise 2
}

# HTTP पोर्ट के लिए मॉनिटरिंग सेटिंग जोड़ें
vrrp_script track_http_port {
    script "nc -zv localhost 80"
    interval 5
    fall 4
    rise 2
}

vrrp_instance VRRP1 {
    state MASTER
    # nopreempt
    interface enp1s0
    virtual_router_id 101
    priority 200
    advert_int 1
    virtual_ipaddress {
        10.0.0.30/24
    }
    # जोड़ना
    track_script {
        track_haproxy
        track_http_port
    }
    smtp_alert
}

root@node01:~#
systemctl restart keepalived
[3] ठीक है। HAProxy डाउन होने पर फ़ेलओवर और फ़ेलबैक सत्यापित करें।
# प्राथमिक नोड

root@node01:~#
ip address show enp1s0

2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:1e:27:13 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.51/24 brd 10.0.0.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet 10.0.0.30/24 scope global secondary enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe1e:2713/64 scope link
       valid_lft forever preferred_lft forever

root@node01:~#
systemctl stop haproxy

root@node01:~#
systemctl is-active haproxy

inactive
root@node01:~#
echo $?

3
root@node01:~#
nc -zv localhost 80

nc: connect to localhost (127.0.0.1) port 80 (tcp) failed: Connection refused
root@node01:~#
echo $?

1
root@node01:~#
ip address show enp1s0

2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:1e:27:13 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.51/24 brd 10.0.0.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe1e:2713/64 scope link
       valid_lft forever preferred_lft forever

root@node01:~#
ssh ubuntu@node02 "ip address show enp1s0"

ubuntu@node02's password:
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:4c:63:11 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.52/24 brd 10.0.0.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet 10.0.0.30/24 scope global secondary enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe4c:6311/64 scope link
       valid_lft forever preferred_lft forever
मिलान सामग्री