Pesquisa de site

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.

  1. PHP 5.3.7+
  2. Pacotes PHP: cURL, MySQL
  3. Banco de dados MySQL
  4. 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.

  1. Instale LEMP (Linux, Nginx, MySQL, PHP) no Arch Linux
  2. 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.

  1. 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.

  1. http://www.phpservermonitor.org/download/
  2. 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á.

15. Na próxima tela insira as informações do seu banco de dados MySQL e clique em Salvar configuração.

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