Keepalived : अधिसूचना स्क्रिप्ट सेट करें2023/10/11 |
|
अधिसूचना स्क्रिप्ट सेट करने के लिए, 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] | |
| [2] | उदाहरण के लिए, बुनियादी Keepalived सेटिंग्स के अलावा, अधिसूचना स्क्रिप्ट सेट करें। |
# नया निर्माण #!/bin/bash TYPE=$1 NAME=$2 ENDSTATE=$3 MASTER_STATE () { # जब Keepalived MASTER स्थिति में प्रवेश करता है तो कोई भी कार्रवाई यहां लिखें /usr/bin/echo "MASTER state for VRRP ${TYPE} ${NAME}" > /tmp/keepalive.stat } BACKUP_STATE () { # जब Keepalived BACKUP स्थिति में प्रवेश करता है तो कोई भी कार्रवाई यहां लिखें /usr/bin/echo "BACKUP state for VRRP ${TYPE} ${NAME}" > /tmp/keepalive.stat } FAULT_STATE () { # जब Keepalived FAULT स्थिति में प्रवेश करता है तो कोई भी कार्रवाई यहां लिखें /usr/bin/echo "FAULT state for VRRP ${TYPE} ${NAME}" > /tmp/keepalive.stat } case $ENDSTATE in "MASTER") MASTER_STATE exit 0 ;; "BACKUP") BACKUP_STATE exit 0 ;; "FAULT") FAULT_STATE exit 0 ;; *) echo "${ENDSTATE} is unknown state for VRRP ${TYPE} ${NAME}" exit 1 ;; esac
root@node01:~#
chmod 755 /etc/keepalived/notify.sh
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
}
vrrp_instance VRRP1 {
state BACKUP
nopreempt
interface enp1s0
virtual_router_id 101
priority 200
advert_int 1
virtual_ipaddress {
10.0.0.30/24
}
smtp_alert
# जोड़ना
# [notify] अनुभाग के लिए स्क्रिप्ट के लिए तर्क निर्दिष्ट करना असंभव है
# [notify] के लिए, कुछ तर्क निम्नानुसार स्वचालित रूप से जोड़े जाते हैं
# notify script.sh (INSTANCE|GROUP) (instance name) (ENDSTATE) (priority)
notify /etc/keepalived/notify.sh
# निम्नानुसार निर्दिष्ट करना भी संभव है
# यहां तर्क निर्दिष्ट करना संभव है
# notify_master "script.sh arg1 arg2 ..."
# notify_backup "script.sh arg1 arg2 ..."
# notify_fault "script.sh arg1 arg2 ..."
}
root@node01:~# systemctl restart keepalived
|
| [3] | ठीक है। जब Keepalived की स्थिति बदली जाएगी तो अधिसूचना स्क्रिप्ट के लिए क्रियाओं को सत्यापित करें। |
|
root@node01:~#
root@node01:~# systemctl restart keepalived
cat /tmp/keepalive.stat BACKUP state for VRRP INSTANCE VRRP1 |
| Sponsored Link |
|
|