专栏首页Stone.L@Tencent的专栏使用 Host sFlow 部署端口镜像功能实现腾讯云服务器流量旁路监控/数据分析
原创

使用 Host sFlow 部署端口镜像功能实现腾讯云服务器流量旁路监控/数据分析

为了方便的对网站流量进行数据监控和分析,一般会用到交换机的端口镜像功能,将数据复制一份发送到监控平台或分析系统;而如果将网站部署到腾讯云平台,是否也可以将服务器流量进行复制转发呢?答案是可以的,实现的方法就是通过Host sFlow这个流量监控利器,下面以CentOS7为例,介绍其部署和验证方法:

  1. 部署架构

操作系统: CentOS 7.3

  1. 为Web服务器添加双网卡-弹性网卡 检查主机网卡配置和路由: ifconfig route -n
  2. 下载并安装Host sFlow

所有版本下载地址:http://www.sflow.net/downloads.php Github:https://github.com/sflow/host-sflow/releases

以CentOS7为例,运行:

sudo yum install hsflowd-2.0.11-1.x86_64.rpm #当前版本
sudo systemctl enable hsflowd # or chkconfig --add hsflowd /启用
sudo vi /etc/hsflowd.conf #编辑配置文件

配置文件示例:(详细配置说明见注意事项)

sflow {
    #采样比1/1
    sampling = 1
    #截取包大小为256
    headerBytes = 256
    #设置收集器地址和端口
    collector { ip=10.11.11.7 udpport=6343 }
    #设置采样的网卡
    pcap { dev = eth0 }
    }

启动采样:

sudo service hsflowd start
  1. 下载并安装收集分析器,以sFlowTrend为例(支持sFlow协议的软件都可以)

下载页面:http://www.inmon.com/products/sFlowTrend.php 或在CentOS服务器运行:

wget http://www.inmon.com/products/sFlowTrend/downloads/sFlowTrend-linux-6_6.rpm

安装并运行: yum install java -y #sFlowTrend依赖java环境 rpm -i sFlowTrend-linux-6_6.rpm #rpm包安装 systemctl status sflowtrend-server.service #查看状态 systemctl start sflowtrend-server.service #启动

使用web portal查看分析数据:

http://<hostname>:8087/sflowtrend #浏览器中打开http
https://<hostname>:8443/sflowtrend #浏览器中打开https

正常的话很快就可以看到以下内容:

注意事项:

  • 安全组放通相应监听和传输端口
  • windows等其他版本下载相应安装包即可
  • Host sFlow 详细配置说明 http://sflow.net/host-sflow-linux-config.php cat /etc/hsflowd.conf # hsflowd configuration file # http://sflow.net/host-sflow-linux-config.php
    sflow {
  # ======  Agent IP selection ======
  # Selection is automatic, unless:
  # (1) override with preferred CIDR:
  #   agent.cidr = 192.168.0.0/16
  # (2) Override with interface:
  #   agent = eth0

  # ====== Sampling/Polling/Collectors ======
  # EITHER: automatic (DNS SRV+TXT from _sflow._udp):
  #   DNS-SD { }
  # OR: manual:
  #   Counter Polling:
  #     polling = 30
  #   default sampling N:
  #     sampling = 400 采样比默认为1/400, 可设置分母为1,表示全采样
  sampling = 1
  #  截取包大小默认为256, 可以修改为1500(需重新编译), 尽量不要设置太大,否则会产生很多分片包,影响性能
  headerBytes = 256
  #   sampling N on interfaces with ifSpeed:
  #     sampling.100M = 100
  #     sampling.1G = 1000
  #     sampling.10G = 10000
  #     sampling.40G = 40000
  #   sampling N for apache, nginx:
  #     sampling.http = 50
  #   sampling N for application (requires json):
  #     sampling.app.myapp = 100
  #   collectors: 收集器地址,可修改为数据分析系统所在的ip地址,收集器可以设置多个
  collector { ip=10.11.11.7 udpport=6343 }
  #   add additional collectors here

  # ====== Local configuration ======
  # listen for JSON-encoded input:
  #   json { UDPport = 36343 }
  # PCAP+BPF packet-sampling:
  #   Bridge example:
  #     pcap { dev = docker0 }
  #   NIC example: 设置要采样的网卡
  pcap { dev = eth0 }
  #     pcap { dev = eth0 }
  #     pcap { dev = eth1 }
  #   All NICs example:
  #     pcap { speed=1G-1T }
  # NFLOG packet-sampling:
  #   nflog { group = 5  probability = 0.0025 }
  # ULOG packet-sampling:
  #   ulog { group = 1  probability = 0.0025 }
  # Nvidia NVML GPU monitoring:
  #   nvml { }
  # Xen hypervisor and VM monitoring:
  #   xen { }
  # Open vSwitch sFlow configuration:
  #   ovs { }
  # KVM (libvirt) hypervisor and VM monitoring:
  #   kvm { }
  # Docker container monitoring:
  #   docker { }
  # TCP round-trip-time/loss/jitter (requires pcap/nflog/ulog)
  #   tcp { }
  # monitoring of systemd cgroups
  #   systemd { }
  # DBUS agent
  #   dbus { }
  # Learn config from Arista EAPI
  #   eapi { }
}
  • 查看agent地址 grep agentIP /etc/hsflowd.auto #或指定agent使用网卡地址: agent = eth0

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯云EMR&Elasticsearch中 使用ES-Hadoop&云HDFS进行数据交换和备份

    腾讯云EMR和ES是两款非常火热的大数据分析产品,长期以来一直是分别在客户场景下使用的,不过随着云上CHDFS产品的上线,以及ES-Hadoop等插件的完善,两...

    说云时间
  • 由表及里,业务系统从IPv4演进IPv6之路

    之所以如此紧迫的推进支持IPv6,主要还是由于IPv4地址的匮乏。2011年11 月 25 日,全球五大区域互联网注册管理机构之一的欧洲网络协调中心(RIPE ...

    说云时间
  • 走近科学:“爱因斯坦”(EINSTEIN)计划综述

    “ 爱因斯坦”计划是美国联邦政府主导的一个网络安全自动监测项目,由国土安全部(DHS)下属的美国计算机应急响应小组(US-CERT)开发,用于监测针对政府网络的...

    FB客服
  • 面试的反杀-你有没有想要问我的

    不知道是不是真的,但是面试结束的时候,面试官通常会问下候选人 你有没有想要问我的,今天结合我自己的面试和被面试的经历聊聊这个话题。

    方丈的寺院
  • 面试的反杀-你有没有想要问我的

    不知道是不是真的,但是面试结束的时候,面试官通常会问下候选人 你有没有想要问我的,今天结合我自己的面试和被面试的经历聊聊这个话题。

    Android技术干货分享
  • HDFS NameNode内存全景

    概述 从整个HDFS系统架构上看,NameNode是其中最重要、最复杂也是最容易出现问题的地方,而且一旦NameNode出现故障,整个Hadoop集群就将处于...

    美团技术团队
  • 蜂鸟E203系列——嵌入式软件环境

    安装串口显示安装konsole安装screen运行hbird demo程序打开控制台编译 demo 程序下载程序结果显示运行 coremark 跑分程序运行 d...

    瓜大三哥
  • Python中如何把redis取出的数据去掉b'

    这个问题是最近在写爬虫的时候遇到的,本次使用了redis对爬取的数据进行存储,便于对数据进行二次清洗。存入的过程是非常顺利的。但是在二次数据清洗时,在redis...

    申霖
  • 天才们不为人知的怪癖:爱因斯坦日常癖好大揭秘

    传记作家马克·塞弗尔(Marc J Seifer)宣称,著名发明家、物理学家尼古拉·特斯拉(Nikola Tesla)总是坚持足趾练习。每天晚上,他会反复揉捏他...

    机器人网
  • 淘宝面试回来,想对程序员们谈谈

    因为我是一个不管做什么事情都喜欢进行总结的一个人。所以对于在上周去淘宝面试的经历,现在面试回来总结,我想对所有程序员们谈谈。

    AI乔治

扫码关注云+社区

领取腾讯云代金券