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: 28.224 ]

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

KNOCK + SSH

Instalação do Varnish + Apache + Virtual Hosts

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

Vsftp - Instalação de um servidor FTP focado em segurança

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

Leitura recomendada

Criando pacotes no Slackware

VMWare - 3 mãos na roda

Como fazer um servidor de rádio virtual

CUDA: Programe a sua NVIDIA

Implementando Cacti em distribuições Debian

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts