미크로틱과 같은 장비는 SNMP 를 통하여 모니터링 할 수 있다고 한다. 그래서 해봤다.
snmp_exporter를 도커 컨테이너에서 실행하고자 한다면 9116번과 161번을 열어주는 것이 좋다. 9116은 Prometheus와 통신하기 위함이고 161번은 SNMP 통신의 기본 포트인 것 같다.
Prometheus의 snmp_exporter는 Github에서 구할 수 있다.
압축을 풀면 실행 파일과 기본 설정이 있는 snmp.yml 파일을 볼 수 있다. 그냥 실행시켜도 무난하지만 snmp.yml의 경로를 지정하는 것이 좋을 것 같다. 도커 컨테이너가 실행될 때 같이 실행하고 싶으니까 .bashrc 파일을 수정한다.
/root/snmp_exporter-0.21.0.linux-amd64/snmp_exporter --config.file="/root/snmp_exporter-0.21.0.linux-amd64/snmp.yml" &
다음으로 prometheus.yml 을 수정한다. 요령을 찾는데 몇 시간은 사용한 것 같다.
- 10.10.10.1 은 모니터링 대상인 mikrotik 공유기이다.
- 10.10.10.183은 snmp_exporter를 실행하고 있는 PC 이다.
- job_name: 'snmp_exporter'
static_configs:
- targets: ['10.10.10.1']
metrics_path: /snmp
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.10.10.183:9116