MongoDB metrics with prometheus and Grafana (mongodb exporter)
bu yazımda bir mongodb nizi kolayca nasıl Grafana da monitor edebilceğinizi göstereceğim.
mongodb nin nerde çalıştığı önemli değil. mongodb exporter ı bir kere çalıştırmanız yeterli. sırayla configleri yapalım.
mongodb
öncelikle mongodbexporter ın mongodb den verileri çekmesi için user yaratalım.
mongodb ye girerek aşağıdaki komutları çalıştıralım. bir user yaratıp çıkacağız.
use admin
db.createUser(
{
user: "mongodb_exporter",
pwd: "password",
roles: [
{ role: "clusterMonitor", db: "admin" },
{ role: "read", db: "local" }
]
}
)
db.adminCommand( { shutdown: 1 } )
exit
mongodb exporter
öncelikle github sitesinden mongodb exporter yüklmemiz gerekiyor.
daha sonra açtığımız user ile mongodb ye bağlanıp metricleri alması için tek bir komutla mongodb exporterı çalıştıracağız.
mongodb_exporter --mongodb.uri=mongodb://mongodb_exporter:password@mongodbip:port" --web.listen-address=:9001 --collect-all
metriclerin geldiğini görmek için
curl http://localhost:9001/metrics
metriclerin geldiğini göreceksiniz.
promeheus
metricleri aldık şimdi prometheus üzwrinden grafanya göndermek kaldı bunun için prometheus u githubdan yükleyeceğiz.
indirdikten sonra, binary yi /usr/local/bin/ e atalım.
binary indirdikten sonra /etc/prometheus/prometheus.yaml
dosyası yaratacağız. mongodb sunucunun local ipsini kullanarak yapacağız. çünkü grafanaya datasource eklediğimizde gelip burayı okuyacak localhost kalırsa conection sorunu yaşanıyor.
scrape_configs:
- job_name: 'mongodb'
scrape_interval: 5s
static_configs:
- targets: ['mongonodeip:9001', 'mongonodeip:9090']
prometheus u da bir service olarak başlatabiliriz.
vi /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
[Install]
WantedBy=multi-user.target
daha sonra systemctl daemon reload ve systemctl restart prometheus yaparak prometheus u çalıştırıyoruz.
curl http://localhost:9090/targets
dediğiniz anda prometheusun çalıştığını görebilirsiniz.
grafana
grafanaya girip datasource olarak prometheus un portunu göstereceğiz.
daha sonra grafana dashboard olarak mngo için özel yapılmış dashboardu ekleyeceğiz. dashboard import a id olarak 16490 kullanacağız.
load dedikten sonra dashboardumuz kullanılmaya hazır. farklı türden metricleri bu dashboard üzerinde bulabilirsiniz.
umarım yararlı bir yazı olmuştur.
görüşmek üzere
h.a.s.