Linux

獲取主 VRRP 路由器 Keepalived 的狀態

  • April 20, 2020

我有兩個 Linux 路由器 (RHEL 7) 參與了由 keepalived 軟體包版本 2.0.20 提供的冗餘 VRRP 配置。這兩個路由器曾經執行 RHEL 6 和 keepalived 版本 2.0.16,但我們最近將它​​們升級到上述版本。

在我們升級之前,我有一個可以在備份路由器上執行的腳本,它會導致路由器接管為主路由器。該腳本將收集目前主路由器的優先級值,然後將其自身的優先級提高 1,然後重新啟動 keepalived 服務。這將導致備份路由器接管為主。

該腳本將通過發出以下命令來收集目前主路由器的值:

kill -s $(keepalived --signum=DATA) $(cat /var/run/keepalived.pid)
vrrpPriority='more /tmp/keepalived.data | grep -m1 "Master priority" | awk '{print $4}''

現在我們已經升級了,看起來第一個命令不再做任何事情了。該命令似乎執行沒有錯誤,但我從未在 /tmp/keepalived.data 中獲得生成的文件。所以第二個命令失敗,因為該文件不存在。

是否有更好或不同的方法來收集目前主路由器的優先級值?

另一個區別是,當我們在 RHEL 6 中執行時,keepalived 作為新貴腳本執行,而今天 keepalived 作為 systemd 服務執行。keepalived 的所有其他方面似乎工作正常。

我已經能夠得到這個工作。在故障排除過程中,我發現 selinux 阻止 Keepalived 將其狀態轉儲到 /tmp 目錄。在解決了 selinux 問題並創建了所需的 selinux 策略後,它開始按預期工作。

引用自:https://serverfault.com/questions/1006563