‼️ İlgili makinede Docker ve Docker-Compose kurulu olduğu varsayılarak anlatım gerçekleştirilmiştir. Eğer kurulu değilse, ilk adım olarak kurulumlarını gerçekleştirmeniz gerekmektedir. Bu kaynaktan yaralanılabilir.
1. Prometheus Nedir?
Prometheus, ölçüm ve izleme sistemlerini bir araya getirmek için kullanılan açık kaynaklı bir araçtır. Prometheus, hizmetlerin sağlığını, performansını ve verimliliğini izlemek için birçok ölçüm ve gösterge toplar.
Ayrıca, esnek ve ölçeklenebilir bir yapıya sahiptir ve HTTP üzerinden metrikleri alabilir. Bir diğer yazıda bahsi geçecek olan Grafana ile birlikte kullanılarak görselleştirme ve raporlama için kullanılabilir.
2. Konfigürasyon
Prometheus konfigürasyonu için iki yaml dosyası oluşturulur:
- prometheus/prometheus.yml
- docker-compose.yml
2.1 Konfigürasyon dosyası: prometheus/prometheus.yml
prometheus.yml dosyasının konfigüre edilebilmesi için aşağıdaki adımlar izlenir.
- İlk olarak şu komut ile ana dizinde prometheus adlı bir dosya oluşturulur:
mkdir prometheus
- Ardından bu dizine gidilir:
cd prometheus
- prometheus.yml dosyasının içine girilir:
nano prometheus.yml
- Dosyanın içine aşağıdaki aşağıdaki veriler girilir ve kaydedilip çıkılır:
my global config global: scrape_interval: 15s # By default, scrape targets every 15 seconds. evaluation_interval: 15s # By default, scrape targets every 15 seconds. # scrape_timeout is set to the global default (10s). # Attach these labels to any time series or alerts when communicating with # external systems (federation, remote storage, Alertmanager). external_labels: monitor: 'my-project' # Load and evaluate rules in this file every 'evaluation_interval' seconds. rule_files: - 'alert.rules' # - "first.rules" # - "second.rules" # alert alerting: alertmanagers: - scheme: http static_configs: - targets: - "alertmanager:9093" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # Override the global default and scrape targets from this job every 5 seconds. scrape_interval: 15s static_configs: - targets: ['localhost:9090'] - job_name: 'cadvisor' # Override the global default and scrape targets from this job every 5 seconds. scrape_interval: 15s static_configs: - targets: ['cadvisor:8080'] - job_name: 'node-exporter' # Override the global default and scrape targets from this job every 5 seconds. scrape_interval: 15s static_configs: - targets: ['node-exporter:9100']
2.2 Docker Compose: docker-compose.yml
Prometheus'u başlatabilmek adına aşağıdaki adımlar izlenir.
- İlk olarak şu komut ile ana dizine geçilir:
cd ..
- Daha sonra docker-compose.yml dosyasının içine girilir:
nano docker-compose.yml
- Dosyanın içine aşağıdaki aşağıdaki veriler girilir ve kaydedilip çıkılır:
version: '3.7' volumes: prometheus_data: {} grafana_data: {} networks: front-tier: back-tier: services: prometheus: image: prom/prometheus:v2.36.2 volumes: - ./prometheus/:/etc/prometheus/ - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' ports: - 9090:9090 links: - cadvisor:cadvisor - alertmanager:alertmanager depends_on: - cadvisor networks: - back-tier restart: always node-exporter: image: quay.io/prometheus/node-exporter:latest volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro - /:/host:ro,rslave command: - '--path.rootfs=/host' - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - --collector.filesystem.ignored-mount-points - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)" ports: - 9100:9100 networks: - back-tier restart: always deploy: mode: global alertmanager: image: prom/alertmanager ports: - 9093:9093 volumes: - ./alertmanager/:/etc/alertmanager/ networks: - back-tier restart: always command: - '--config.file=/etc/alertmanager/config.yml' - '--storage.path=/alertmanager' cadvisor: image: gcr.io/cadvisor/cadvisor volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro ports: - 8080:8080 networks: - back-tier restart: always deploy: mode: global grafana: image: grafana/grafana user: "472" depends_on: - prometheus ports: - 3000:3000 volumes: - grafana_data:/var/lib/grafana - ./grafana/provisioning/:/etc/grafana/provisioning/ env_file: - ./grafana/config.monitoring networks: - back-tier - front-tier restart: always
3. Prometheus Başlat
- Son olarak şu komut ile Prometheus başlatılır:
docker-compose up -d
- Ardından tarayıcıya "http://IP:9090" girilir ve Prometheus arayüzüne erişilir:
IP: Prometheus kurulu olan makine'nin IP'si yazılır.
Top comments (1)