Monitor Switch, Router cisco với Prometheus và Grafana

Monitor Switch, Router cisco với Prometheus và Grafana.

 

1./ Cài đặt Docker container.

Cài đặt tự động bằng script sau:

nano /opt/script/build-docker-container.sh

 

#!/bin/bash

#Install Docker container on Ubuntu 18.04 LTS

#/opt/script/build-docker-container.sh

# © Copyright CuongNH2 

sudo apt-get -y update

sudo apt-get -y upgrade

#remove old version docker

sudo apt-get remove docker docker-engine docker.io

 

echo "####################################################################"

echo "#  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Install dependencies package​​  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ #"

echo "####################################################################"

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

 

 

echo "####################################################################"

echo "#  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Add Docker's GPG key​​  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ #"

echo "####################################################################"

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

 

cd /opt/setup

#Add repository

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

 

sudo apt-get -y update

 

apt-cache policy docker-ce

sudo apt-get install -y docker-ce

sudo systemctl enable docker

sudo systemctl status docker

 

cd /opt/script/

chmod +x build-docker-container.sh

./​​build-docker-container.sh

kiểm tra lại

docker --version

Chuyển thư mục lưu trữ docker về /opt

systemctl stop docker

cd /var/lib

mv docker /opt

ln -s /opt/docker .

systemctl restart docker

systemctl status docker

2./ Khởi tạo container Prometheus

sudo useradd -rs /bin/false prometheus

sudo mkdir /etc/prometheus

cd /etc/prometheus/ && sudo touch prometheus.yml

sudo mkdir -p /data/prometheus

sudo chown prometheus:prometheus /data/prometheus /etc/prometheus/*

 

nano /etc/prometheus/prometheus.yml

#Paste

scrape_configs:

 ​​​​ - job_name: prometheus

 ​​ ​​ ​​​​ static_configs:

 ​​ ​​ ​​ ​​ ​​​​ - targets:

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ - "localhost:9090"

######################################################

 ​​​​ - job_name: 'snmp_192_168_1_100

 ​​ ​​ ​​​​ scrape_interval: 60s

 ​​ ​​ ​​​​ static_configs:

 ​​ ​​ ​​ ​​ ​​​​ - targets: ['192.168.1.100']

 ​​ ​​ ​​​​ metrics_path: /snmp

 ​​ ​​ ​​​​ params:

 ​​ ​​ ​​ ​​ ​​​​ module: [if_mib]

 ​​ ​​ ​​​​ relabel_configs:

 ​​ ​​ ​​ ​​ ​​​​ - source_labels: [__address__]

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ target_label: __param_target

 ​​ ​​ ​​ ​​ ​​​​ - source_labels: [__param_target]

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ target_label: instance

 ​​ ​​ ​​ ​​ ​​​​ - target_label: __address__

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ replacement:​​ 127.0.0.1:9116

Cần thay thế targets là IP của switch, router cần monitor

Chắc chắn rằng không có port nào đang chiếm port 9090

sudo netstat -tulpn | grep 9090

Kiểm tra UID và GID của user prometheus

cat /etc/passwd | grep prometheus

prometheus:x:999:998:/home/prometheus:/bin/false

#tạo container prometheus

docker run -d -p 9090:9090 --user 999:998 \

--net=bridge \

-v /etc/prometheus/:/etc/prometheus \

-v /data/prometheus/:/data/prometheus \

prom/prometheus \

--config.file="/etc/prometheus/prometheus.yml" \

--storage.tsdb.path="/data/prometheus"

Kết quả

2973f82f1fea3ece389b265074f2d49f2bc3c9119e2cc73349b1993a880fe840

Như vậy đã Map được port 9090 của server cài Docker vào container và trỏ các file cấu hình tương ứng vị trí.

Lưu ý mở port 9090 trên server cài Docker

Để truy cập được vào container prometheus tiến hành sử dụng lệnh

docker exec -it prometheus sh

Lỗi khi tiến hành exec vào container mode bash thay vì sh :​​ OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown

#​​ https://github.com/docker/for-linux/issues/246

Truy cập vào prometheus qua Browser

http://yourip:9090/graph

 

3./ Enable SNMP trên switch, router cisco.

sh run | inc snmp

10 permit udp any any eq snmp

enable

conf t

#snmp-server community Htv123456 RO

snmp-server community public RO

4./ Check thông tin SNMP của switch, router cần lấy SNMP

cài thêm snmp

sudo apt-get install snmp -y

snmpwalk -v2c -c​​ public​​ 10.100.110.21

#với public là community string. và 10.100.110.21 là IP của switch, router.

iso.3.6.1.2.1.2.2.1.7.436281344 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.7.436285440 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.7.436289536 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.7.436293632 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.7.436297728 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.7.436301824 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.7.436305920 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.7.436310016 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.7.436314112 = INTEGER: 1

5./ Cấu hình trên Grafana

chọn SNMP Datasouce Prometheus

 

Sau đó add thêm Dashboard với​​ ID 11169 sẽ hiện được thông tin của Dashboard

 

Tham khảo:

https://fixloinhanh.com

https://github.com/prometheus/snmp_exporter

https://vnsys.wordpress.com/2020/01/05/monitoring-network-voi-prometheus-grafana/

  • Done.

SaKuRai

Xin chào, Mình là Sakurai. Blog này là nơi để note lại và chia sẻ những kiến thức, kinh nghiệm mà mình và anh em trong Team. Cảm ơn các bạn đã quan tâm theo dõi!

You may also like...

Leave a Reply