본문 바로가기
Tech/Applications

influxdb와 grafana로 asus 공유기 모니터링 하기

by 타이호 2018. 5. 12.
반응형

아래 블로그에서 asus 공유기의 Metric을 Influxdb와 Grafana를 이용하여 모니터링 할 수 있는 기능을 보고 docker로 이 환경을 구성해 본다.


http://www.instructables.com/id/How-to-graph-home-router-metrics/


필요사항

JFFS라는 파일 시스템이 enable되어야 해서 멀린펌으로 업데이트를 한다.

https://asuswrt.lostrealm.ca/

위 사이트에서 본인의 라우터에 해당되는 버전을 받아서 업데이트를 하면 된다. 기존 설정은 그대로 유지되지만 만약에 정펌으로 돌아갈 일을 대비해서 백업은 받아둔다.


Influxdb

시놀로지에서 아래와 같이 influxdb docker image를 검색해서 설치 한다.

Default 설정 이외에 Port 설정은 api용 8086, 추가로 admin 웹 접속을 위해 8083을 넣어준다.

그리고 환경 변수에 INFLUXDB_ADMIN_ENABLED=true 값을 넣어준다.

그런데 값을 넣어도 admin UI가 보여지지 않는다 -_-;;

그래서 terminal에서 직접 db를 생성한다.

DB생성은 CREATE DATABASE mydb; 이렇게 수행하면 된다.


Grafana

Grafana 역시 docker image를 받아서 설치만 해주고 해당 포트로 접속하면 아래와 같이 접속된다.


기본 아이디와 비밀번호는 admin / admin 이다.


Asus 공유기

우선 멀린펌으로 업데이트 하고 난 뒤 JFFS 파일시스템을 enable하고, ssh 접속을 enable 한다.

공유기에 ssh로 접속 후 /jffs/scripts/routerstats 디렉토리를 만들고 아래의 shell 파일을 압축을 풀어 넣는다.

https://cdn.instructables.com/ORIG/FST/OQIA/IDON620P/FSTOQIAIDON620P.zip

그리고 해당 파일 중 todb.sh에서 db에 대한 정보를 수정한다.


Grafana Influxdb 연동

Grafana에서 datasource를 아래와 같이 add한다.


Asus 공유기

공유기에서 metric을 체크하기 위해서는 아래 스크립트를 받아서 수행한다.

https://github.com/thkang0/asusrouter.git

스크립트는 아래 위치에 넣어두고 해당 스크립트는 cron job으로 수행한다

admin@RT-AC66U-9110:/jffs/scripts/routerstats# ls

router_assoclist.sh  router_eth0.sh router_net.sh        router_temp.sh todb.sh

router_cpu.sh        router_mem.sh router_ping_ext.sh   routerstats.sh


Cron job은 1분에 한번 수행하도록 한다.

# crontab -l

*/1 * * * * /jffs/scripts/routerstats/routerstats.sh


참고로 influxdb는 최신버전(1.5.2)를 받아서 수행했는데 위 블로그에 있는 스크립트는 오류가 나서 수정해서 github에 올려두었으니 참고하면 될 것 같다.


최종 화면

반응형