Capítulo 26. Acionamento de scripts para eventos de cluster
Um cluster Pacemaker é um sistema acionado por eventos, onde um evento pode ser uma falha de recurso ou nó, uma mudança de configuração, ou um recurso iniciando ou parando. Você pode configurar os alertas de cluster do Pacemaker para tomar alguma ação externa quando um evento de cluster ocorre por meio de agentes de alerta, que são programas externos que o cluster chama da mesma forma que o cluster chama os agentes de recursos para lidar com a configuração e operação dos recursos.
O cluster passa informações sobre o evento para o agente por meio de variáveis ambientais. Os agentes podem fazer qualquer coisa com estas informações, como enviar uma mensagem de e-mail ou log para um arquivo ou atualizar um sistema de monitoramento.
-
Pacemaker fornece vários agentes de alerta de amostra, que são instalados em
/usr/share/pacemaker/alerts
por padrão. Estes exemplos de scripts podem ser copiados e usados como estão, ou podem ser usados como modelos a serem editados de acordo com seus propósitos. Consulte o código fonte dos agentes de amostra para o conjunto completo de atributos que eles suportam. - Se as amostras de agentes de alerta não atenderem às suas necessidades, você pode escrever seus próprios agentes de alerta para que um alerta de Pacemaker seja chamado.
26.1. Instalação e configuração de amostras de agentes de alerta
Ao utilizar um dos agentes de alerta de amostra, você deve revisar o roteiro para garantir que ele se adapte às suas necessidades. Estes agentes de amostra são fornecidos como ponto de partida para scripts personalizados para ambientes de cluster específicos. Note que enquanto a Red Hat suporta as interfaces que os scripts de agentes de alerta usam para se comunicar com o Pacemaker, a Red Hat não fornece suporte para os agentes personalizados em si.
Para utilizar um dos agentes de alerta de amostra, você deve instalar o agente em cada nó do aglomerado. Por exemplo, o seguinte comando instala o script alert_file.sh.sample
como alert_file.sh
.
# install --mode=0755 /usr/share/pacemaker/alerts/alert_file.sh.sample /var/lib/pacemaker/alert_file.sh
Após ter instalado o roteiro, você pode criar um alerta que utiliza o roteiro.
O exemplo a seguir configura um alerta que utiliza o agente de alerta alert_file.sh
instalado para registrar eventos em um arquivo. Os agentes de alerta funcionam como o usuário hacluster
, que tem um conjunto mínimo de permissões.
Este exemplo cria o arquivo de registro pcmk_alert_file.log
que será usado para registrar os eventos. Ele então cria o agente de alerta e adiciona o caminho para o arquivo de registro como seu destinatário.
#touch /var/log/pcmk_alert_file.log
#chown hacluster:haclient /var/log/pcmk_alert_file.log
#chmod 600 /var/log/pcmk_alert_file.log
#pcs alert create id=alert_file description="Log events to a file." path=/var/lib/pacemaker/alert_file.sh
#pcs alert recipient add alert_file id=my-alert_logfile value=/var/log/pcmk_alert_file.log
O seguinte exemplo instala o script alert_snmp.sh.sample
como alert_snmp.sh
e configura um alerta que usa o agente de alerta alert_snmp.sh
instalado para enviar eventos de cluster como armadilhas SNMP. Por padrão, o script enviará todos os eventos, exceto as chamadas de monitoramento bem sucedidas para o servidor SNMP. Este exemplo configura o formato de timestamp como uma meta opção. Após configurar o alerta, este exemplo configura um destinatário para o alerta e exibe a configuração do alerta.
#install --mode=0755 /usr/share/pacemaker/alerts/alert_snmp.sh.sample /var/lib/pacemaker/alert_snmp.sh
#pcs alert create id=snmp_alert path=/var/lib/pacemaker/alert_snmp.sh meta timestamp-format="%Y-%m-%d,%H:%M:%S.%01N"
#pcs alert recipient add snmp_alert value=192.168.1.2
#pcs alert
Alerts: Alert: snmp_alert (path=/var/lib/pacemaker/alert_snmp.sh) Meta options: timestamp-format=%Y-%m-%d,%H:%M:%S.%01N. Recipients: Recipient: snmp_alert-recipient (value=192.168.1.2)
O exemplo seguinte instala o agente alert_smtp.sh
e depois configura um alerta que usa o agente de alerta instalado para enviar eventos de cluster como mensagens de e-mail. Após configurar o alerta, este exemplo configura um destinatário e exibe a configuração do alerta.
#install --mode=0755 /usr/share/pacemaker/alerts/alert_smtp.sh.sample /var/lib/pacemaker/alert_smtp.sh
#pcs alert create id=smtp_alert path=/var/lib/pacemaker/alert_smtp.sh options email_sender=donotreply@example.com
#pcs alert recipient add smtp_alert value=admin@example.com
#pcs alert
Alerts: Alert: smtp_alert (path=/var/lib/pacemaker/alert_smtp.sh) Options: email_sender=donotreply@example.com Recipients: Recipient: smtp_alert-recipient (value=admin@example.com)