Instalación de la herramienta "PHP Server Monitor" usando LEMP o LAMP Stack en Arch Linux


PHP Server Monitor es una herramienta de monitoreo de frontend web de código abierto escrita en PHP, que puede verificar si sus servidores (IP, dominios) o servicios están en funcionamiento y puede enviarle notificaciones a través de servicios de correo o SMS. si ocurrió un problema en un servicio o puerto monitoreado. Comprueba los sitios web utilizando el código de estado HTTP, puede mostrar gráficos históricos de tiempo de actividad y latencia y puede utilizar dos niveles de autenticación (administrador y usuario normal).

Este tutorial le presenta una forma de instalar PHP Server Monitor en un entorno de servidor Arch Linux utilizando si Apache como servidor o Nginx servidor web, así, puedes elegir el proceso de instalación que más te convenga.

Como requisitos generales para instalar y configurar PHP Server Monitor para cualquier otra plataforma Linux, su servidor necesita los siguientes paquetes instalados.

  1. PHP 5.3.7+
  2. Paquetes PHP: cURL, MySQL
  3. Base de datos MySQL
  4. Servidores web Nginx o Apache

Para instalar PHP Server Monitor con Nginx, use los siguientes tutoriales como guías para configurar la pila LEMP y los hosts virtuales en Arch.

  1. Instale LEMP (Linux, Nginx, MySQL, PHP) en Arch Linux
  2. Cree hosts virtuales Nginx en Arch Linux

Para instalar PHP Server Monitor con Apache, use la siguiente guía para configurar la pila LAMP en Arch Linux.

  1. Instale LAMP (Linux, Apache, MySQL, PHP) en Arch Linux

Paso 1: configurar el servidor web Nginx/Apache

1. Antes de comenzar, si su configuración utiliza alojamiento virtual, debe asegurarse de tener una entrada DNS válida que apunte a su dominio o utilizar un archivo hosts local en caso de que no tenga un servidor DNS. Este tutorial utiliza alojamiento virtual con ambos servidores web ( Nginx y Apache ) configurados con un dominio local falso - phpsrvmon.lan - hasta Archivo/etc/hosts .

2. Para agregar un nuevo host virtual Nginx, cree un nuevo archivo de configuración en /etc/nginx/sites-available/ con el nombre phpsrvmon.conf y use la siguiente plantilla como un ejemplo de configuración.

$ sudo nano /etc/nginx/sites-available/phpsrvmon.conf

Agregue el siguiente código al archivo 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. Si desea acceder a PHP Sever Monitor a través del protocolo HTTP seguro, cree su archivo de configuración equivalente a SSL.

$ sudo nano /etc/nginx/sites-available/phpsrvmon-ssl.conf

Agregue el siguiente código al archivo 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. Después de editar los archivos conf de Nginx, cree la ruta raíz del documento, en caso de que la haya cambiado como aquí a /srv/www/phpsrvmon/, active ambos hosts virtuales usando la utilidad n2ensite y reinicie Nginx para reflejar los cambios.

$ sudo mkdir -p /srv/www/phpsrvmon/
$ sudo n2ensite phpsrvmon
$ sudo n2ensite phpsrvmon-ssl
$ sudo systemctl restart nginx

Si necesita un nuevo certificado SSL para su host virtual, genere uno usando el comando nginx_gen_ssl con su nombre de dominio y modifique phpsrvmon-ssl.conf en consecuencia.

5. Si usa Apache como servidor web, cree un nuevo archivo de configuración de host virtual en /etc/httpd/conf/sites-available/ con el nombre phpsrvmon.conf y utilice las siguientes definiciones de archivo como plantilla.

$ sudo nano /etc/httpd/conf/sites-available/phpsrvmon.conf

Agregue el siguiente código al archivo phpsrvmon.conf .

<VirtualHost *:80>
                DocumentRoot "/srv/www/phpsrvmon"
                ServerName phpsrvmon.lan
                ServerAdmin [email protected]
                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. Si también necesita un Monitor de servidor PHP de acceso en el protocolo HTTPS, cree un nuevo archivo de configuración SSL de Virtual Host con las siguientes declaraciones.

$ sudo nano /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf

Agregue el siguiente código completo al archivo phpsrvmon-ssl.conf .

<VirtualHost *:443>
                ServerName phpsrvmon.lan
                DocumentRoot "/srv/www/phpsrvmon"
                ServerAdmin [email protected]
                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 el mismo procedimiento que para Nginx, cree el directorio raíz del documento, en caso de que la ruta de los archivos web haya cambiado, active Apache Virtual Hosts usando el comando a2ensite y reinicie el demonio para aplicar los cambios.

$ sudo mkdir -p /srv/www/phpsrvmon/
$ sudo a2ensite phpsrvmon
$ sudo a2ensite phpsrvmon-ssl
$ sudo systemctl restart httpd

Para generar un nuevo certificado SSL y una clave para este host virtual, use la utilidad apache_gen_ssl , agregue su nombre de dominio en el nombre del certificado y modifique /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf , reemplazando el certificado SSL antiguo y la ruta y los nombres de la clave por otros nuevos.

Paso 2: editar las configuraciones de PHP

8. Para evitar algunos errores de instalación, PHP Server Monitor arrojará cuando verifique los requisitos del sistema, abra el archivo php.ini y realice los siguientes ajustes.

$ sudo nano /etc/php/php.ini

Si se ha cambiado la ruta raíz del documento de Nginx/Apache (la predeterminada es /srv/http/), use [Ctrl + w] para localizar open_basedir y agregue la nueva ruta con un prefijo de dos puntos ": " - en este caso, la nueva ruta es /srv/www/ - para que se vea como en el ejemplo siguiente.

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

Busque y habilite las extensiones PHP pdo, mysqli y curl descomentandolas (elimine el punto y coma de su frente).

extension=curl.so
extension=mysqli.so
extension=pdo_mysql.so

Busque la zona horaria y establezca su hora local como si usara esta página.

date.timezone = Continent/City

9. Una vez realizados todos los cambios, reinicie sus servicios para aplicar los cambios.

$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx
$ sudo systemctl restart httpd

Paso 3: Cree la base de datos MySQL de PHP Server Monitor

10. Para crear la base de datos necesaria para que PHP Server Monitor almacene información, inicie sesión en la base de datos MySQL/MariaDB y cree una nueva base de datos usando los siguientes comandos (reemplace la base de datos, el usuario y la contraseña con sus credenciales preferidas).

mysql -u root -p

MariaDB > create database phpsrvmon;
MariaDB > create user [email protected] identified by "user_password";
MariaDB > grant all privileges on phpsrvmon.* to [email protected];
MariaDB > flush privileges;
MariaDB > quit

Si tiene PhpMyAdmin instalado en su sistema, puede crear la base de datos de PHP Server Monitor accediendo a MySQL/MariaDB desde su interfaz web.

Paso 4: Instale PHP Server Monitor

11. Antes de continuar con la descarga de la herramienta PHP Server Monitor, asegúrese de haber instalado el comando wget.

$ sudo pacman -S wget

12. Para obtener la última versión de PHP Server Monitor, vaya al siguiente enlace y descargue el archivo tar.gz o utilice el enlace de descarga oficial de Git que se proporciona a continuación.

  1. http://www.phpservermonitor.org/download/
  2. https://github.com/phpservermon/phpservermon

Alternativamente, también puede descargar directamente usando el siguiente comando wget.

$ wget http://downloads.sourceforge.net/project/phpservermon/phpservermon/PHP%20Server%20Monitor%20v3.0.1/phpservermon-v3.0.1.tar.gz

13. Después de descargar la última versión, extráigala con el comando tar y copie todo el contenido extraído en la ruta raíz del documento del servidor web utilizando los siguientes comandos.

$ tar xfvz phpservermon-v3.0.1.tar.gz
$ sudo cp -r phpservermon/* /srv/www/phpsrvmon/

14. Luego abra un navegador y navegue hasta su nombre de dominio (en caso de que use hosts virtuales como se presenta en este tutorial, de lo contrario use la dirección IP de su servidor) y en la página de saludo presione el botón Vamos.

15. En la siguiente pantalla, ingrese la información de su base de datos MySQL y presione Guardar configuración .

16. Si recibe un error que dice que su archivo de configuración no se pudo escribir, use los siguientes comandos para crear un archivo confing.php escribible y presione He guardado la configuración .

$ su -c “> /srv/www/phpsrvmon/config.php”
$ sudo chmod 777 /srv/www/phpsrvmon/config.php

17. Después de guardar la configuración, cree un usuario administrativo para PHP Server Monitor eligiendo sus credenciales y presione el botón Instalar .

18. Una vez finalizado el proceso de instalación, presione el botón Ir a su monitor y será redirigido a la página de inicio de sesión. Inicie sesión con sus credenciales y se le pedirá que acceda a la página predeterminada del Monitor del servidor PHP. También revierte los cambios en el archivo config.php de PHP Server Monitor.

$ sudo chmod 754 /srv/www/phpsrvmon/config.php

19. Para agregar un nuevo sitio web para monitoreo, vaya a Servidores -> Agregar nuevo , complete los campos requeridos con la configuración de su servidor y presione el botón Guardar .

20. Para comenzar a monitorear el proceso en todos los servidores y servicios, presione el botón Actualizar y será redirigido a la página de inicio predeterminada donde se le presentará el estado de sus sitios web/servicios.

21. Para que PHP Server Monitor verifique automáticamente el estado de sus servidores/servicios a intervalos de tiempo regulares, debe instalar un programador de trabajos Cron en su sistema y agregar una entrada de período de tiempo de monitoreo en un archivo cron.

$ sudo pacman -S cronie
$ sudo systemctl start cronie
$ sudo systemctl enable cronie

22. Para agregar una nueva entrada en el archivo cron que verifica su sitio web cada 5 minutos, use el comando sudo crontab –e o, mejor, edite manualmente el archivo cron raíz ubicado en /var/spool/cron/ ajustando la ruta para que coincida con el directorio de instalación de PHP Server Monitor. Para listar todas las entradas de crontab, use la línea de comando sudo crontab -l .

$ sudo nano /var/spool/cron/root

Agregue la siguiente entrada: ajuste el período de tiempo y la ruta de instalación en consecuencia

*/5 * * * * /usr/bin/php   /srv/www/phpsrvmon/cron/status.cron.php

Conclusión

Aunque PHP Server Monitor no aumenta en complejidad como otros servicios de monitoreo como Nagios , Cacti o Zabbix , tiende a ser muy liviano en recursos. consumo y puede cumplir el trabajo como plataforma de monitoreo configurándose para enviar correos electrónicos o SMS a través de una amplia lista de puerta de enlace SMS, en caso de que sus sitios web y servicios monitoreados encuentren problemas técnicos o no funcionen.

Página de inicio : Monitor de servidor PHP