Установка инструмента «Монитор сервера PHP» с использованием стека LEMP или LAMP в Arch Linux
PHP Server Monitor — это инструмент веб-интерфейса с открытым исходным кодом, написанный на PHP, который может проверять, работают ли ваши серверы (IP-адреса, домены) или службы, и может отправлять вам уведомления через почтовые службы или SMS. если проблема возникла в отслеживаемой службе или порту. Он проверяет веб-сайты с помощью кода состояния HTTP, может отображать графики истории времени безотказной работы и задержки и может использовать два уровня аутентификации (администратор и обычный пользователь).
В этом руководстве представлен способ установки PHP Server Monitor в серверной среде Arch Linux, используя в качестве сервера Apache или веб-сервер Nginx. Таким образом, вы можете выбрать процесс установки, который лучше всего подходит вам.
Требования к монитору PHP-сервера
В качестве общих требований для установки и настройки PHP Server Monitor для любых других платформ Linux на вашем сервере должны быть установлены следующие пакеты.
- PHP 5.3.7+
- PHP-пакеты: cURL, MySQL
- База данных MySQL
- Веб-серверы Nginx или Apache
Системные Требования
Чтобы установить PHP Server Monitor с Nginx, используйте следующие руководства в качестве руководства по настройке стека LEMP и виртуальных хостов в Arch.
- Установите LEMP (Linux, Nginx, MySQL, PHP) в Arch Linux.
- Создание виртуальных хостов Nginx в Arch Linux
Чтобы установить PHP Server Monitor с Apache, используйте следующее руководство по настройке стека LAMP в Arch Linux.
- Установите 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, представленной ниже.
- http://www.phpservermonitor.org/download/
- 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-сервера