Поиск по сайту:

Установка инструмента «Монитор сервера PHP» с использованием стека LEMP или LAMP в Arch Linux


PHP Server Monitor — это инструмент веб-интерфейса с открытым исходным кодом, написанный на PHP, который может проверять, работают ли ваши серверы (IP-адреса, домены) или службы, и может отправлять вам уведомления через почтовые службы или SMS. если проблема возникла в отслеживаемой службе или порту. Он проверяет веб-сайты с помощью кода состояния HTTP, может отображать графики истории времени безотказной работы и задержки и может использовать два уровня аутентификации (администратор и обычный пользователь).

В этом руководстве представлен способ установки PHP Server Monitor в серверной среде Arch Linux, используя в качестве сервера Apache или веб-сервер Nginx. Таким образом, вы можете выбрать процесс установки, который лучше всего подходит вам.

Требования к монитору PHP-сервера

В качестве общих требований для установки и настройки PHP Server Monitor для любых других платформ Linux на вашем сервере должны быть установлены следующие пакеты.

  1. PHP 5.3.7+
  2. PHP-пакеты: cURL, MySQL
  3. База данных MySQL
  4. Веб-серверы Nginx или Apache

Системные Требования

Чтобы установить PHP Server Monitor с Nginx, используйте следующие руководства в качестве руководства по настройке стека LEMP и виртуальных хостов в Arch.

  1. Установите LEMP (Linux, Nginx, MySQL, PHP) в Arch Linux.
  2. Создание виртуальных хостов Nginx в Arch Linux

Чтобы установить PHP Server Monitor с Apache, используйте следующее руководство по настройке стека LAMP в Arch Linux.

  1. Установите LAMP (Linux, Apache, MySQL, PHP) в Arch Linux.

Шаг 1. Настройте веб-сервер Nginx/Apache

1. Прежде чем мы начнем, если ваша установка использует виртуальный хостинг, вам необходимо убедиться, что у вас есть действительная запись DNS, указывающая на ваш домен, или используйте локальный файл hosts, если вы этого не сделаете. У меня нет DNS-сервера. В этом руководстве используется виртуальный хостинг с обоими веб-серверами (Nginx и Apache), настроенными с использованием поддельного локального домена – phpsrvmon.lan – через /etc/hosts.

Создание файлов конфигурации виртуального хоста Nginx

2. Чтобы добавить новый виртуальный хост Nginx, создайте новый файл конфигурации в /etc/nginx/sites-available/ с помощью phpsrvmon.conf name и используйте следующий шаблон в качестве примера конфигурации.

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

Добавьте следующий код в файл 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. Если вы хотите получить доступ к PHP Sever Monitor через защищенный протокол HTTP, создайте его эквивалентный файл конфигурации SSL.

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

Добавьте следующий код в файл 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. После редактирования файлов конфигурации Nginx создайте корневой путь документа. Если вы изменили его, как здесь, на /srv/www/phpsrvmon/, активируйте оба виртуальных хоста с помощью n2ensite и перезапустите Nginx, чтобы изменения отразились.

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

Если вам требуется новый сертификат SSL для вашего виртуального хоста, создайте его с помощью команды nginx_gen_ssl с вашим доменным именем и соответствующим образом измените phpsrvmon-ssl.conf.

Создание файлов конфигурации виртуального хоста Apache

5. Если вы используете Apache в качестве веб-сервера, создайте новый файл конфигурации виртуального хоста в /etc/httpd/conf/sites-available/ с помощью phpsrvmon. conf и используйте следующие определения файлов в качестве шаблона.

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

Добавьте следующий код в файл 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. Если вам также необходим доступ к монитору сервера PHP по протоколу HTTPS, создайте новый файл конфигурации SSL виртуального хоста со следующими инструкциями.

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

Добавьте следующий весь код в файл 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. Используя ту же процедуру, что и для Nginx, создайте корневой каталог документа. В случае изменения пути к веб-файлам активируйте виртуальные хосты Apache с помощью команды a2ensite и перезапустите демон, чтобы применить изменения.

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

Чтобы сгенерировать новый сертификат и ключ SSL для этого виртуального хоста, используйте утилиту apache_gen_ssl, добавьте свое доменное имя к имени сертификата и измените /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf. файл, заменяя старый путь и имена SSL-сертификата и ключа новыми.

Шаг 2. Отредактируйте конфигурации PHP.

8. Чтобы избежать некоторых ошибок при установке, PHP Server Monitor выдает сообщение при проверке системных требований, открывая файл php.ini и внося следующие изменения.

sudo nano /etc/php/php.ini

Если корневой путь документа Nginx/Apache был изменен (по умолчанию это /srv/http/), используйте [Ctrl+w], чтобы найти open_basedir и добавьте новый путь, добавив префикс « : » — в данном случае новый путь — /srv/www/ — как показано в примере ниже.

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

Найдите и включите расширения PHP pdo, mysqli и curl, раскомментировав их (удалите точку с запятой спереди).

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

Найдите часовой пояс и установите местное время, используя эту страницу.

date.timezone = Continent/City

9. После внесения всех изменений перезапустите службы, чтобы изменения вступили в силу.

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

Шаг 3. Создайте базу данных MySQL для монитора PHP-сервера

10. Чтобы создать базу данных, необходимую для хранения информации в PHP Server Monitor, войдите в базу данных MySQL/MariaDB и создайте новую базу данных, используя следующие команды (замените базу данных, пользователя и пароль предпочитаемыми учетными данными).

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

Если в вашей системе установлен PhpMyAdmin, вы можете создать базу данных PHP Server Monitor, открыв MySQL/MariaDB из его веб-интерфейса.

Шаг 4. Установите монитор сервера PHP

11. Прежде чем приступить к загрузке инструмента PHP Server Monitor, убедитесь, что у вас установлена команда wget.

sudo pacman -S wget

12. Чтобы получить последнюю версию PHP Server Monitor, перейдите по следующей ссылке и загрузите архивный файл tar.gz или воспользуйтесь официальной ссылкой для загрузки Git, представленной ниже.

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

Альтернативно вы также можете загрузить напрямую, используя следующую команду wget.

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

13. После загрузки последней версии извлеките ее с помощью команды tar и скопируйте весь извлеченный контент в корневой путь документа веб-сервера, используя следующие команды.

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

14. Затем откройте браузер и перейдите к своему доменному имени (если вы используете виртуальные хосты, как представлено в этом руководстве, в противном случае используйте IP-адрес вашего сервера) и на странице приветствия нажмите кнопку «Поехали».

15. На следующем экране введите информацию о вашей базе данных MySQL и нажмите Сохранить конфигурацию.

16. Если вы получаете сообщение об ошибке, в котором говорится, что ваш файл конфигурации не может быть записан, используйте следующие команды, чтобы создать записываемый файл confing.php, и нажмите I сохранили конфигурацию.

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

17. После сохранения конфигурации создайте пользователя с правами администратора для PHP Server Monitor, указав свои учетные данные, и нажмите кнопку Установить.

18. После завершения процесса установки нажмите кнопку Перейти на монитор, и вы будете перенаправлены на страницу входа. Войдите в систему, используя свои учетные данные, и вам будет предложено перейти на страницу монитора сервера PHP по умолчанию. Также отмените изменения в файле config.php монитора сервера PHP.

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

19. Чтобы добавить новый веб-сайт для мониторинга, перейдите в раздел Серверы -> Добавить новый, заполните необходимые поля настройками вашего сервера и нажмите Сохранить.

20. Чтобы начать процесс мониторинга на всех серверах и службах, нажмите кнопку Обновить, и вы будете перенаправлены на домашнюю страницу по умолчанию, где вам будет представлен статус ваших веб-сайтов/служб.

21. Чтобы PHP Server Monitor автоматически проверял состояние ваших серверов/служб через регулярные промежутки времени, вам необходимо установить планировщик заданий Cron в вашей системе и добавить время мониторинга. запись периода в файле cron.

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

22. Чтобы добавить новую запись в файл cron, которая проверяет ваш веб-сайт каждые 5 минут, используйте команду sudo crontab –e или, что лучше, вручную отредактируйте корневой файл cron, расположенный в 22. b>/var/spool/cron/, изменив путь в соответствии с каталогом установки PHP Server Monitor. Чтобы просмотреть все записи crontab, используйте командную строку sudo crontab -l.

sudo nano /var/spool/cron/root

Добавьте следующую запись — соответствующим образом измените период времени и путь установки.

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

Заключение

Хотя PHP Server Monitor не усложняется по сравнению с другими службами мониторинга, такими как Nagios, Cacti или Zabbix, он имеет тенденцию быть очень легким в ресурсах. потребления и может выполнять работу в качестве платформы мониторинга, настроив отправку электронных писем или текстовых SMS через обширный список шлюзов SMS, если ваши отслеживаемые веб-сайты и службы сталкиваются с техническими проблемами или не работают.

Домашняя страница: Монитор PHP-сервера