Speedtestの結果をZabbixに取り込んでみた

久しぶりの更新。
まあ、そんなことはどうでもよいかと。

回線速度の推移をZabbixで見たいなぁと。
あと、Speedtest CLIからツールの取得が出来るようになったのもあって。

最初にSpeedtest CLIの取得と準備。

# cd /root
# mkdir speedtest
# cd speedtest
# wget https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-x86_64-linux.tgz
# tar zxvf ookla-speedtest-1.0.0-x86_64-linux.tgz
# ./speedtest
==============================================================================

You may only use this Speedtest software and information generated
from it for personal, non-commercial use, through a command line
interface on a personal computer. Your use of this software is subject
to the End User License Agreement, Terms of Use and Privacy Policy at
these URLs:

        https://www.speedtest.net/about/eula
        https://www.speedtest.net/about/terms
        https://www.speedtest.net/about/privacy

==============================================================================

Do you accept the license? [type YES to accept]: Yes

と、1回実行しておく。

Speedtest CLIの実行と記録のシェルスクリプトの作成。

# cd /root
# vi Speedtst.sh
#!/bin/sh
/root/speedtest/speedtest -f csv > /etc/zabbix/speed.txt

speedtestのオプション”-s”でサーバを固定した方がよいかも。

これで、実行結果がcsvとして、”/etc/zabbix/speed.txt”に記録されるので、cronに登録。

# crontab -e
1 * * * * /root/Speedtst.sh 2> /root/Speedtst.log

とまあ、1時間に1回の実行でよいでしょう。

あとは、Zabbixに取り込むためのシェルスクリプトを作成。

Pingを取り出すシェルスクリプト。

# cd /etc/zabbix/
# vi speed_ping.sh
#!/bin/bash
cat /etc/zabbix/speed.txt | awk -v FPAT='([^,]+)|(\"[^\"]+\")' '{print $3}' | sed 's/"//g'

下り速度を取り出すシェルスクリプト。

# vi speed_down.sh
#!/bin/bash
dw=`cat /etc/zabbix/speed.txt | awk -v FPAT='([^,]+)|(\"[^\"]+\")' '{print $6}' | sed 's/"//g'`
echo `expr $dw / 125000`

上り速度を取り出すシェルスクリプト。

# vi speed_up.sh
#!/bin/bash
up=`cat /etc/zabbix/speed.txt | awk -v FPAT='([^,]+)|(\"[^\"]+\")' '{print $7}' | sed 's/"//g'`
echo `expr $up / 125000`

Ping・下り速度・上り速度をZabbixエージェントの”UserParameter”として登録。

# vi zabbix_agentd.conf
UserParameter=speed.ping,/etc/zabbix/speed_ping.sh
UserParameter=speed.down,/etc/zabbix/speed_down.sh
UserParameter=speed.up,/etc/zabbix/speed_up.sh

そして、zabbix-agentの再起動。

# systemctl restart zabbix-agent

これで、Zabbixサーバのキーとして”speed.ping”・”speed.down”・”speed.up”として登録されるので、アイテムを作成して、グラフを作成すればよいかと。

にほんブログ村 IT技術ブログへ

コメント