Skip to content
Dokumentatsiya
PostgreSQL Monitoring

PostgreSQL Monitoring

postgresql-ornatish

Kirish

Bugungi raqamli asrda ma'lumotlar bazalari son-sanoqsiz ilovalarning asosi bo'lib, korxonalar, hukumatlar va jismoniy shaxslar uchun muhim servicelarni taqdim etadi. Elektron tijorat platformalaridan sog'liqni saqlash tizimlariga qadar ma'lumotlar bazalari zamonaviy dunyomizni quvvatlaydigan katta hajmdagi ma'lumotlarni saqlaydi. Shunday qilib, ushbu ma'lumotlar bazalarining sog'lig'i, ishlashi va mavjudligini ta'minlash muhim ahamiyatga ega.

Prometheus, Grafana va postgres_exporter haqida qisqacha ma'lumot

Prometheus-> HTTP endpointlarini o'lchash orqali nazorat qilinadigan targetlardan metrikalarni to'playdigan open-source monitoring tooli. Prometheus haqida malumot va o'rnatish uchun quyidagi qo'llanmani ko'rib chiqishingiz mumkin. To'liq qo'llanma (opens in a new tab). Prometheus nima? (opens in a new tab), Prometheus o'ratish va sozlash (opens in a new tab), Prometheusni service sifatida sozlash (opens in a new tab)

Grafana-> Monitoring va vizualizatsiya uchun mashhur open-source platformasi. Grafana bir nechta manbalardan, jumladan Prometheusdan olingan boy vizualizatsiyani (grafiklar, jadvallar va heatmaplar kabi) taqdim etadi. Uning moslashtirilgan dashboardi barcha muhim ko'rsatkichlarning(metrics) jamlangan ko'rinishini taqdim etadi. Prometheus haqida malumot va o'rnatish uchun quyidagi qo'llanmani o'qib chiqing. Grafana nima? (opens in a new tab), Grafana serverini qanday o'rnatish va sozlash (opens in a new tab), Grafana va Prometheusni integratsiya qilish (opens in a new tab), Grafana Dashboardni import qilish (opens in a new tab)

postgres_exporter-> PostgreSQL ko'rsatkichlari(metrics) uchun Prometheus exporteri. U PostgreSQL bilan birga ishlaydi, ma'lumotlar bazasi bilan bog'liq ko'metrikalarni Prometheus qabul qilishi mumkin bo'lgan formatda oladi va ochib beradi. postgres_exporter yordamida connection statsdan tortib so'rovlar unumdorligigacha(query performance) bo'lgan PostgreSQL ning turli jihatlarini kuzatish mumkin.

postgres_exporterni o'rnatish va sozlash

postgres_exporter (opens in a new tab) - bu PostgreSQL va Prometheus o'rtasidagi ko'prik vazifasini o'taydigan monitoring stackidagi asosiy komponent. PostgreSQL-ning ichki ko'rsatkichlarini(internal metrics) Prometheus tushunadigan formatga tarjima qilish orqali bu bizga ma'lumotlar bazasining sog'lig'i va ishlashini diqqat bilan kuzatib borish imkonini beradi.

1-> Oxirgi versiyani yuklab oling. postgres_exporter rasmiy GitHub repositoriyasiga (opens in a new tab) tashrif buyuring va oxirgi versiyani yuklab oling.

mkdir /opt/postgres_exporter
cd /opt/postgres_exporter
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.15.0/postgres_exporter-0.15.0.linux-arm64.tar.gz

2-> Arxivdan chiqarib oling. Bu arxiv bilan bir xil nomdagi papkani yaratadi. Ushbu papkaga o'ting:

tar -xvf postgres_exporter_*.tar.gz
cd postgres_exporter-0.15.0.linux-arm64

3-> Binary faylni mos joyga ko'chiring.

Binary faylni /usr/local/bin ga o'tkazamiz, shuning uchun uni istalgan joydan osongina execute qilish mumkin:

sudo cp postgres_exporter /usr/local/bin

4-> Execution permission berish. postgres_exporter binary fayli execute qilish mumkinligiga ishonch hosil qiling:

sudo chmod +x /usr/local/bin/postgres_exporter

5-> Konfiguratsiya. PostgreSQL ulanish qatorini sozlang. postgres_exporter PostgreSQLga ulanish uchun connection stringni talab qiladi. Buni environment variable yordamida o'rnating. Bu yerda biz DATA_SOURCE_NAME deb nomlanuvchi o'zgaruvchini o'rnatamiz . DATA_SOURCE_NAME ichidagi barcha belgilangan ma'lumotlar bazalaridan metrikalar yig'iladi.

cd /opt/postgres_exporter
sudo nano postgres_exporter.env
/opt/postgres_exporter/postgres_exporter.env
# birorta databaseni kuzatish uchun quyidagi configratsiyani o'zingizga moslab oling
DATA_SOURCE_NAME="postgresql://username:password@localhost:5432/database-name?sslmode=disable"
# yoki barcha databaselarni monitoring qilmoqchi bo'lsangi quyidagi configratsiyani o'zingizga moslab oling
DATA_SOURCE_NAME="postgresql://postgres:postgres@localhost:5432/?sslmode=disable"

6-> Postgres foydalanuvchisini yaratish. Birinchi buyruq exportchi serviceni ishga tushiradigan postgres nomli tizim foydalanuvchisini yaratadi. Bu service cheklangan imtiyozlar bilan ishlashini ta'minlaydi va xavfsizlikni oshiradi.

sudo useradd -rs /bin/false postgres

7-> Systemd uchun service faylini yaratish orqali siz tizimga postgres_exporter jarayonini qanday boshqarish va ishga tushirish haqida ko'rsatma berasiz.

sudo nano /etc/systemd/system/postgres_exporter.service
/etc/systemd/system/postgres_exporter.service
[Unit]
Description=Prometheus exporter for Postgresql
Wants=network-online.target
After=network-online.target
[Service]
User=postgres
Group=postgres
WorkingDirectory=/opt/postgres_exporter
EnvironmentFile=/opt/postgres_exporter/postgres_exporter.env
ExecStart=/usr/local/bin/postgres_exporter --web.listen-address=:9187 --web.telemetry-path=/metrics
Restart=always
[Install]
WantedBy=multi-user.target

8-> Nihoyat, servicega start bering va ishga tushiring

sudo systemctl daemon-reload
sudo systemctl start postgres_exporter
sudo systemctl enable postgres_exporter
sudo systemctl status postgres_exporter

postgres_exporterni prometheus bilan integratsiya qilish

1-> posres_exporterni Prometheus bilan integratsiya qilish uchun prometheus o'rnatilgan serverga kirib prometheus.yml konfigratsiya fayliga quyidagi konfigatsiyalarni qo'shishingiz kerak.

sudo systemctl stop prometheus
sudo nano /etc/prometheus/prometheus.yml

2-> scrape uchun yangi target qo'shamiz.

/etc/prometheus/prometheus.yml
job_name: 'postgres_exporter'
    static_configs:
targets: ['0.0.0.0:9187']

0.0.0.0 o'rniga postgres_exporter o'rnatilgan serveringiz IP manzilini yozasiz va faylni saqlab prometheusni qayta ihsga tushirasiz.

sudo systemctl restart prometheus

Grafana dashboarda metrikalarni vizualizatsiya qilish

Nihoyat biz barcha bosqichlarni tugatdik endigi navbat Grafana dashboardga. PostgreSQL monitoring ucun bir nechta dashboardlar mavjud ularni hohishingiz va talabingizga qarab tanlab olaverasiz.

wordpress wordpress

Rasmda PostgreSQL Database(ID: 9628) (opens in a new tab) nomli monitoring dashboardi.

Agar siz Grafanaga dashboard qo'ya olmagan bo'lsangiz Grafanaga dashboard qo'yicha bo'yicha quyidagi qo'llanmani o'qib chiqing. Grafana Dashboardni import qilish (opens in a new tab)

Umid qilamanki sizda barchasi muvafaqqiyatli bo'ldi :)

Qo'shimcha