Skip to main content

Monitor monthly bandwidth in zabbix


Monitoring server's used bandwidth is not something that comes integrated with Zabbix by default.

First of all we deploy vnstat to the target server(s).  vnstat is a simple program to monitor network traffic:

[root@test-ashok ~]# yum install vnstat -y
[root@test-ashok ~]# vnstat -u -i ens160   (interface name)
[root@test-ashok ~]#  sudo chown -R vnstat: /var/lib/vnstat
[root@test-ashok ~]# sudo systemctl start vnstat
[root@test-ashok ~]# sudo systemctl enable vnstat

root@test-ashok ~]# vnstat -m

 eth0  /  monthly

       month        rx      |     tx      |    total    |   avg. rate
    ------------------------+-------------+-------------+---------------
      Apr '18      5.00 GiB |    2.46 GiB |    7.46 GiB |   36.93 kbit/s
    ------------------------+-------------+-------------+---------------
    estimated      7.65 GiB |    3.76 GiB |   11.41 GiB |

Now we need to add small bash script for user parameter for zabbix.

#!/bin/bash
# Current month total bandwidth in MB

i=$(vnstat --oneline | awk -F\; '{ print $11 }')

bandwidth_number=$(echo $i | awk '{ print $1 }')

bandwidth_unit=$(echo $i | awk '{ print $2 }')

case "$bandwidth_unit" in
    KiB)    bandwidth_number_MB=$(echo "$bandwidth_number/1024" | bc)
            echo $bandwidth_number_MB
        ;;
    MiB)    bandwidth_number_MB=$bandwidth_number
        ;;
    GiB)     bandwidth_number_MB=$(echo "$bandwidth_number*1024" | bc)
        ;;
    TiB)    bandwidth_number_MB=$(echo "$bandwidth_number*1024*1024" | bc)
        ;;
    esac
echo $bandwidth_number_MB

save this file as "monthlybandwidth.sh" in "/usr/lib/zabbix/externalscripts ".

change permissions to 755.

[root@test-ashok ~]# chmod 755 monthlybandwidth.sh

after this step we need to check the script is working by ./monthlybandwidth.sh

In agent cnfiguration file add this

UserParameter=system.monthlybandwidth,/usr/lib/zabbix/externalscripts/monthlybandwidth.sh

then we complted configuration with server end.


in zabbix frontend add below template to the host.

https://drive.google.com/open?id=1oM1TJju5DGSOrJIpwRLATzJoZU6d9JGj







Comments

  1. Hi, its great your script only a notice something, when you reach the 1 TB dont show like TB on Zabbix, show like 1 KGB

    ReplyDelete

Post a Comment