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>
.