Zabbix 流量汇总教程

用Zabbix获取网络设备的接口流量后有一个很重要的需求就是将流量进行汇总。
首先通过监控项(items)来获取数据,然后通过计算公式(Calculated)将采集到的数据进行运算并储存到数据库中。
首先可以看下 2.4 版 Zabbix 的官方计算公式文档,了解大致格式。

1
func(<key>|<hostname:key>,<parameter1>,<parameter2>,...)

我们是要将同一时间点的多个接口的流量进行相加,所以函数采用的是last
其次是 hostname/key 部分,若只是对单个主机进行运算,可以直接在该主机下新建公式监控项进行汇总,但由于有很多台设备都需要进行运算,将汇总散落在各个主机下不方便管理及查看,所以统一新建一个地址为默认127.0.0.1的主机来进行汇总。
这样的话一定要在公式中填写主机名,这个主机名是添加设备中第一行的那个可以唯一标识设备的主机名称,而不是第二行的可见的名称
Key 是该主机下对应监控项的键值,这也是唯一标识接口的字符串。

所以如果是要添加两台7609设备 Te1/1 和 Te2/1 接口出流量进行汇总的话,首先要新建一台主机,只需要更改名称和群组,其他所有内容都保持原值,点击添加。
然后在项目中新建监控项,名称自己起,类型选择计算(Calculated),键值自己起一个唯一且有意义的。数据类型采用浮点型,单位为bps。其他保留默认添加即可。添加后若监控项行末未出现报错即添加成功。
公式为:

1
2
3
4
last("SZ-1.7609:ifHCInOctets[TenGigabitEthernet1/1]")+
last("SZ-1.7609:ifHCInOctets[TenGigabitEthernet2/1]")+
last("SZ-2.7609:ifHCInOctets[TenGigabitEthernet1/1]")+
last("SZ-2.7609:ifHCInOctets[TenGigabitEthernet2/1]")

添加完成后点击该汇总主机后的图形创建新图形,点击最下面的项目中的添加,主机选刚刚新建的汇总主机,然后选中出流量汇总监控项目即可完成添加图形。


由于计算是将采集到的数据进行计算后存储到数据库,所以汇总的数据是从你完成添加才开始有,但只要你添加项目后,无论什么时候添加图形,图形中的起始依然是完成汇总计算添加的那个时间点。
公式可以换行,所以为了方便查看及维护,建议每一个接口都单独放一行。
添加图形的项目中函数(function,中文版中错译为功能)建议使用最大值,以便能在图形中确定出流量最高点的时间。


公式中的主机名部分

公式中的键值部分

添加汇总主机

汇总计算公式

添加图形

Zabbix安装指南

操作系统:CentOS 7.2
Zabbix版本:2.4.7


#安装 EPEL 源:

1
yum install epel-release

#添加 Zabbix 仓库:
官方源实在是太慢了,于是用阿里云的镜像

1
2
rpm --import http://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX
rpm -Uv http://mirrors.aliyun.com/zabbix/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm

#安装 Zabbix

1
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

#安装 MariaDB

1
2
3
4
yum install mariadb-server mariadb
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation

#配置数据库
创建一个名为zabbix的数据库,用户名为zabbixuser

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql -uroot -p
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 45897
Server version: 5.5.44-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>create database zabbix character set utf8;
Query OK, 1 row affected (0.05 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbixuser'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.21 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

#初始化 Zabbix 数据库

1
2
3
4
cd /usr/share/doc/zabbix-server-mysql-2.4.7/create
mysql -u zabbixuser -p zabbix < schema.sql
mysql -u zabbixuser -p zabbix < images.sql
mysql -u zabbixuser -p zabbix < data.sql

#修改 Apache

1
2
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai

1
2
3
4
5
6
7
vi /etc/php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai
1
2
systemctl enable httpd.service
systemctl start httpd.service

#修改 Zabbix 配置

1
2
3
4
5
6
7
8
vi /etc/zabbix/zabbix_server.conf
[...]
DBName=zabbix
[...]
DBUser=zabbixuser
[...]
DBPassword=password
[...]

#配置防火墙
最小化安装默认是没有防火墙的

1
2
3
4
5
firewall-cmd --permanent --zone=public --add-service=mysql
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --reload

#允许 Apache 和 Zabbix 通信
SELinux 会导致 Zabbix 为服务器未运行状态

1
setsebool -P httpd_can_connect_zabbix=1

#启动与开机自动运行

1
2
3
4
5
6
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl restart httpd
systemctl restart mariadb
systemctl enable zabbix-server
systemctl enable zabbix-agent

#图形化配置
以上操作都配置完成后,访问 http://ip-address/zabbix,完成最终的图形化配置,会检查配置情况,及再输入数据库信息来完成数据库配置。

参考:
CentOS 7上使用yum安装zabbix 2.4
How To Install Zabbix Server On CentOS 7

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×