Kā izmantot PHP-FPM eksportētāju
Izvietojot serverī vienu no lietotnēm, kuru izstrādāju, es saskāros ar ļoti dīvainu php-fpm procesa uzvedību. Šīs uzvedības reproducēšana varēja aizņemt vairākas stundas, tāpēc „muļķīgā mēģini-un-gaidi“ metode būtu prasījusi pārāk daudz laika, lai to novērstu. Pirmais, ko izdarīju, bija uzstādīt monitoringu, jo tas ļauj sekot līdzi tam, kas notiek serverī, kamēr jūs guļat.
Man ļoti patīk Prometheus un Grafana, tāpēc bija diezgan skaidrs, ka izvēlēšos tieši šos rīkus.
Ja lasāt šo ceļvedi, visticamāk, jums ir radušās problēmas ar uzstādīšanu, taču pieņemšu, ka Prometheus jums jau ir uzstādīts.
Uzstādīšana
Sāksim. Pieņemšu, ka jūs jau esat pieslēdzies pa SSH serverim vai konteinerim, kuru vēlaties monitorēt. Izmantošu PHP FPM Exporter no šī repozitorija.
Lejupielādējiet eksportētāju un pārvietojiet to uz /usr/local/bin (jo tā ir parasta, nevis ar distributīva pakotņu pārvaldnieku pārvaldīta pakotne), izmantojot šo komandu:
wget https://github.com/hipages/php-fpm_exporter/releases/download/v2.2.0/php-fpm_exporter_2.2.0_linux_amd64
mv php-fpm_exporter_* /usr/local/bin/php-fpm_exporter
chmod 755 /usr/local/bin/php-fpm_exporter
Konfigurācija
Šī daļa man sagādāja zināmas grūtības (mans attaisnojums — bija jau vēls), kas mani pamudināja uzrakstīt šo ceļvedi nākamajā rītā pēc uzstādīšanas.
-
Atveriet savu PHP-FPM konfigurāciju (nomainiet
8.3pret savu PHP versiju):vi /etc/php/8.3/fpm/pool.d/www.conf -
Veiciet šādas izmaiņas:
-
Atkomentējiet listen režīma iestatījumu:
listen.mode = 0660 -
Atkomentējiet statusa URI:
pm.status_path = /status -
Pārliecinieties, ka soketa konfigurācija norāda uz pareizo ceļu (ja nepieciešams, nomainiet
8.3pret savu PHP versiju):listen = /run/php/php8.3-fpm.sock
-
Atkomentējiet listen režīma iestatījumu:
- Saglabājiet izmaiņas un izejiet no redaktora.
-
Restartējiet PHP-FPM pakalpojumu, lai piemērotu konfigurāciju:
systemctl restart php8.3-fpm
Tagad jūsu PHP-FPM instance ir konfigurēta tā, lai padarītu metrikas pieejamas caur /status ceļu definētajā soketā.
Pakalpojums
Tālāk izveidosim pakalpojumu PHP-FPM eksportētājam, lai tas varētu darboties fonā un automātiski startēt sistēmas ieslēgšanās brīdī.
Atveriet jaunu pakalpojuma failu eksportētājam:
vi /etc/systemd/system/php-fpm_exporter.service
Pievienojiet failam šādu saturu:
# Service file for PHP-FPM Exporter:
[Unit]
Description=PHP-FPM Exporter Service
After=network.target
[Service]
User=www-data
Group=www-data
Type=simple
ExecStart=/usr/local/bin/php-fpm_exporter server --phpfpm.fix-process-count=true --phpfpm.scrape-uri "unix:///run/php/php8.3-fpm.sock;/status"
[Install]
WantedBy=multi-user.target
Pakalpojuma startēšana un iespējošana
Pārlādējiet systemd dēmonu, lai tas uztvertu jauno pakalpojuma konfigurāciju:
sudo systemctl daemon-reload
Iespējojiet PHP-FPM eksportētāja pakalpojumu, lai tas automātiski startētu sistēmas ieslēgšanās brīdī
sudo systemctl enable php-fpm_exporter
Startējiet PHP-FPM eksportētāja pakalpojumu:
sudo systemctl start php-fpm_exporter
Pārbaudiet pakalpojuma statusu, lai pārliecinātos, ka tas darbojas pareizi:
sudo systemctl status php-fpm_exporter
Ja viss ir uzstādīts pareizi, jums vajadzētu redzēt, ka pakalpojums ir norādīts kā active (running). Ja rodas kādas problēmas, žurnālus varat pārbaudīt šādi:
journalctl -u php-fpm_exporter -f
Metriku vākšana
Tagad, kad PHP-FPM eksportētājs darbojas, ir pienācis laiks konfigurēt Prometheus, lai tas vāktu metrikas.
-
Atveriet savu Prometheus konfigurācijas failu (parasti
prometheus.yml). -
Pievienojiet šādu darba (job) konfigurāciju:
- job_name: 'php-fpm-exporter' scrape_interval: 15s # Adjust based on your needs static_configs: - targets: ['ip_of_your_server:9253'] -
Saglabājiet izmaiņas un restartējiet Prometheus:
sudo systemctl restart prometheus -
Pārliecinieties, ka Prometheus vāc metrikas, apmeklējot mērķu (targets) lapu:
http://<your-prometheus-server>:9090/targets. Jums vajadzētu redzēt, ka php-fpm-exporter mērķis ir norādīts kā up. Ja tā nav, pārliecinieties, ka eksportētājs darbojas un ka ugunsmūra noteikumi nebloķē savienojumu.
Uzstādījuma pārbaude Grafanā
Kad Prometheus veiksmīgi vāc metrikas, varat izveidot vizualizācijas Grafanā.
Prometheus pievienošana kā datu avots
- Piesakieties savā Grafana instancē.
- Dodieties uz Settings → Data Sources.
- Noklikšķiniet uz Add Data Source un izvēlieties Prometheus.
-
Norādiet Prometheus URL (piemēram,
http://<your-prometheus-server>:9090). - Noklikšķiniet uz Save & Test, lai apstiprinātu savienojumu.
Ja viss darbojas, jums vajadzētu redzēt ziņojumu, ka datu avots ir veiksmīgi pievienots.
Veiksmīgu monitoringu