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
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
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