Postgresql metrics with prometheus and Grafana (postgresql exporter)
bu yazıda postgresql bir databaseinizden nasıl metricleri alıp grafanada göstereceğinizden bahsedeceğim.
postgresql iniz nerde çalıştığı önemli değil exporterı ona ulaştırmanız yeterli.
postgresql_exporter
öncelikle binary i kurmamız gerekiyor.
bu binary i githubdan indirdikten sonra local binary directorysine atalım.
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.15.0/postgres_exporter-0.15.0.linux-amd64.tar.gz
tar -xzvf postgres_exporter-0.15.0.linux-amd64.tar.gz
chmod +x postgres_exporter-0.15.0.linux-amd64/postgres_exporter
mv postgres_exporter-0.15.0.linux-amd64/postgres_exporter /usr/local/bin/
daha sonra postgresql e bağlanıp metricleri alması için postgresql için envrionment gireceğiz.
bunu da bir .env dosyası ile yapabiliriz. öncelikle bir dizin açıp içine env dosyasını oluşturalım.
mkdir -p /opt/postgres_exporter
cd /opt/postgres_exporter
touch postgres_exporter.env
benim IP 10.232.0.5 ve user password aynı. isterseniz admin yetkili bir user oluşturup ya da sadece read onu da kullanabilirsiniz.
read only user için:
ben postgres default userını kullanacağım.
daha sonra postgresql_exporter için service şeklinde çalışması için systemd altına bir dosya oluşturalım.
vi /etc/systemd/system/postgres_exporter.service
bunun içine hem environmenti hem de postgre binarysini göstereceğiz ve onları kullanarak çalışacak. bu şekilde istediğiniz her run edilen process için servis oluşturabilirsiniz. kendiniz bir bash script yapıp onu da servis olarak oluşturup her zaman restart olsa bile çalışmasını sağlayabilirsiniz.
sudo systemctl daemon-reload
sudo systemctl start postgres_exporter
sudo systemctl enable postgres_exporter
postgresql exporterdan sonra şimdi prometheus u ayarlamaya geldi.
protmehues
prometheus için öncelikle platformunuza uygun binary indirmelisiniz.
bir tane dizin yaratıp config fileı oraya koyacağız.
mkdir -p /opt/prometheus
cd /opt/prometheus
touch prometheus.yml
daha sonra confiği içine koyacağız.
prometheus için de service şeklinde çalışması için bir file yaratacağız.
vi /etc/systemd/system/prometheus.service
daha sonra içeriği içine koyacağız.
daemon reload ve restart işleminden sonra çalışmaya başlayacak ve metricleri grafana için hazır hale getirecek.
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
çalışıp çalışmadığını IP nize curl atarak görebilirsiniz.
curl http://postgresqlip:9100/metrics
metriclerin geldiğini görmelisiniz.
grafana
ben hızlıca docker üzerinde bir grafana ayaga kaldırıp datasource ekleyeceğim, hali hazırda kullandığınız grafanaya da koyabilirsiniz.
basitçe bir container olarak ayaga kaldırdım user pass admin/admin
docker run -d — name=grafana -p 3000:3000 grafana/grafana
grafanaya 3000 portundan bağlanacağım.
datasource eklemek için sırasıyla
connections -> data source -> add new datasource
diyerek prometheus u seçiyoruz.
başka bir şey değiştirmeden save and test dediğiniz anda başarılı olduğunu görmeniz gerek
şimdi bir tane dashboard import edeceğiz.
dashboard a gelerek import seçip ID kısmına 9628 yazacağız bu bize hazır postgresql dashboardu verecek.
load dediğimiz anda dashboard gelecek ve datasource olarak eklediğimiz prometheus u göstereceğiz.
ve ardından postgresql metriclerimiz hazır hale geliyor. dashboarddan postgresql i monitor edebiliriz.
bir sonraki yazımda görüşmek üzere.
h.a.s.