{"id":802,"date":"2014-04-16T00:30:15","date_gmt":"2014-04-16T03:30:15","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=802"},"modified":"2014-04-15T20:22:07","modified_gmt":"2014-04-15T23:22:07","slug":"nagios-enviando-alertas-via-whatsapp","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=802","title":{"rendered":"Nagios enviando alertas via WhatsAPP"},"content":{"rendered":"<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td colspan=\"2\"><b>Requisitos<\/b><\/p>\n<div>1. Servidor\u00a0<a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">Linux<\/a>\u00a0Rodando o Nagios:<\/p>\n<p>Testado em CentOS 5.5 e 6.4 x86_64. No entanto, nada impede de ser implementado em outras distros.<\/p>\n<p>2. yowsup:<\/p>\n<p>Este \u00e9 o &#8216;cara&#8217; deste artigo.<\/p>\n<p>O que \u00e9: escrito em Python, \u00e9 uma Interface de Linha de Comando utilizada para interagir com o\u00a0<em>WhatsAPP<\/em>, para ser mais claro, \u00e9 um WhatsAPP via linha de comando. Dentre todas as funcionalidades deste, usaremos apenas 3, vistas mais adiante.<\/p>\n<p>3. Um n\u00famero\/CHIP:<\/p>\n<p>Neste caso, um n\u00famero de Celular. Este ser\u00e1 respons\u00e1vel por registrar-se junto aos servidores do WhatsAPP e enviar as mensagens de alertas.<\/p>\n<p>Obs: use um n\u00famero\/chip apenas para esta fun\u00e7\u00e3o. Se registrado posteriormente, via Smartphone, por exemplo, a aplica\u00e7\u00e3o deixar\u00e1 de funcionar. Os servidores do WhatsAPP s\u00f3 permitem a utiliza\u00e7\u00e3o\/registro em um \u00fanico equipamento por vez.<\/p>\n<p>4. Depend\u00eancias:<\/p>\n<ul>\n<li>python 2.6 ou superior (python26)<\/li>\n<li>python26-libs<\/li>\n<li>python26-argparse<\/li>\n<li>python26-dateutil<\/li>\n<\/ul>\n<p>Obs: estou usando CentOS.<\/p>\n<p>* Importante: este artigo n\u00e3o aborda a instala\u00e7\u00e3o de um servidor\u00a0<em>Nagios<\/em>. Sendo assim, partimos do principio de que voc\u00ea j\u00e1 tem um ambiente com o Nagios funcionando.\u00a0<!--more--><\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Instala\u00e7\u00e3o<\/b><\/p>\n<div>\n<h1>yowsup<\/h1>\n<p>1. Instalando as depend\u00eancias<\/p>\n<p><strong># yum install python26 python26-libs python26-argparse python26-dateutil<\/strong><\/p>\n<p>Obs: caso os pacotes n\u00e3o estejam disponiveis, tente instalar algum reposit\u00f3rio, como: epel, remi, rpmforge, etc.<\/p>\n<p>2. Baixando o yowsup:<\/p>\n<p><strong># cd \/opt<br \/>\n# wget<\/strong>\u00a0<a href=\"https:\/\/github.com\/tgalal\/yowsup\/archive\/yowsup-master.zip%20--no-check-certificate\">https:\/\/github.com\/tgalal\/yowsup\/archive\/yowsup-master.zip &#8211;no-check-certificate<\/a><br \/>\n<strong># unzip yowsup-master.zip<\/strong><\/p>\n<p>3. Configurando o yowsup:<\/p>\n<p><strong># cd yowsup-master\/src<br \/>\n# chmod +x yowsup-cli<br \/>\n# cp config.example zapzap.config<\/strong><br \/>\n<sub>\u00a0cc=55\u00a0\u00a0\u00a0\u00a0#c\u00f3digo\u00a0do\u00a0Pa\u00eds(BR)<br \/>\nphone=55+DDD+NUMERO\u00a0\u00a0\u00a0\u00a0#Exemplo\u00a0559182820000<br \/>\nid=Nagios\u00a0Alerta<br \/>\npassword=VAMOS\u00a0REQUISITAR\u00a0<\/sub><\/p>\n<p>4. Registrando o N\u00famero:<\/p>\n<p><strong># .\/yowsup-cli -r sms -c zapzap.config<\/strong><br \/>\n<sub>\u00a0status:\u00a0sent<br \/>\nretry_after:\u00a03605<br \/>\nlength:\u00a06<br \/>\nmethod:\u00a0sms\u00a0<\/sub><\/p>\n<p>Onde:<\/p>\n<ul>\n<li><span>-r<\/span>,\u00a0<span>&#8211;requestcode<\/span>\u00a0:: solicita o c\u00f3digo de registro.<\/li>\n<li><span>sms<\/span>\u00a0:: recebe uma mensagem de texto com o c\u00f3digo de registro.<\/li>\n<li><span>-c<\/span>,\u00a0<span>&#8211;config<\/span>\u00a0:: arquivo de configura\u00e7\u00e3o que cont\u00e9m o n\u00famero do WhatsAPP.<\/li>\n<\/ul>\n<p>Em seguida, ser\u00e1 recebido um sms contendo o c\u00f3digo de registro.<\/p>\n<p>4.1 Ativando o registro:<\/p>\n<p><strong># .\/yowsup-cli -R 123-456 -c zapzap.config<\/strong><br \/>\n<sub>\u00a0status:\u00a0ok<br \/>\nkind:\u00a0free<br \/>\npw:\u00a0aGGVSOGy6+OsMl0Ctz5nAc5tvO0=<br \/>\nprice:\u00a0US$0.99<br \/>\nprice_expiration:\u00a01400041960<br \/>\ncurrency:\u00a0USD<br \/>\ncost:\u00a00.99<br \/>\nlogin:\u00a0559182820000<br \/>\ntype:\u00a0existing<br \/>\nexpiration:\u00a01428155655\u00a0<\/sub><\/p>\n<p>Onde:<\/p>\n<ul>\n<li><span>-R<\/span>,\u00a0<span>&#8211;register<\/span>\u00a0:: Comando para registrar o n\u00famero WhatsAPP.<\/li>\n<li><span>123-456<\/span>\u00a0:: c\u00f3digo recebido via sms.<\/li>\n<li><span>-c<\/span>,\u00a0<span>&#8211;config<\/span>\u00a0:: arquivo de configura\u00e7\u00e3o que cont\u00e9m o n\u00famero do WhatsAPP.<\/li>\n<\/ul>\n<p>Obs: inserir o campo &#8220;password=(item 3)&#8221; no arquivo\u00a0<span>zapzap.config<\/span>\u00a0com o valor\u00a0<span>pw<\/span>\u00a0da saida do comando acima(4.1).<\/p>\n<p><span>pw<\/span>\u00a0:: aGGVSOGy6+OsMl0Ctz5nAc5tvO0=<\/p>\n<p>5. Enviando uma mensagem:<\/p>\n<p><strong># .\/yowsup-cli -s 559182189171 &#8220;Testando ZapZap CLI &#8211; VOL&#8221; -w -c zapzap.config<\/strong><br \/>\n<sub>\u00a0Connecting\u00a0to\u00a0c.whatsapp.net<br \/>\nAuthed\u00a0559182820000<br \/>\nSent\u00a0message<br \/>\nGot\u00a0sent\u00a0receipt\u00a0<\/sub><\/p>\n<p>Onde:<\/p>\n<ul>\n<li><span>-s<\/span>,\u00a0<span>&#8211;send<\/span>\u00a0:: Comando de envio de mensagem.<\/li>\n<li><span>559182189171<\/span>\u00a0:: N\u00famero de destino contendo c\u00f3digo do Pa\u00eds + DDD.<\/li>\n<li><span>-w<\/span>,\u00a0<span>&#8211;wait<\/span>\u00a0:: Quando usado o -s(&#8211;send) a conex\u00e3o n\u00e3o ir\u00e1 fechar at\u00e9 que o servidor (WhatsAPP) tenha recebido a mensagem.<\/li>\n<li><span>-c<\/span>,\u00a0<span>&#8211;config<\/span>\u00a0:: arquivo de configura\u00e7\u00e3o que cont\u00e9m o n\u00famero do WhatsAPP.<\/li>\n<\/ul>\n<p>Obs: como foi dito anteriormente, utilizamos apenas os comandos\u00a0<span>request<\/span>,\u00a0<span>register<\/span>\u00a0e\u00a0<span>send<\/span>.<\/p>\n<p>Por\u00e9m, existem outros comandos. Para isso:<\/p>\n<p><strong># .\/yowsup-cli -h<\/strong><\/p>\n<h1>Nagios<\/h1>\n<p>1. Configurando os alertas do Nagios:<\/p>\n<p>1.1 Criando o comando de envio.<\/p>\n<p>Para isso, devemos alterar o arquivo\u00a0<span>command-plugins.cfg<\/span>\u00a0do Nagios. No meu caso, est\u00e1 localizado em\u00a0<span>\/etc\/nagios\/objects\/<\/span>.<\/p>\n<p>Inserir as linhas:<\/p>\n<div>define command{<br \/>\ncommand_name notify-by-wapp<br \/>\ncommand_line \/opt\/yowsup-master\/src\/yowsup-cli &#8211;send $CONTACTPAGER$ &#8220;$HOSTADDRESS$ $HOSTALIAS$: $SERVICEDESC$ is $SERVICESTATE$&#8221; &#8211;wait &#8211;config \/opt\/yowsup-master\/src\/zapzap.config<br \/>\n}<\/div>\n<p>1.2 Criando o contato:<\/p>\n<p>Este ser\u00e1 o contato que ir\u00e1 receber os alertas do Nagios pelo WhatsAPP. Para isso, vamos alterar o arquivo\u00a0<span>contacts.cfg<\/span>\u00a0do Nagios. No meu caso, est\u00e1 em\u00a0<span>\/etc\/nagios\/objects\/<\/span>.<\/p>\n<div>define contact {<br \/>\ncontact_name nagiosadmin<br \/>\nalias Nagios Admin<br \/>\ncontactgroups admins<br \/>\nhost_notifications_enabled 1<br \/>\nservice_notifications_enabled 1<br \/>\nhost_notification_period 24&#215;7<br \/>\nservice_notification_period 24&#215;7<br \/>\nhost_notification_options d,u,r,f,s<br \/>\nservice_notification_options w,u,c,r,f,s<br \/>\nhost_notification_commands notify-by-wapp<br \/>\nservice_notification_commands notify-by-wapp<br \/>\ncan_submit_commands 1<br \/>\nretain_status_information 1<br \/>\nretain_nonstatus_information 1<br \/>\nemail gleison.r2@gmail.com<br \/>\npager 559182189171<br \/>\nuse gleison<br \/>\nregister 1<br \/>\n}<\/div>\n<p>Obs: caso voc\u00ea possua um contato j\u00e1 configurado, basta alterar\/inserir as seguintes linhas.<\/p>\n<div>host_notification_commands notify-by-wapp<br \/>\nservice_notification_commands notify-by-wapp<br \/>\npager 559182189171<\/div>\n<p>1.3 Configurando o Alerta de um Host:<\/p>\n<p>Altere dentro do seu arquivo de um Host as seguintes linhas.<\/p>\n<div>define host {<br \/>\n.<br \/>\n.<br \/>\n.<br \/>\nevent_handler notify-by-wapp<br \/>\ncontacts nagiosadmin<br \/>\n.<br \/>\n.<br \/>\n}<\/div>\n<p>1.4 Configurando o Alerta de um Servi\u00e7o:<\/p>\n<p>Altere dentro do seu arquivo de um Servi\u00e7o, as seguintes linhas.<\/p>\n<div>define service {<br \/>\n.<br \/>\n.<br \/>\n.<br \/>\nevent_handler notify-by-wapp<br \/>\ncontacts nagiosadmin<br \/>\n.<br \/>\n.<br \/>\n}<\/div>\n<p>* Importante: lembre-se sempre de verificar no Nagios, se as configura\u00e7\u00f5es est\u00e3o corretas antes de tentar reiniciar.<\/p>\n<p><strong># nagios -v \/etc\/nagios\/nagios.cfg<\/strong><br \/>\n<sub>Total Warnings: 0<br \/>\nTotal Errors: 0\u00a0<\/sub><\/p>\n<h1>Testando<\/h1>\n<p>Existem v\u00e1rias formas de simular um teste.<\/p>\n<p>Eu sempre realizo bloqueando a chegada do servidor Nagios a determinado Host, ou Servi\u00e7o via IPtables. Assim, tenho como testar a falha em um servi\u00e7o ou no host, sem que ocorra parada nos mesmos.<\/p>\n<p>HOST (Exemplo Ping):<\/p>\n<p><strong># iptables -I OUTPUT -p icmp -d HOST_MONITORADO -j DROP<\/strong><\/p>\n<p>SERVI\u00c7O (Exemplo SMTP):<\/p>\n<p><strong># iptables -I OUTPUT -p tcp -d HOST_MONITORADO &#8211;dport 25 -j DROP<\/strong><\/p>\n<h1>Considera\u00e7\u00f5es<\/h1>\n<p>Espero que tenha sido direto.<\/p>\n<p>No entanto, sempre ocorrem d\u00favidas, uma vez que o mundo Open Source proporciona isso de voc\u00ea poder trabalhar suas id\u00e9ias, n\u00e3o ficando amarrado a ambientes fechados, trazendo os mais variados &#8220;labs&#8221;.<\/p>\n<p>Quaisquer d\u00favidas estamos ai.<\/p>\n<p>[]s<\/p><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Requisitos 1. Servidor\u00a0Linux\u00a0Rodando o Nagios: Testado em CentOS 5.5 e 6.4 x86_64. No entanto, nada impede de ser implementado em outras distros. 2. yowsup: Este \u00e9 o &#8216;cara&#8217; deste artigo. O que \u00e9: escrito em Python, \u00e9 uma Interface de Linha de Comando utilizada para interagir com o\u00a0WhatsAPP, para ser mais claro, \u00e9 um WhatsAPP [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[455,91,1,51,545,514,68,271,501],"tags":[546,971,547],"class_list":["post-802","post","type-post","status-publish","format-standard","hentry","category-apache2","category-banco-de-dados","category-viazap","category-linux-linuxrs","category-nagios","category-programacao","category-redes-2","category-seguranca-2","category-shell-script","tag-enviando-alertas","tag-nagios","tag-via-whatsapp"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=802"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/802\/revisions"}],"predecessor-version":[{"id":803,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/802\/revisions\/803"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}