[Prometheus] Minotoring hệ thống bằng Prometheus

Run prometheus bằng docker

  • Tạo file docker-compose.yml
version: "3"
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - 9090:9090
  • Tạo file prometheus.yml chứa danh sách targets hay instance để prometheus server gửi request scrapse metrics:
global:
  scrape_interval: 15s
scrape_configs:
  - job_name: "myseries"
    scrape_interval: 5s
    static_configs:
      - targets: ["127.0.0.1:2122"]
  • Đặt 2 file này vào chung 1 folder và run docker-compose cho file docker-compose.yml
  • Lúc này check targets của prometheus xem có lấy được metrics thành công hay không bằng localhost:9090/targets và sẽ thấy prometheus server không thể thấy được 127.0.0.1:2122 vì prometheus nằm trong docker còn target lại ở host. Do đó để khác phục việc này thì cần bổ sung dòng network_mode=host vào file docker-compose.yml.
  • Cách trên chỉ áp dụng đúng cho docker trên linux. Đối với hệ điều hành khác thì ta không thể sử dụng network host, ta có thể sử dụng cách khác:
1. cách thêm dòng sau vào trong file docker-compose.yml `network_mode:bridge`
2. xác định địa chỉ ip của docker host gắn ở bridge network bằng lệnh ```ip addr show docker0 ```
3. chỉnh `targets` trong prometheus.yml thành địa chỉ của docker host

Leave a Reply

Your email address will not be published. Required fields are marked *