zoukankan      html  css  js  c++  java
  • ELK Packetbeat 部署指南(15th)

    原文链接:http://www.ttlsa.com/elk/elk-packetbeat-deployment-guide/

    Packetbeat 是一个实时网络数据包分析工具,与elasticsearch一体来提供应用程序的监控和分析系统。

    Packetbeat通过嗅探应用服务器之间的网络通讯,来解码应用层协议类型如HTTP、MySQL、redis等等,关联请求与响应,并记录每个事务有意义的字段。

    Packetbeat可以帮助我们快速发现后端应用程序的问题,如bug或性能问题等等,修复排除故障也很快捷。

    Packetbeat目前支持的协议有:

    Packetbeat可以将相关事务直接插入到elasticsearch或redis(不推荐)或logstash。

    Packetbeat可以运行在应用服务器上或者独自的服务器。当运行在独自服务器上时,需要从交换机的镜像端口或者窃听设备上获取网络流量。

    对第七层信息解码后,Packetbeat关联与请求相关的响应,称之为事务。每个事务,Packetbeat插入一个json格式文档到elasticsearch。然后可通过kibana进行分析展示。

    安装

    先配置beats yum 源,参见前文。

    配置

    选择要从哪个网卡嗅探网络通讯,默认是所有的网络接口。

    在协议部分,配置端口以便Packetbeat找到每个端口对应的协议。如果使用非标准端口,需要添加上。多个端口以逗号分隔。

    定义elasticsearch服务

    加载elasticsearch索引模板

    加载索引模板,以便elasticsearch知道哪些字段该以何种方式进行分析。

    启动服务

    查看数据

    Elasticsearch

    加载kibana Packetbeat的仪表盘

    这个在前面的文章中,有加载过。这里不再重复加载。

    配置选项

    beats公用的配置选前文有说的。下面说说Packetbeat自有的配置项:Interfaces、Protocols、Processes(可选)。

    interfaces

    interfaces 部分配置嗅探器

    device

    从哪个网络接口捕获通讯。指定的设备自动设置为混杂模式,这意味着Packetbeat可以从同一个LAN捕获其它主机的流量。

    Linux上,可以指定任何的设备。当指定为any时,接口不会设置成混杂模式。

    查看可用设备,可以使用下面的命令:

    device可以指定为上述返回列表的索引,如

    表示是eth0。这对于设备名称很长的情况下非常有用咯。

    snaplen

    捕获包的最大大小。默认65535。足够应付所有网络和接口类型。如果嗅探物理网络接口,该值设置为MTU大小。对于虚拟接口,还是最好使用默认值。

    type

    Packetbeat 支持下面的嗅探器类型:

    • pcap, 使用libpcap 库,可工作在大多数平台上,但是不是最快的选项。
    • af_packet, 使用 memory-mapped 嗅探。比 libpcap 快且不需要kernel模块,Linux特定的。
    • pf_ring, 使用 ntop.org 项目。此设置提供了最好的嗅探速度,但是需要一个kernel模块,Linux特定的。

    默认的嗅探器类型是pcap。

    在Linux上,如果想优化Packetbeat耗CPU占用率,建议使用 af_packet 和 pf_ring 选项。

    如果使用 af_packet, 可以通过下面选项调整行为:

    buffer_size_mb

    内核和用户空间之间使用的最大共享内存缓冲区大小。默认30MB。缓冲区越大,CPU使用率越低,但是会消耗更多内存。只对af_packet 有效。

    with_vlans

    Packetbeat 自动生成一个BPF来捕获已知协议的端口流量。 例如,配置HTTP 80 和 MySQL 3306,  Packetbeat 生成 BPF 过滤器如下: "port 80 or port 3306"。

    然而,如果通讯包含VLAN标记,Packetbeat生成的过滤器将是无效的,因为offset通过四个字节移动的。为了解决这个问题,启用 with_vlans 选项,生成的 BPF 过滤器是这样的: "port 80 or port 3306 or (vlan and (port 80 or port 3306))"。

    bpf_filter

    Packetbeat 自动生成一个BPF来捕获已知协议的端口流量。 例如,配置HTTP 80 和 MySQL 3306,  Packetbeat 生成 BPF 过滤器如下: "port 80 or port 3306"。

    可以使用 bpf_filter 覆盖生成的BPF 过滤器,如:

    此设置是禁用自动生成的BPF过滤器。如果使用此设置,你需要保持BPF过滤器与协议部分定义的端口同步。

    Protocols和Processes配置项,下文再说了。

  • 相关阅读:
    Windows性能计数器应用
    Azure Oracle Linux VNC 配置
    Azure 配置管理系列 Oracle Linux (PART6)
    Azure 配置管理系列 Oracle Linux (PART5)
    Azure 配置管理系列 Oracle Linux (PART4)
    Azure 配置管理系列 Oracle Linux (PART3)
    Azure 配置管理系列 Oracle Linux (PART2)
    vagrant多节点配置
    docker基本操作
    LINUX开启允许对外访问的网络端口命令
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/6305621.html
Copyright © 2011-2022 走看看