[Prometheus từ A đến Z] Phần 04. Giám sát thiết bị mạng Cisco qua snmp với Prometheus
Bài viết chỉ mang tính chất tham khảo và chia sẻ, các trong quá trình làm chắc chắn sẽ có bạn gặp bug. Nếu gặp bug thì vào telegram group ITFORVN để nhờ support từ cộng đồng. Hoặc các bạn thể có truy cập vào nguồn tham khảo để làm theo hướng dẫn chính thống. Ngoài ra bạn có thể tham gia Forum Google [prometheus-users] của nước ngoài để hỏi đáp.
Thân chào các anh em ITFORVN. Ở phần 03, mình có hướng dẫn các bạn sử dụng snmp để giám sát firewall Fortigate. Trong bài này mình hướng dẫn các bạn ứng dụng snmp_exporter để giám sát các thiết bị Cisco.
Như vậy các bạn đã biết cách sử dụng dụng SNMP Exporter Config Generator đển generate ra file config của snmp_exporter nếu đã đọc qua phần 03 của mình. Nếu các bạn nào chưa biết cách sử dụng hoặc quên có thể xem lại tại đây.
Bước 01. Để prometheus có thể thu thập được metric của Cisco bạn phải enable snmp trên những device Cisco. Để enable snmp bạn sử dụng config sau:
snmp-server community public RO
Bước 02. Tương tự ở phần 03, bây giờ chúng ta sẽ add module cisco vào file generator.yml để tạo ra file config snmp.yml có chứa module cisco.
modules:
########### Cisco
cisco:
# walk: [sysUpTime, interfaces, ifXTable]
walk:
- 1.3.6.1.2.1.2.2.1.1
- 1.3.6.1.2.1.2.2.1.2
- 1.3.6.1.2.1.2.2.1.10
- 1.3.6.1.2.1.2.2.1.13
- 1.3.6.1.2.1.2.2.1.14
- 1.3.6.1.2.1.2.2.1.16
- 1.3.6.1.2.1.2.2.1.19
- 1.3.6.1.2.1.2.2.1.2
- 1.3.6.1.2.1.2.2.1.20
- 1.3.6.1.2.1.2.2.1.5
- 1.3.6.1.2.1.2.2.1.7
- 1.3.6.1.2.1.2.2.1.8
- 1.3.6.1.2.1.31.1.1.1.1
- 1.3.6.1.2.1.31.1.1.1.18
- 1.3.6.1.4.1.9.9.48.1.1.1.5
- 1.3.6.1.4.1.9.9.48.1.1.1.6
- 1.3.6.1.4.1.9.2.1
- 1.3.6.1.2.1.1.5
lookups:
- source_indexes: [ifIndex]
lookup: ifAlias
- source_indexes: [ifIndex]
lookup: ifDescr
- source_indexes: [ifIndex]
# Use OID to avoid conflict with Netscaler NS-ROOT-MIB.
lookup: 1.3.6.1.2.1.31.1.1.1.1 # ifName
overrides:
ifAlias:
ignore: true # Lookup metric
ifDescr:
ignore: true # Lookup metric
ifName:
ignore: true # Lookup metric
ifType:
type: EnumAsInfo
version: 2
max_repetitions: 25
retries: 3
timeout: 10s
auth:
community: public
trong đó các dãy số này là :
– 1.3.6.1.2.1.2.2.1.1
– 1.3.6.1.2.1.2.2.1.2
OID. Thông tin về OID kiểm tra tại đây . https://cric.grenoble.cnrs.fr/Administrateurs/Outils/MIBS/
version: 2 tương ứng với snmp v2
community: snmpmonitor là community khai báo trong phần enable snmp của cisco.
Bước 03: Sau đó export mibs và generate ra file snmp.yml
export MIBDIRS=mibs
./generator generate
Tương tự nếu bị thiếu mib bạn có thể download tại đây ftp://ftp.cisco.com/pub/mibs sau đó bỏ vào thư mục mib của generator
Như vậy chúng ta đã có file snmp.yml
Bước 04: Copy file snmp.yml đến thư mục source của snmp_exporter
cp -R /root/go/src/github.com/prometheus/snmp_exporter/generator/snmp.yml /usr/local/snmp_exporter/
Bước 05: Restart và kiểm tra service
systemctl restart snmp_exporter.service
systemctl status snmp_exporter.service
Bước 06: Truy cập vào https://ipprometheus:9116 và điền các thông tin sau:
Hình 01: [Promethues từ A đến Z] Phần 04. Giám sát thiết bị mạng Cisco qua snmp
Target: là ip của cisco
Module: chính là module mà bạn tạo bằng generator cho cisco
- Nếu xuất ra metric là OK.
Hình 02: [Promethues từ A đến Z] Phần 04. Giám sát thiết bị mạng Cisco qua snmp
Bước 07: Tạo job trong prometheus để giám sát cisco với nội dung job sau:
vi /usr/local/prometheus/prometheus.yml
Nội dung như sau:
################################ CISCO
- targets: ['10.10.10.2']
# Core switch 01.
labels:
hostname: Core-SW1
device: cisco
company: ITFORVN
scrape_interval: 3m
scrape_timeout : 3m
metrics_path: /snmp
params:
module: [cisco]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.10.10.98:9116 # SNMP exporter.
Tương tự nếu bạn muốn thêm nhiều device cisco vào, bạn chỉ cần chèn đoạn target vào là OK.
Trong tất cả các job của prometheus mình đều thêm trường label vào để tiện query vào tạo dashboard trên grafana. Các bạn làm theo mình thì dash board sẽ không bị lổi.
Bước 08: Restart service và kiểm tra lại kết quả:
Hình 03: [Promethues từ A đến Z] Phần 04. Giám sát thiết bị mạng Cisco qua snmp
Bươc 09: Đăng nhập vào Grafana để tạo dashboard để giám sát thiết bị Cisco
Cách tạo dashboard trong grafana mình có hướng dẫn tại Bước 09 trong bài viết này.
Đây là dashboard sau khi đã import vào.
Hình 04: [Promethues từ A đến Z] Phần 04. Giám sát thiết bị mạng Cisco qua snmp
Như vậy tương tự cách của mình các bạn có thể ứng dụng nó vào để giám sát các thiết bị mạng của những hãng khác qua việc sử dụng snmp.
Đây là dashboard Cisco của mình bạn có thể download tại đây.
Về dashboard bạn có thể tham khảo thêm tại đây nhé. https://grafana.com/grafana/dashboards
Nguồn tham khảo:
https://github.com/prometheus/snmp_exporter
https://grafana.com/grafana/dashboards/7567
Bài viết chỉ mang tính chất tham khảo và chia sẻ, các trong quá trình làm chắc chắn sẽ có bạn gặp bug. Nếu gặp bug thì vào telegram group ITFORVN để nhờ support từ cộng đồng. Hoặc các bạn thể có truy cập vào nguồn tham khảo để làm theo hướng dẫn chính thống. Ngoài ra bạn có thể tham gia Forum Google [prometheus-users] của nước ngoài để hỏi đáp.
Tác giả: Nguyễn Hiếu – ITFORVN.COM
To you support to access: Nhóm Facebook ITFORVN
Tất cả bài viết về prometheus tại đây.
Giới thiệu về giải pháp giám sát hệ thống Prometheus và Grafana
Phần 01 – Cài đặt Prometheus và Grafana trên CentOS 07
Phần 02 – Giám sát Windows Server với Prometheus
Phần 03 – Giám sát firewall Fortigate với Prometheus
Phần 04 – Giám sát thiết bị mạng Cisco với Prometheus
Phần 05 – Giám sát firewall pfSense® và Linux Server với Prometheus
Phần 06 – Giám sát VMWARE với Prometheus
Phần 07 – Cấu hình alert trong Prometheus và gửi tin nhắn qua telegram