Skip to content

henriqueritter/host_monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

106 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Host Monitor

Debian Apache MySQL Python PHP

Índice


Ambiente

Debian 9.9 x64 || Mint 16 x64 Apache 2.4 MySQL 14.14 Python 2.7.9 PHP 7.0


Descrição

O Host Monitor foi desenvolvido para auxiliar o departamento de T.I, é uma aplicação utilizada para checar a disponibilidade de alguns hosts, utilizando o recurso 'ping' do Sistema operacional a aplicação consulta e armazena os dados de status dos hosts, exibe em tempo real em um painel e envia um e-mail contendo os hosts e o período em que estiveram offline.


Módulos

  • Python: Responsável por efetuar o ping nos hosts cadastrados e armazenar o status de rede no banco de dados MySQL, também é responsável por enviar um e-mail diário contendo o arquivo de Log que foi gerado com os hosts que estiveram offline durante o dia.

  • PHP: A Página monitor.php tem por finalidade exibir os hosts e seus status e a página cadastrar.php é exibe o painel junto ao formulário para cadastrar ou excluir os hosts do banco de dados.

  • MySQL: Contém apenas duas tabelas, na tabela hosts_status são armazenados os dados dos hosts, status e nomes e na tabela controle_data é armazenado apenas um registro contendo a data do dia atual que é alterada na função de envio de e-mail para que o envio seja diário.


Telas da Aplicação

Tela de Cadastro

Painel dos hosts


Instalação

  • Autor: Henrique C. Ritter
  • Versão S.O: Debian 9.9.0
  • Data: 27/06/2019
#Logar como root
su -

#Atualizar pacotes
apt-get update

#Instalar dependências
apt-get install mysql-server apache2 php7.0 php7.0-mysql python-mysql.connector -y

# Baixar o projeto do Github
cd /opt/
wget https://github.com/henriqueritter/host_monitor/archive/master.zip

#Extrair o projeto
unzip master.zip

# Executar o script SQL no MySQL para criar o usuário 'ping' e o banco 'ping' com as tabelas necessárias
mysql -u root -p < /opt/host_monitor-master/mysql/ping.sql

# Criar pasta monitor dentro do /var/www/html 
mkdir /var/www/html/monitor					#Alterar a permissao CHMOD(CHOWN) usuario WWW-DATA
chmod 777 /var/www/html/monitor/

# Copiar os arquivos PHP para a pasta monitor
cp -r /opt/host_monitor-master/php7/* /var/www/html/monitor
service apache2 restart

# Criar e dar permissão no arquivo de LOG.
> /var/log/hosts_status.log
chmod 777 /var/log/hosts_status.log

# Criar a pasta onde será colocado os arquivos do Python e dar permissão
mkdir /etc/host_monitor/
chmod 777 /etc/host_monitor/

# Copiar os arquivos e dar permissão de executar no arquivo main.py
cp /opt/host_monitor-master/python/* /etc/host_monitor/
chmod +x /etc/host_monitor/main.py

#---------------------------------------------------------------------------------------
# Após copiar os arquivos e pastas executar ose seguintes passos:

# Alterar as configurações de envio de email do arquivo /etc/host_monitor/main.py na linha 'enviar_email()'
# Sendo: enviar_email('email_origem@dominio.com',['email_destinatario@dominio.com','outro_destinatario@dominio.com], 'Status Links', 'Status Links', ['/var/log/hosts_status.log'], 'mail.smtp.do.server.a.ser.usado.para.envio.com.br')
pico /etc/host_monitor/main.py

# Alterar o arquivo: /etc/host_monitor/sendMain.py na linha 'smtp.login()'
# Preenchendo como:  smtp.login('usuarioServerEmail','senhaUsuarioEmail')
pico /etc/host_monitor/sendMail.py

# Agendar no crontab para a cada 5 minutos executar a aplicação Python
crontab -e
# Adicionar a linha:
*/2 * * * * /etc/host_monitor/main.py

# Testar acessando via Browser o endereço: localhost/monitor 
# Gravar algum host e esperar a execução do arquivo /etc/host_monitor/main.py 
# Ou executar manualmente via linha de comando digitando /etc/host_monitor/main.py

#----------------------------------------------------------
# OPCIONAL: Entrar no Mysql e alterar senha padrão do MYSQL e alterar nos arquivos necessários
mysql
MYSQL[(none)]>use mysql;
MYSQL[mysql]>set password for 'ping'@'localhost' = PASSWORD('novasenha');
MYSQL[mysql]>flush privileges;
MYSQL[mysql]>exit

#--------------
# Acessar os arquivos do PHP
pico /var/www/html/monitor/index.php
#Alterar o valor da variavel $pass para a senha que você definiu anteriormente no MySQL
pico /var/www/html/monitor/monitor.php
#Alterar o valor da variavel $pass para a senha que você definiu anteriormente no MySQL
#--------------
# Alterar a senha do MySQL no arquivo de conexão do Python
pico /etc/host_monitor/cnxMySql.py
#altere o valor da variavel bd_passwd e coloque a senha que você definiu anteriormente.

Licença

MIT

About

Monitor de Hosts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published