Objetivo
Demonstrar como efetuar a integração do sistema de alertas Pagerdutty com o OpMon.
Público-alvo
Administradores de OpMon que desejam a integração para o recebimento de alertas através da plataforma Pagerduty.
Pré-requisitos
- Possuir acesso de administrador na plataforma Pagerduty.
- O servidor deve possuir o Python na versão 2.7 ou superior
Configurando o token de integração
Acesse o site do Pagerduty e faça login com a sua conta de administrador. Para criarmos um token de integração clique em “Configuration” e logo após no submódulo “Services”.
Na página seguinte clique em “Add Services”.
No campo “Integration Type” marque a opção “Nagios”. Não esqueça de adicionar um nome e uma descrição para esta integração, por fim clique em “Add service” no final da página.
Na próxima tela será apresentando o token de integração, guarde esta chave, pois brevemente o utilizaremos na configuração dos comandos de notificações.
Instalando o agente no OpMon
Para que possamos efetuar a instalação do agente no OpMon, você precisa de acesso root na console. Pelo terminal configure o repositório abaixo e depois faça o download dos pacotes, conforme exemplo:
[root@opmon ~]#sh -c 'cat >/etc/yum.repos.d/pdagent.repo <<EOF
[pdagent]
name=PDAgent
baseurl=https://packages.pagerduty.com/pdagent/rpm
enabled=1
gpgcheck=1
gpgkey=https://packages.pagerduty.com/GPG-KEY-RPM-pagerduty
EOF'
[root@opmon ~]# yum install pdagent pdagent-integrations -y
Validar a execução do serviço pdagent no OpMon, conforme abaixo:
[root@opmon ~]# /etc/init.d/pdagent status pdagent (pid 25190) is running.
IMPORTANTE!
Caso ocorra o seguinte erro ao iniciar o serviço pdagent no OpMon, semelhante ao erro abaixo:
[root@opmon ~]# /etc/init.d/pdagent start Starting: pdagentTraceback (most recent call last): File "/usr/share/pdagent/bin/pdagentd.py", line 75, in <module> import pdagent.config ImportError: No module named 'pdagent' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/share/pdagent/bin/pdagentd.py", line 81, in <module> import pdagent.config ImportError: No module named 'pdagent' [root@opmondemo ~]#
Realize o seguinte procedimento:
[root@opmon ~]# cp -a /usr/lib/python2.7/site-packages/pdagent /usr/share/pdagent/bin/
E após inicie o serviço com o seguinte comando:
[root@opmon~]# /etc/init.d/pdagent restart Stopping: pdagent. Starting: pdagent.
Valide se o serviço está rodando:
[root@opmon~]# ps -ef | grep pdagent pdagent 24384 1 0 20:06 ? 00:00:00 /usr/bin//python3.4 /usr/share/pdagent/bin/pdagentd.py root 24777 25824 0 20:06 pts/0 00:00:00 grep pdagent
O log do serviço fica em /var/log/pdagent/pdagentd.log, para acompanhamento, caso necessário.
Criando o comando de notificação no OpMon
Clique no módulo “Ferramentas“, logo após no submódulo “Configurações“, na área de atalhos (localizada no lado esquerdo da tela) clique em “Commands” e em seguida, clique em “Add A New Command“, veja:
Insira um nome para o comando de notificação e uma descrição, conforme abaixo:
Agora precisamos incluir em “Command Line” os parâmetros do plugin adjunto do token de integração. Serão criados dois comandos de notificações, um para host e outro para serviços.
Host
/usr/share/pdagent-integrations/bin/pd-nagios -n host -k my_token -t "$NOTIFICATIONTYPE$" -f HOSTNAME="$HOSTNAME$" -f HOSTSTATE="$HOSTSTATE$" -f HOSTDISPLAYNAME="$HOSTDISPLAYNAME$" -f HOSTPROBLEMID="$HOSTPROBLEMID$"
Serviço
/usr/share/pdagent-integrations/bin/pd-nagios -n service -k my_token -t "$NOTIFICATIONTYPE$" -f SERVICEDESC="$SERVICEDESC$" -f SERVICESTATE="$SERVICESTATE$" -f HOSTNAME="$HOSTNAME$" -f HOSTDISPLAYNAME="$HOSTDISPLAYNAME$" -f SERVICEDISPLAYNAME="$SERVICEDISPLAYNAME$" -f SERVICEPROBLEMID="$SERVICEPROBLEMID$" -f SERVICEOUTPUT="$SERVICEOUTPUT$"
Após a configuração em “Command Line” clique em “Create Command”, conforme abaixo:
Atenção: reproduza o mesmo processo com a finalidade de criar o comando de notificações para serviços.
Configurando o perfil do usuário
Clique no módulo “Ferramentas“, logo após no submódulo “Configurações“, na área de atalhos (localizada no lado esquerdo da tela) clique em “Contacts” e em seguida, clique no usuário para configurar os comandos de notificações, veja:
Em “Add New Host Notification Command” selecione o comando “notify-host-by-pagerduty” e depois clique em “Add Command”.
Em “Service Notification Command” selecione o comando “notify-service-by-pagerduty” e depois clique em “Add Command”.
Para que as configurações sejam aplicadas de forma efetiva, aplique um export full no OpMon, feito isso a integração entre OpMon e Pagerduty está pronta.