PHP Server Monitor - Monitore URLs e IPs

Aplicação para monitorar URLs e portas de Ips/Urls. Monitoração de páginas Http e Https.

[ Hits: 22.046 ]

Por: Leonardo Macedo Cerqueira em 17/03/2014 | Blog: http://devopslab.com.br/


PHP Server Monitor - Descrição, Instalação e dicas.



O que é o PHP Server Monitor?

Encontrei um projeto no Sourceforge, que é focado em monitoração de URLs e Portas de Ips/Urls.

A aplicação é simples e objetiva, checa de tempos em tempos se a URL, ou Porta, está UP ou não. Lembra o serviço Pingdom.

Tem um Dashborad em PHP, que aparece o alarme, como uma aplicação de monitoração (Nagios, Zabbix, Icinga e etc).

Página oficial do projeto: PHP Server Monitor

Características:
  • Notificações por email;
  • Notificações por SMS;
  • Monitoração de Urls Http/Https e Portas de Serviços;
  • Permite usar expressões regulares, para a monitoração de conteúdo específico de páginas Http e Https;
  • Permite a criação de usuários para a visualização de determinadas Urls, limitando o poder de visualização dos times/usuários.

A "cara" da DashBorad do Projeto, é esta:
Linux: PHP Server Monitor - Monitore URLs e IPs

Vamos para a mão na massa.

Pré-requisitos

Você precisa ter instalado os seguintes pacotes:
  • PHP 5.3 ou maior (PHP 5.3+);
  • Curl;
  • Módulo Php-mysql;
  • Mysqsl Server;
  • Webserver Apache;
  • Servidor com acesso à Internet, ou na rede onde ficam as Urls que precisam ser monitoradas.

Nota: Pode ser usado qualquer outro WEBserver, como Nginx, fica a seu critério, mas o Apache, satisfaz 100%. O apache e Mysql precisam ficar UP durante a instalação.

MySQL

Crie a base de dados Mysql, usuário e senha. Coloque os nomes e senha que você quiser, isto é indiferente, fica a seu critério.

mysql> create database bancoteste;
mysql> grant usage on *.* to usuariomysql@localhost identified by 'senhamysql';
mysql> grant all privileges on bancoteste.* to usuariomysql@localhost;
mysql> flush privileges;

Testando o acesso ao BD:

# mysql -uusuariomysql -p
Enter  password:  
Welcome  to  the  MySQL  monitor.    Commands  end  with  ;  or  \g.
Your  MySQL  connection  id  is  158
Server  version:  5.5.34  MySQL  Community  Server  (GPL)

Copyright  (c)  2000,  2013,  Oracle  and/or  its  affiliates.  All  rights  reserved.

Oracle  is  a  registered  trademark  of  Oracle  Corporation  and/or  its
affiliates.  Other  names  may  be  trademarks  of  their  respective
owners.

Type  'help;'  or  '\h'  for  help.  Type  '\c'  to  clear  the  current  input  statement.

mysql>  show  databases;
+--------------------+
|  Database                      |
+--------------------+
|  information_schema  |
|  bancoteste                  |
+--------------------+
2  rows  in  set  (0.00  sec)

mysql>


Neste caso:
  • Usuário: usuariomysql
  • Senha: senhamysql
  • Base de dados MySQL: bancoteste

Baixando PHP Server Monitor

Vá para a página do projeto (phpservermonitor.org) e baixe o pacote phpservermon.

A versão atual é phpservermon-2.1.0.tar.gz.

Instalação

1. Descompacte o phpservermon-2.1.0.tar.gz na página raiz do seu WEBsite, no meu caso, está na pasta raiz default do Apache:

# tar xvzf phpservermon-2.1.0.tar.gz -C /var/www/html
#cd /var/www/html/phpservermon


2. Renomeie o arquivo config.php.sample para config.php:

# mv -v config.php.sample config.php

3. Configure as credenciais do Banco de dados. (usuario, senha e base de dados).

# vi config.php
define('PSM_DB_USER',  'usuariomysql');
define('PSM_DB_PASS',  'senhamysql');
define('PSM_DB_NAME',  'bancoteste');


4. Execute o arquivo install.php para prosseguir com a instalação:
  • http://coloqueseuipaqui/phpservermon/install.php

Ex.: http://localhost/phpservermon/install.php
Linux: PHP Server Monitor - Monitore URLs e IPs

5. Agora, você tem instalado o PHP Server Monitor.

Acesse a URL principal (index.php):
  • http://localhost/phpservermon/index.php

Linux: PHP Server Monitor - Monitore URLs e IPs

6. Configurar o script de monitoração no Cron.

# crontab -l
*/1 * * * * /usr/bin/php /var/www/html/phpservermon/cron/status.cron.php

Veja, que eu coloquei o script de monitoração para ser executado a cada 1 minuto, que é mais que sificiente para monitorar as Urls e portas.

Nota: É muito importante, após a instalação, ser apagado ou removido da pasta do apache, o arquivo de instalação install.php.

Se, por qualquer motivo, for ser executado novamente, você vai zerar a instalação e perder qualquer monitoração configurada.

E-mail

Não vou abordar, neste momento, o envio de alertas por Email.

Dicas:
  • Basicamente você vai precisar de um servidor de email válido, ou que envie e-mails para onde você queira.
  • Eu sugiro o Postfix para ser o servidor de E-mail. O Postfix pode servir apenas como Relay, ou seja, encaminhar os E-mails para outro servidor já configurado.

SMS

Dicas:
  • Você precisa adquirir um serviço de Gateway SMS, tem gratuítos e pagos.
  • Na página do projeto, tem algumas informações para configurar o serviço de SMS.

Conclusão

Bom pessoal, é isto.

O intuito aqui, foi compartilhar mais um ferramenta para a monitoração de sites. Vocês viram que é uma ferramenta simples, mas que faz o que é necessário.

Dica muito legal: às vezes, além do SMS e E-mail, você também quer que seja aberto um chamado, um incidente, na ferramenta de gerenciamento de chamados da sua empresa.

Para isto, sugiro usar o serviço Zapier, que é uma aplicação na nuvem, que pode ser integrada com diversas ferramentas de Service Desk e abertura de chamados.

Ela precisa apenas que chegue um e-mail com o alerta, para abrir os chamados. Muito útil.


Obrigado por ter lido.

Leonardo Macedo Cerqueira

   

Páginas do artigo
   1. PHP Server Monitor - Descrição, Instalação e dicas.
Outros artigos deste autor

Instalação do Gitlab e introdução ao Git

Instalação do Varnish + Apache + Virtual Hosts

KNOCK + SSH

Discos Virtuais na Amazon WS - Como expandir disco EBS em servidores virtuais Amazon WS

OUTGUESS: Oculte mensagens em fotos

Leitura recomendada

Turbinando o seu aMSN

KDE4 junto com KDE3 no Debian Lenny

Como Rodar o Mplayer no Linux

DD-WRT no D-Link Dir-300 Rev A

Configurando o Lopster

  
Comentários
[1] Comentário enviado por hellnux em 18/03/2014 - 19:49h

Belo artigo.

Sabe se tem como usar em 2 ou mais servidores, estilo redundância? Pois só em um servidor, as chances de falsos positivos é maior.

[2] Comentário enviado por cromado em 19/03/2014 - 11:56h

Não tem como fazer um Cluster/redundância com este projeto. para isto teria que entrar a criatividade e conhecimento do Sysadmin, para fazer a implementação. seria interessante distribuir os servidores fazendo o check nas urls, em localidades diferentes.

Se você parar para analisar, geralmente as ferramentas de monitoração ficam centralizadas em 1 servidor, pode ter um H.A para uma segurança razoável, mas na maioria dos casos, um servidor de monitoração dá conta.

[3] Comentário enviado por williamm em 19/03/2014 - 17:08h

Show de bola, parabéns, foi para os favoritos..

[4] Comentário enviado por jpvr2005 em 26/03/2014 - 16:36h

Parabéns meu amigo!
Instalei aqui a fim de testes e deu tudo certo! Obrigado por compartilhar!

[5] Comentário enviado por junior em 27/03/2014 - 14:11h

Muito boa a ferramenta.

Essa "janela" de status do PT em vermelho foi proposital?
hahaha.

[6] Comentário enviado por cromado em 01/04/2014 - 21:33h

Foi proposital ;).
Para demonstrar, coloquei uma URL qualquer na configuração do check.

[]s

[7] Comentário enviado por henriquejne em 06/04/2014 - 18:09h

Valeu Leonardo Macedo, muito bom.

[8] Comentário enviado por dvs em 15/04/2014 - 09:28h

Testei e funcionou perfeitamente, entretanto não consegui colocar o SMS para funcionar. O e-mail funcionou legal!

[9] Comentário enviado por charlesltda em 07/06/2014 - 23:05h

Muito Bom, só não conseguir fazer o server ficar vermelho, sempre que insiro ip ou url, a legenda só fica verde. grato. help!!! segue meu arquivo contrab: # m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
# crontab -l
*/1 * * * * /var/www/html/phpservermon/cron/status.cron.php

[10] Comentário enviado por banto em 22/06/2014 - 17:40h

Bacana a dica!

a regra no cron não deu certo aqui no Debian 7... deu certo assim

*/1 * * * * root php -q /var/www/phpservermon/cron/status.cron.php > /dev/null 2>&1

valeu!

[11] Comentário enviado por rodrigo_go em 08/09/2016 - 13:51h

Boa tarde,

Gostaria de saber se é possível testar um site que utiliza autenticação.
Mais especifico um webservice da SEFAZ por exemplo.
https://nfe.sefaz.am.gov.br/services2/services/NfeStatusServico2

autenticação é através de um certificado digital.

[12] Comentário enviado por Williamm em 08/09/2016 - 20:05h


[11] Comentário enviado por rodrigo_go em 08/09/2016 - 13:51h

Boa tarde,

Gostaria de saber se é possível testar um site que utiliza autenticação.
Mais especifico um webservice da SEFAZ por exemplo.
https://nfe.sefaz.am.gov.br/services2/services/NfeStatusServico2

autenticação é através de um certificado digital.


Eu acho que nesse caso não funciona, pelo menos não no modo normal, no máximo alterando alguma coisa...


Contribuir com comentário