SaltStack常用组件使用 SaltStack配置文件说明 轻量级DNS、DHCP服务软件DNSMASQ 千万级PV(日)的移动应用架构如何实现 高效运维最佳实践-运维自动化之殇 Ubuntu 14.04 Linux如何配置静态IP地址和DNS服务器 ELK 常见错误与解决办法 Elasticsearch 集群配置管理常用操作 常用数字证书格式相互转换-OpenSSL/Keytool/Jks2pfx ELK 综合日志归档分析系统(2)-Logstash安装配置 Elasticsearch之Shield认证与权限管理 ELK 综合日志归档分析系统(1)-Elasticsearch-Redis安装配置 Redmine 3.2 安装配置指南 CentOS6 大型web系统数据缓存设计 Redis 集群方案 Linux 内核TCP优化详解 SaltStack初始化安装配置 OpenLDAP常用操作 OpenLDAP统一身份认证 [CentOS6/7] 构建Linux Skype Message消息推送API服务(Zabbix集成告警) Tomcat 生产服务器性能优化 Zabbix结合iptables监控网络流量 Linux操作系统环境配置与优先级问题 深入 NGINX: 我们如何设计性能和扩展 Windows SQL Server 性能计数器详细说明 Windows性能计数器说明 Ubuntu安装openntpd报错:Starting openntpd: /etc/openntpd/ntpd.conf: Permission denied locale: Cannot set LC_ALL to default locale: No such file or directory OpenSSL拆解p12证书公约和私钥 Linux sar 统计系统性能(网卡、内存和交换空间、CPU资源等) Linux Shell /dev/null 2>&1 含义 Windows 2003操作系统网络不通 构建私有yum安装源镜像站点(openstack) CentOS6/RedHat6新增网卡识别问题 Ubuntu 14.04 Server优化与使用问题解决 Redhat/CentOS6系统使用ntfs-3g挂载NTFS分区 Linux GPT挂载超过2TB磁盘 Linux系统性能优化、测试和监控工具梳理 修复WIN2003远程桌面服务无法访问 解决CentOS“Zabbix discoverer processes 75% busy”的问题 REHL/CentOS安装phpMyadmin

Zabbix结合iptables监控网络流量

2015年07月13日

在实际生产环境监控体系中,由于个别任务的需要对服务器中对外数据库连接的流量进行情况。为此我使用linux操作系统的iptables结合zabbix定时对网络中特定IP的流量情况进行采集,具体操作如下:

1.配置iptables防火墙过滤规则,统计指定IP的INPUT和OUTPUT流量。

#统计INPUT源地址为192.168.1.12 IP的流量
iptables -I INPUT -s 192.168.1.12
#统计OUTPUT目的地址为192.168.1.12 IP的流量
iptables -I OUTPUT -d 192.168.1.12

使用iptables命令查看防火墙统计的流量情况,如下:

root@ip-172-31-15-86:/home/bitnami# iptables -nvx -t filter -L
Chain INPUT (policy ACCEPT 9559261 packets, 1806802825 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
 1684184 619432744            all  --  *      *       192.168.1.12        0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 9229817 packets, 2342781143 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
 1927409 467400209            all  --  *      *       0.0.0.0/0            192.168.1.12       

其中:

-L : 未指定参数的情况下默认输出INPUT、OUTPUT的流量。

-x : 用于精确输出流量,单位Byte

2.创建Zabbix自定义KEY

vim /etc/zabbix/zabbix_agentd.d/network.flow.conf 
#Network Flow INPUT Total
UserParameter=networkflow.input.bytes.1.12,var=$(sudo /sbin/iptables -nvx -L INPUT -t filter |grep '192.168.1.12' |awk '{print $2}')&& if [ "${var}" != "" ]; then  echo ${var};else echo 0;fi
#Network Flow OUTPUT Total
UserParameter=networkflow.output.bytes.1.12,var=$(sudo /sbin/iptables -nvx -L OUTPUT -t filter |grep '192.168.1.12' |awk '{print $2}')&& if [ "${var}" != "" ]; then  echo ${var};else echo 0;fi

3.配置zabbix用户执行iptables权限,修改/etc/sudoers

Linux操作系统默认情况下,iptables只能是超级管理员root才能运行。zabbix用户是无权执行任何iptables命令的。在不影响操作系统安全的情况下,可以配置sudoers来让zabbix用户只能执行我们需要的指令。

zabbix ALL=(ALL) NOPASSWD: /sbin/iptables -nvx -L OUTPUT -t filter,/sbin/iptables -nvx -L INPUT -t filter

4.Zabbix Server配置监控项目

打开需要添加监控项目的主机,新增上面定义的KEY,示例如下所示:

ITEN

完成后保存自定义的KEY,过一会就能够采集到数据了。

转载请注明:自动化运维 » Zabbix结合iptables监控网络流量