Instalando a ferramenta "PHP Server Monitor" usando LEMP ou LAMP Stack no Arch Linux
PHP Server Monitor é uma ferramenta de monitoramento de frontend web de código aberto escrita em PHP, que pode verificar se seus servidores (IP, domínios) ou serviços estão funcionando e pode enviar notificações via serviços de correio ou SMS se ocorreu um problema em um serviço ou porta monitorado. Ele verifica sites usando código de status HTTP, pode exibir gráficos históricos de tempo de atividade e latência e pode usar dois níveis de autenticação (administrador e usuário regular).
Este tutorial apresenta uma maneira de instalar o PHP Server Monitor em um ambiente de servidor Arch Linux usando o Apache como servidor ou o servidor web Nginx, assim, você pode escolher o processo de instalação que melhor se adapta a você.
Requisitos de monitor do servidor PHP
Como requisitos gerais para instalar e configurar o PHP Server Monitor para qualquer outra plataforma Linux, seu servidor precisa dos seguintes pacotes instalados.
- PHP 5.3.7+
- Pacotes PHP: cURL, MySQL
- Banco de dados MySQL
- Servidores web Nginx ou Apache
Requisitos de sistema
Para instalar o PHP Server Monitor com Nginx, use os seguintes tutoriais como guias para configurar a pilha LEMP e hosts virtuais no Arch.
- Instale LEMP (Linux, Nginx, MySQL, PHP) no Arch Linux
- Crie hosts virtuais Nginx no Arch Linux
Para instalar o PHP Server Monitor com Apache use o seguinte guia para configurar a pilha LAMP no Arch Linux.
- Instale LAMP (Linux, Apache, MySQL, PHP) no Arch Linux
Etapa 1: configurar o servidor Web Nginx/Apache
1. Antes de começarmos, se sua configuração usa hospedagem virtual, você precisa garantir que possui uma entrada DNS válida apontando para seu domínio ou usar o arquivo local hosts caso não o faça. não tenho um servidor DNS. Este tutorial usa Hospedagem Virtual com ambos os servidores web (Nginx e Apache) configurados com um domínio local falso – phpsrvmon.lan – através de arquivo /etc/hosts.
Crie arquivos de configuração de host virtual Nginx
2. Para adicionar um novo host virtual Nginx, crie um novo arquivo de configuração em /etc/nginx/sites-available/ com phpsrvmon.conf nome e use o modelo a seguir como exemplo de configuração.
sudo nano /etc/nginx/sites-available/phpsrvmon.conf
Adicione o seguinte código ao arquivo phpsrvmon.conf.
server {
listen 80;
server_name phpsrvmon.lan;
access_log /var/log/nginx/phpsrvmon.lan-access.log;
error_log /var/log/nginx/phpsrvmon.lan-error.log;
root /srv/www/phpsrvmon;
location / {
index index.php index.html index.htm;
autoindex on;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
3. Se você deseja acessar o PHP Sever Monitor através do protocolo HTTP seguro, crie seu arquivo de configuração equivalente ao SSL.
sudo nano /etc/nginx/sites-available/phpsrvmon-ssl.conf
Adicione o seguinte código ao arquivo phpsrvmon-ssl.conf.
server {
listen 443 ssl;
server_name phpsrvmon.lan;
root /srv/www/phpsrvmon;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/phpsrvmon.lan-ssl_access.log;
error_log /var/log/nginx/phpsrvmon.lan-ssl_error.log;
location / {
index index.php index.html index.htm;
autoindex on;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
4. Após editar os arquivos conf do Nginx, crie o caminho raiz do documento, caso você tenha alterado como aqui para /srv/www/phpsrvmon/, ative ambos os hosts virtuais usando n2ensite e reinicie o Nginx para refletir as alterações.
sudo mkdir -p /srv/www/phpsrvmon/
sudo n2ensite phpsrvmon
sudo n2ensite phpsrvmon-ssl
sudo systemctl restart nginx
Se você precisar de um novo certificado SSL para seu Host Virtual, gere um usando o comando nginx_gen_ssl com seu nome de domínio e modifique phpsrvmon-ssl.conf de acordo.
Crie arquivos de configuração do host virtual Apache
5. Se você usa o Apache como servidor web, crie um novo arquivo de configuração do Virtual Host em /etc/httpd/conf/sites-available/ com phpsrvmon. conf e use as seguintes definições de arquivo como modelo.
sudo nano /etc/httpd/conf/sites-available/phpsrvmon.conf
Adicione o seguinte código ao arquivo phpsrvmon.conf.
<VirtualHost *:80>
DocumentRoot "/srv/www/phpsrvmon"
ServerName phpsrvmon.lan
ServerAdmin [email
ErrorLog "/var/log/httpd/phpsrvmon-error_log"
TransferLog "/var/log/httpd/phpsrvmon-access_log"
<Directory />
Options +Indexes
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
6. Se você também precisa de um PHP Server Monitor de acesso no protocolo HTTPS, crie um novo arquivo de configuração Virtual Host SSL com as seguintes instruções.
sudo nano /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf
Adicione o seguinte código inteiro ao arquivo phpsrvmon-ssl.conf.
<VirtualHost *:443>
ServerName phpsrvmon.lan
DocumentRoot "/srv/www/phpsrvmon"
ServerAdmin [email
ErrorLog "/var/log/httpd/phpsrvmon.lan-error_log"
TransferLog "/var/log/httpd/phpsrvmon.lan-access_log"
SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/phpsrvmon.lan.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/phpsrvmon.lan.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
<Directory />
Options +Indexes
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
7. Usando o mesmo procedimento do Nginx, crie o diretório raiz do documento, caso o caminho dos arquivos da web tenha mudado, ative o Apache Virtual Hosts usando o comando a2ensite e reinicie o daemon para Aplicar mudanças.
sudo mkdir -p /srv/www/phpsrvmon/
sudo a2ensite phpsrvmon
sudo a2ensite phpsrvmon-ssl
sudo systemctl restart httpd
Para gerar um novo certificado SSL e chave para este host virtual, use o utilitário apache_gen_ssl, anexe seu nome de domínio ao nome do certificado e modifique /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf , substituindo o antigo caminho e nomes do certificado SSL e da chave por novos.
Etapa 2: edite as configurações do PHP
8. Para evitar alguns erros de instalação, o PHP Server Monitor irá lançar quando verificar os requisitos do sistema, abra o arquivo php.ini e faça os seguintes ajustes.
sudo nano /etc/php/php.ini
Se o caminho raiz do documento Nginx/Apache tiver sido alterado (o padrão é /srv/http/), use [Ctrl+w] para localizar open_basedir e anexe o novo caminho prefixando com dois pontos “ : “ – neste caso, o novo caminho é /srv/www/ – como no exemplo abaixo.
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/
Pesquise e ative as extensões PHP pdo, mysqli e curl descomentando-as (remova o ponto e vírgula da frente).
extension=curl.so
extension=mysqli.so
extension=pdo_mysql.so
Localize o fuso horário e defina sua hora local usando esta página.
date.timezone = Continent/City
9. Depois que todas as alterações forem feitas, reinicie seus serviços para aplicar as alterações.
sudo systemctl restart php-fpm
sudo systemctl restart nginx
sudo systemctl restart httpd
Etapa 3: Criar banco de dados MySQL do monitor de servidor PHP
10. Para criar o banco de dados necessário para o PHP Server Monitor armazenar informações, faça login no banco de dados MySQL/MariaDB e crie um novo banco de dados usando os seguintes comandos (substitua banco de dados, usuário e senha pelas suas credenciais preferidas).
mysql -u root -p
MariaDB > create database phpsrvmon;
MariaDB > create user phpsrvmon_user@localhost identified by "user_password";
MariaDB > grant all privileges on phpsrvmon.* to phpsrvmon_user@localhost;
MariaDB > flush privileges;
MariaDB > quit
Se você possui o PhpMyAdmin instalado em seu sistema, você pode criar o banco de dados PHP Server Monitor acessando MySQL/MariaDB a partir de sua interface web.
Etapa 4: Instale o Monitor do Servidor PHP
11. Antes de prosseguir com o download da ferramenta PHP Server Monitor, certifique-se de ter instalado o comando wget.
sudo pacman -S wget
12. Para obter a versão mais recente do PHP Server Monitor, acesse o link a seguir e baixe o arquivo tar.gz ou use o link oficial de download do Git fornecido abaixo.
- http://www.phpservermonitor.org/download/
- https://github.com/phpservermon/phpservermon
Alternativamente, você também pode fazer download diretamente usando o seguinte comando wget.
wget http://downloads.sourceforge.net/project/phpservermon/phpservermon/PHP%20Server%20Monitor%20v3.0.1/phpservermon-v3.0.1.tar.gz
13. Depois de baixar a versão mais recente, extraia-a com o comando tar e copie todo o conteúdo extraído para o caminho raiz do documento do servidor Web usando os seguintes comandos.
tar xfvz phpservermon-v3.0.1.tar.gz
sudo cp -r phpservermon/* /srv/www/phpsrvmon/
14. Em seguida, abra um navegador e navegue até o seu nome de domínio (caso você use hosts virtuais conforme apresentado neste tutorial, caso contrário, use o endereço IP do seu servidor) e na página de saudação clique no botão Vamos lá.
16. Se você receber um erro informando que seu arquivo de configuração não pôde ser gravado, use os seguintes comandos para criar um arquivo confing.php gravável e clique em I salvei a configuração.
su -c “> /srv/www/phpsrvmon/config.php”
sudo chmod 777 /srv/www/phpsrvmon/config.php
17. Após salvar a configuração crie um usuário administrativo para PHP Server Monitor escolhendo suas credenciais e clique no botão Instalar.
18. Após a conclusão do processo de instalação, clique no botão Vá para o seu monitor e você será redirecionado para a página de login. Faça login com suas credenciais e você será solicitado a acessar a página padrão do PHP Server Monitor. Reverta também as alterações no arquivo PHP Server Monitor config.php.
sudo chmod 754 /srv/www/phpsrvmon/config.php
19. Para adicionar um novo site para monitoramento vá em Servidores -> Adicionar novo, preencha os campos obrigatórios com as configurações do seu servidor e clique em Salvar.
20. Para iniciar o processo de monitoramento em todos os servidores e serviços, clique no botão Atualizar e você será redirecionado para a página inicial padrão, onde será apresentado o status de seus sites/serviços.
21. Para que o PHP Server Monitor verifique automaticamente o status de seus servidores/serviços em intervalos de tempo regulares, você precisa instalar um agendador de tarefas Cron em seu sistema e adicionar um tempo de monitoramento. entrada de período em um arquivo cron.
sudo pacman -S cronie
sudo systemctl start cronie
sudo systemctl enable cronie
22. Para adicionar uma nova entrada no arquivo cron que verifica seu site a cada 5 minutos, use o comando sudo crontab –e ou, melhor, edite manualmente o arquivo cron raiz localizado em 22. b>/var/spool/cron/ ajustando o caminho para corresponder ao diretório de instalação do PHP Server Monitor. Para listar todas as entradas do crontab, use a linha de comando sudo crontab -l.
sudo nano /var/spool/cron/root
Adicione a seguinte entrada – ajuste o período de tempo e o caminho de instalação de acordo
*/5 * * * * /usr/bin/php /srv/www/phpsrvmon/cron/status.cron.php
Conclusão
Embora o PHP Server Monitor não aumente em complexidade como outros serviços de monitoramento como Nagios, Cacti ou Zabbix, ele tende a ter recursos muito leves consumo e pode cumprir o trabalho de plataforma de monitoramento configurando o envio de e-mails ou SMS de texto através de uma vasta lista de gateways de SMS, caso seus sites e serviços monitorados encontrem problemas técnicos ou estejam fora do ar.
Página inicial: Monitor de servidor PHP