前回の記事を書いた後、ZabbixでEdgeRouter ER-8の温度を取得することができたので
記事にしたいと思います。
https://luispc.com/server/2017/05/10/9020
EdgeRouter ER-8 にSSHできるようにする
Webでログインしたら、フッターっぽいところに system タブがあるので
そこを開いてSSHを有効化します。
ちなみにこの時点でWAN側のポートが開くので要注意です。
ホームディレクトリにスクリプトを設置する
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/vbash | |
args=$1 | |
# Setup for using vyatta command | |
# ================================= | |
shopt -s expand_aliases | |
. /etc/bash_completion.d/vyatta-op | |
result=`show hardware temperature` | |
case "$args" in | |
"BoardCPU" ) echo ${result} | awk '{print $3}' | sed -e 's/[^0-9]//g' ;; | |
"CPU" ) echo $result | awk '{print $5}' | sed -e 's/[^0-9]//g' ;; | |
"BoardPHY" ) echo $result | awk '{print $8}' | sed -e 's/[^0-9]//g' ;; | |
"PHY" ) echo $result | awk '{print $10}' | sed -e 's/[^0-9]//g' ;; | |
* ) echo "Please check args." ;; | |
esac |
これに実行権限を与える chmod +x get_temperature.sh
Zabbix server で zabbixユーザーがSSHできるようにする
僕の環境では zabbix ユーザーは /bin/false
な状態だったのでいくつかコマンドを実行
# usermod -s /bin/bash zabbix # mkdir /home/zabbix # chown -R zabbix:zabbix /home/zabbix # usermod -d /home/zabbix zabbix # su - zabbix $ mkdir .ssh
また、一度known_hosts
に EdgeRouter を追加するためにzabbix
ユーザーでSSH
$ ssh ubnt.hoge.local -l hoge -p 22
Zabbix server の外部スクリプトとしてスクリプトを設置する
#!/bin/bash echo `sshpass -p 'PASS' ssh -o StrictHostKeyChecking=no -p PORT IP -l USER "/home/hoge/get_temperature.sh $1"
これをZabbixのexternalscripts
フォルダの中に入れる
zabbixで実行できるようにしておく
$ chown -R zabbix:zabbix router.sh $ chmod +x router.sh
zabbix server の再起動
# systemctl restart zabbix-server
Zabbix にアイテムを追加する
こんな感じに追加する。
引数の部分はCPU
以外にもBoardCPUと
とPHY
、BoardPHY
が取得できます。
確認する
EdgeRouterのCPU温度をZabbixで取得できたぞーーー pic.twitter.com/ES5KLXss4X
— らりるれるいすにゃん (@lu_iskun) 2017年5月11日