top of page

Cài đặt blackbox exporter cho Prometheus

Writer's picture: Tuan NguyenTuan Nguyen

Mục đích: Mình có nhu cầu giám sát trạng thái các đường internet FTTH của công ty, biết được có rớt mạng hay không. Vì mình quản lý nhiều đường internet cài đặt trên các router ở các nơi khác nhau, nếu có rớt mạng thì mình tốn thời gian và thao tác để kiểm tra.


Điều kiện:

- Các đường FTTH là ip tĩnh.

- Trên các router, các bạn bật chế độ cho phép ping từ internet.

- Một server đã cài đặt Prometheus, các bạn có thể xem lại hướng dẫn theo link sau: Hướng dẫn cài Prometheus + Grafana để theo dõi tình trạng của server và các dịch vụ (wixsite.com)


Trong hướng dẫn này, mình chỉ hướng dẫn cài blackbox exporter, phần cài prometheus tham khảo link bên trên.

Mình sẽ dùng module icmp của blackbox exporter để kiểm tra trạng thái FTTH.


Thực hiện:

Đăng nhập vào server đã cài prometheus, tải blackbox exporter về. Các bạn có thể download tại: https://prometheus.io/download/ hoặc https://github.com/prometheus/blackbox_exporter

# wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.19.0/blackbox_exporter-0.19.0.linux-amd64.tar.gz
# tar zxvf blackbox_exporter-0.19.0.linux-amd64.tar.gz
# cd blackbox_exporter-0.19.0.linux-amd64
# sudo mv blackbox_exporter /usr/local/bin
# sudo mkdir /etc/blackbox
# sudo mv blackbox.yml /etc/blackbox
# sudo useradd -rs /bin/false blackbox
# sudo chown blackbox:blackbox /usr/local/bin/blackbox_exporter
# sudo chown blackbox:blackbox /etc/blackbox/*

Tạo file để chạy dịch vụ blackbox exporter

# sudo nano /etc/systemd/system/blackbox.service

[Unit]

Description=Blackbox Exporter Service

Wants=network-online.target

After=network-online.target


[Service]

Type=simple

User=blackbox

Group=blackbox

ExecStart=/usr/local/bin/blackbox_exporter \

--config.file=/etc/blackbox/blackbox.yml \

--web.listen-address=":9115"


Restart=always


[Install]

WantedBy=multi-user.target


# sudo systemctl enable blackbox.service
# sudo systemctl start blackbox.service

Chỉnh lại file cấu hình blackbox.yml vì mình dùng icmp ipv4 bên mình tạo module khác tên là icmp_ipv4. Lưu ý, bạn ghi nhớ tên module này để cấu hình tiếp trong file prometheus.yml

# sudo nano /etc/blackbox/blackbox.yml

modules:

http_2xx:

prober: http

http_post_2xx:

prober: http

http:

method: POST

tcp_connect:

prober: tcp

pop3s_banner:

prober: tcp

tcp:

query_response:

- expect: "^+OK"

tls: true

tls_config:

insecure_skip_verify: false

ssh_banner:

prober: tcp

tcp:

query_response:

- expect: "^SSH-2.0-"

- send: "SSH-2.0-blackbox-ssh-check"

irc_banner:

prober: tcp

tcp:

query_response:

- send: "NICK prober"

- send: "USER prober prober prober :prober"

- expect: "PING :([^ ]+)"

send: "PONG ${1}"

- expect: "^:[^ ]+ 001"

icmp:

prober: icmp

icmp_ipv4:

prober: icmp

icmp:

preferred_ip_protocol: ip4

Tiếp theo sẽ cấu hình file prometheus.yml

# sudo nano /etc/prometheus/prometheus.yml

Trong phần scrape_configs thêm job mới như sau

# Blackbox icmp

- job_name: 'blackbox'

metrics_path: /probe

params:

module: [icmp_ipv4] # Đây là tên module chúng ta đã tạo trong file blackbox.yml

static_configs:

- targets: ['14.241.1.2'] # Nhập IP tĩnh đường FTTH bạn muốn giám sát

- targets: ['115.74.1.3']

relabel_configs:

- source_labels: [__address__]

target_label: __param_target

- source_labels: [__param_target]

target_label: instance

- target_label: __address__

replacement: localhost:9115 # Prometheus server và blackbox exporter mình cài cùng trên

cùng 1 server nên mình để là localhost. Port lắng nghe của

dịch vụ blackbox exporter là 9115

# sudo systemctl restart prometheus.yml

Bạn tiến hành truy cập web:

Bạn xem kết quả dòng cuối cùng probe_success nếu bằng 1 là oke, nếu là 0 thì bạn chạy thêm lệnh sau:

# sudo setcap cap_net_raw+ep blackbox_exporter

Chúc các bạn thành công !

7 views0 comments

Comments


 

© 2018 by Tuấn Nguyễn

 Liên hệ tôi
  • Facebook - Black Circle
  • Google+ - Black Circle
bottom of page