Búsqueda de sitios web

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 interfaz 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 mediante 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 manera de instalar PHP Server Monitor en un entorno de servidor Arch Linux utilizando Apache como servidor o servidor web Nginx. para que puedas elegir el proceso de instalación que mejor se adapte a ti.

Requisitos del monitor del servidor PHP

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

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

Requisitos del sistema

Para instalar PHP Server Monitor con Nginx, utilice 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, utilice 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 el archivo hosts local en caso de que no lo haga. No tengo un servidor DNS. Este tutorial utiliza Alojamiento Virtual con ambos servidores web (Nginx y Apache) configurados con un dominio local falso – phpsrvmon.lan – a través de /etc/hosts.

Crear archivos de configuración de host virtual Nginx

2. Para agregar un nuevo host virtual Nginx, cree un nuevo archivo de configuración en /etc/nginx/sites-available/ con phpsrvmon.conf nombre y utilice la siguiente plantilla como 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 de configuración 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 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.

Crear archivos de configuración del host virtual Apache

5. Si utiliza Apache como servidor web, cree un nuevo archivo de configuración de host virtual en /etc/httpd/conf/sites-available/ con phpsrvmon. conf nombre y utilice las siguientes definiciones de archivos 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 
                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 usted también necesita acceder a PHP Server Monitor en el protocolo HTTPS, cree un nuevo archivo de configuración SSL de host virtual con las siguientes instrucciones.

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 
                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 servidos haya cambiado, active los hosts virtuales Apache usando el comando a2ensite y reinicie el demonio para aplicar 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 clave para este host virtual, utilice la utilidad apache_gen_ssl, agregue su nombre de dominio al nombre del certificado y modifique /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf. , reemplazando el antiguo certificado SSL, la ruta de la clave y los nombres 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 ubicar open_basedir. declaración y agregue la nueva ruta con el prefijo de dos puntos “: “; en este caso, la nueva ruta es /srv/www/, para que se vea como en el siguiente ejemplo.

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 descomentándolas (elimine el punto y coma del frente).

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

Localice la zona horaria y configure su hora local para usar esta página.

date.timezone = Continent/City

9. Después de realizar 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: Crear la base de datos MySQL del Monitor del servidor PHP

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 phpsrvmon_user@localhost identified by "user_password";
MariaDB > grant all privileges on phpsrvmon.* to phpsrvmon_user@localhost;
MariaDB > flush privileges;
MariaDB > quit

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

Paso 4: Instale el Monitor del servidor PHP

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 a la ruta raíz del documento del servidor web usando 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 que se pueda escribir y presione I. hemos 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, elija sus credenciales y presione el botón Instalar.

18. Una vez completado 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 solicitará que acceda a la página predeterminada de PHP Server Monitor. También revierta 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 obligatorios con la configuración de su servidor y presione Guardar.

20. Para iniciar el proceso de monitoreo 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, necesita instalar un programador de trabajos Cron en su sistema y agregar un tiempo de monitoreo. entrada de período 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 verifique su sitio web cada 5 minutos, use el comando sudo crontab –e o, mejor, edite manualmente el archivo cron raíz ubicado en < b>/var/spool/cron/ ajustando la ruta para que coincida con el directorio de instalación de PHP Server Monitor. Para enumerar todas las entradas de crontab, utilice 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ándola para enviar correos electrónicos o mensajes de texto SMS a través de una amplia lista de puertas de enlace de SMS, en caso de que sus sitios web y servicios monitoreados encuentren problemas técnicos o no funcionen.

Página de inicio: Monitor del servidor PHP