Com a versão 1.3.0, o keepalived incluiu uma interface DBus, que pode ser ativada com a opção enable_dbus no bloco global_defs do arquivo de configuração (no entanto, a interface deve ser ativada com a opção --enable-dbus build durante configure , o que pode não ser o caso, se você estiver usando um pacote binário.).
Você pode acessar a interface do DBus com qualquer cliente / biblioteca do DBus (por exemplo, dbus-send , gdbus , qdbus ). Estou usando o busctl do systemd como exemplo aqui, porque ele tem uma interface muito boa:
# busctl tree org.keepalived.Vrrp1
└─/org
└─/org/keepalived
└─/org/keepalived/Vrrp1
├─/org/keepalived/Vrrp1/Instance
│ └─/org/keepalived/Vrrp1/Instance/eth0
│ └─/org/keepalived/Vrrp1/Instance/eth0/1
│ └─/org/keepalived/Vrrp1/Instance/eth0/1/IPv4
└─/org/keepalived/Vrrp1/Vrrp
Duas interfaces estão disponíveis, o global org.keepalived.Vrrp1.Vrrp on /org/keepalived/Vrrp1/Vrrp :
# busctl introspect org.keepalived.Vrrp1 /org/keepalived/Vrrp1/Vrrp org.keepalived.Vrrp1.Vrrp
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.CreateInstance method ssuu - -
.DestroyInstance method s - -
.PrintData method - - -
.PrintStats method - - -
.ReloadConfig method - - -
.VrrpReloaded signal - - -
.VrrpStarted signal - - -
.VrrpStopped signal - - -
E para a instância VRRP foreach, a interface org.keepalived.Vrrp1.Instance nos caminhos de acordo com este modelo /org/keepalived/Vrrp1/Instance/<interface>/<virtual-router-id>/<ip-family> org.keepalived.Vrrp1.Instance . Para uma instância do IPv4 VRRP com o ID 1 on eth1 denominado my-instance , obtemos o seguinte:
# busctl introspect org.keepalived.Vrrp1 /org/keepalived/Vrrp1/Instance/eth0/1/IPv4 org.keepalived.Vrrp1.Instance
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.SendGarp method - - -
.Name property s "my-instance" emits-change
.State property (us) 2 "Master" emits-change
.VrrpStatusChange signal u - -
Para obter o estado dessa instância específica, podemos usar o seguinte comando
# busctl get-property org.keepalived.Vrrp1 /org/keepalived/Vrrp1/Instance/br_vrrp/67/IPv4 org.keepalived.Vrrp1.Instance State
(us) 2 "Master"
A propriedade retornada é um STRUCT, com o código de estado e o nome legível por humanos. Os estados são 0 "Init" , 1 "Backup" , 2 "Master" , 3 "Fault" , 4 "Goto master" e 98 "Goto fault" . Os últimos três estados são internos e oficiais RFC 2338 estados.
Se você estiver usando vários processos keepalived e definir a opção instance ou se você estiver usando o recurso de namespace de rede com a opção namespace , o prefixo do caminho será alterado em /org/keepalived/Vrrp1/<namespace>/<interface> .