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 !
Comments