基于ELK的Packetbeat和watcher数据监控V1.0

更新时间:2023-12-29 15:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ElasticSearch特点

ElasticSearch 是一个基于Apache Lucene的开源数据搜

索引擎,它的 特点有: ?实时:可以进行实时的数据搜索和分析 ?分布式:分布式文件存储,并将每个字段都编入索引 ?RESTful API:对外提供一系列基于JAVA和HTTP的API,用于索引、查 询、修改大多数配置 ?JSON:输入输出格式为JSON,快捷方便 ?多租户:可根据不同用途分索引,同时操作多个索引

ElasticSearch使用案例

?维基百科使用 Elasticsearch 来进行全文搜索并高亮显示关键词,以及提供 search-as-you-type、did-you-mean等搜索建议功能。 ?英国卫报使用 Elasticsearch 来处理访客日志,以便能将公众对不同文章的 反应实时地反馈给各位编辑。 ?StackOverflow 将全文搜索与地理位置和相关信息进行结合,以提供morelike-this相关问题的展现。 ?GitHub 使用 Elasticsearch 来检索超过1300亿行代码。 ?每天,Goldman Sachs 使用它来处理5TB数据的索引,还有很多投行使用 它来分析股票市场的变动。

ElasticSearch安装

ES的安装很简单,可参考官网

https://www.elastic.co/guide/en/elasticsearch/reference/c urrent/_installation.html 服务启动后测试下是否运行正常:

ElasticSearch插件

安装ES插件,来查看集群状态、查看数据信息等。 head插件:

elasticsearch/bin# ./plugin install mobz/elasticsearch-head Kopf插件: elasticsearch/bin# ./plugin install lmenezes/elasticsearch-kopf

Logstrash简介

Logstash是一个接收,处理,转发日志的工具,由Jruby语言编写,并运行在Java 虚拟机上。 在Logstrash的生态系统中主要分为4大组件: ?Shipper:日志收集者。负责监控本地日志文件的变化,及时把日志文件的最新 内容收集起来,输出到Redis暂存。 ?Broker and Indexer:接受并索引化事件 ?Search and Storage:允许对时间进行搜索和存储 ?Web Interface:基于WEB的展示页面

Logstrash简介

Logstash使用管道方式进行日志的搜集处理和输出。主要做3件事: ?Collect:数据输入 ?Enrich:数据加工,如过滤,改写等 ?Transport:数据输出

Kibana介绍

Kibana 是一个使用 Apache 开源协议,基于浏览器的 Elasticsearch 分析和搜索仪 表板。

Kibana安装配置

Kibana安装比较简单,可参考官网

https://www.elastic.co/downloads/kibana

默认情况下,Kibana 会连接运行在 localhost 的 Elasticsearch。要连接其他 Elasticsearch 实例,修改kibana.yml 里的 Elasticsearch URL,然后重启 Kibana。 从 Kibana 访问 Elasticsearch 索引的配置方法

1.配置包含时间戳的索引:可以 用来做基于时间的处理 2.索引定期生成且索引名中包含 时间戳:提高搜索性能,Kibana 会至搜索你指定的时间范围内的 索引。

Kibana-Discover

在 Discover 页交互式探索数据。你可以访问到所匹配的索引模式的每个索引的每 条记录。你可以提交过滤搜索请求,然后查看文档数 据。你还可以看到匹配搜 索请求的文档总数,获取字段值的统计情况。如果索引模式配置了时间字段,文 档的时序分布情况会在页面顶部以柱状图的形式展示出来。

Kibana-Discover

在 Discover 页提交一个搜索,你就可以搜索匹配当前索引模式的索引数据了。 可以直接输入简单的请求字符串,也就是用 Lucene query syntax,也可以用完整 的基于 JSON 的 Elasticsearch Query DSL。 ?简单文本搜索:直接输入文本字符串 ?搜索特定字段中的值:格式:字段名:值 ?搜索值的范围:格式:字段名:【start_value TO end_value】 ?指定复杂搜索标准:使用布尔操作符

AND,OR,NOT

kibana-Visualize

你可以用 Visualize 页来设计可视化。可以保存可视化或者合并到 dashboard 里。 创建一个新的可视化: 第一步:选择一个可视化的类型:区块图、折线图等 第二步:选择数据源:可以选择新建或者读取一个已保存的搜索,作为你可 视化的数据源。 第三步:可视化编辑器

kibana-Visualize-区块图 Y轴是数值维度,有以下聚合可用

Count:返回元素的计数 Average:返回一个数值字段的平均值 Sum:返回一个数值字段的总和 Median:返回一个数值字段的中间值 Min:返回一个数值字段的最小值 Max:返回一个数值字段的最大值 Unique Count:返回一个数值字段的去重数值 Percentiles:返回一个数值字段的百分比分布

图形的 X 轴是buckets 维度,指明从你的数据集中将要检索什么信息,支持以下聚合

Date Histogram:基于时间的展示 Histogram:基于数值字段创建,指定数值间隔 Range:基于数值字段创建,指定一系列区间 Date Range:基于时间创建,指定时间区间 IPv4 Range:基于IPv4创建,指定IPv4区间 Terms:展示一个字段的元素值 Filters:添加过滤器 Significant Terms:展示实验性聚合结果

kibana-Visualize-区块图

kibana-Visualize-区块图

kibana-Visualize-折线图

kibana-Visualize-表格数据

定义metrics表格列,定义 buckets 来切割表格成行

kibana-Visualize-Metric

为你选择的聚合显示一个单独的数字

kibana-Visualize-饼图

饼图的分片大小通过 metrics 聚合定义。这个维度可以支持以下聚合: Count:返回元素的计数 Sum:返回一个数值字段的总和 Unique Count:返回一个数值字段的去重数值

buckets 聚合指明从你的数据集中将要检索什么信息。

kibana-Visualize-饼图

kibana-Visualize-竖条图

kibana-Visualize-地图

地图显示一个由圆圈覆盖着的地理区域。这些圆圈则是由你 指定的 buckets 控制

地图使用 Geohash 聚合作为他们的初始 化聚合。从下拉菜单中选择一个坐标字 段。Precision 滑动条设置圆圈在地图上 显示的颗粒度大小。 一旦你定义好了一个 X 轴聚合。你可以 继续定义子聚合来完善可视化效果。

kibana-Dashboard

一个 Kibana dashboard 能让你自由排列一组已保存的可视化。然后你可以保存这 个仪表板,用来分享或者重载。 简单的仪表板:

用户可以对仪表板做多样化操作: 1.添加可视化到仪表板 2.保存仪表板 3.加载已保存的仪表板 4.定义仪表板元素 5.移动容器 6.改变容器大小 7.删除容器 8.修改可视化 9.分享仪表板并嵌入到其他用户 的仪表板中

ELK 套装

logstash agent 监控并过滤日志,将过滤后的日志内容发给redis(只 处理队列不做存储),logstash index将日志收集在一起交给全文搜 索服务ElasticSearch ,通过Kibana 结合自定义搜索进行页面展示

提 纲

? ELK基础知识 ? Packetbeat知识介绍 ? Watcher知识介绍

? 业内大数据分析系统调研

几种beats

在生产环境中,数据搜索需求会更复杂一些,通过logstash写正则,实在是个 费时费劲的事。而beats就比较简单高效。

beats是一个代理,将不同类型的数据发送到elasticsearch。beats可以直接将数 据发送到elasticsearch,也可以通过logstash将数据发送elasticsearch。 beats有三个典型的例子:Filebeat、Topbeat、Packetbeat。 ?Filebeat:用来收集日志 ?Topbeat:用来收集系统基础设置数据,如cpu、内存、每个进程的统计信息 ?Winlogbeat:监控windows下面的日志信息 ?Packetbeat:是一个网络包分析工具,统计收集网络信息。

Packetbeat介绍

Packetbeat是网络协议抓包和处理的一个框架,用来嗅探和分析网络流量, 关联他们到事物,并且使用 Elasticsearch 来分析,然后进行点对点查询。 Packetbeat的安装很简单,可参考官网

https://www.elastic.co/downloads/beats/packetbeat 配置文件: /etc/packetbeat/packetbeat.yml

在ES中加载Packetbeat索引模板,执行命令curl -XPUT 'http://localhost:9200/_template/packetbeat' d@/etc/packetbeat/packetbeat.template.json 启动Packetbeat: sudo /etc/init.d/packetbeat start

Packetbeat协议

目前支持了常见的一些协议:ICMP、DNS、HTTP、MySQL、PostgreSQL Redis、Thrift-RPC、MongoDB、Memcache,也可进行协议的扩展。

在文件/etc/packetbeat/packetbeat.yml 中可以注释某协议以禁用该协议, 如果使用任何非标准的端口,也可 进行添加。否则,为默认端口。 协议扩展开发可参考:

https://www.elastic.co/guide/en/beats/packetbeat/current/ new-protocol.html http://elasticsearch.cn/article/54

Packetbeat介绍

Packetbeat在kibana中的视图展示:

基于Packetbeat创建TCP等协议可视化图表

Packetbeat安装好后界面展示的是基于HTTP的应用层数据分析展示,在

discover 页面,可以看到Packetbeat提供的解析字段:

transport和type可以获取到udp、tcp、icmp、dns协 议数据,因此在创建绘图时可根据这两个字段帅 选出并展示基础协议。具体方法可查看kibana章 节

基于Packetbeat创建TCP等协议可视化图表

小结:由于目前Packetbeat中可添加的字段有 限,绘制可视化图标展示也较粗糙,没有延 迟、重传、地图、链接分析等相关统计 提 纲

? ELK基础知识 ? Packetbeat知识介绍 ? Watcher知识介绍

? 业内大数据分析系统调研

Watcher介绍

Watcher是Elasticsearch的一个插件,提供警报和通知,并可定义基于数据的 变化简单地定义一个条件,触发指定条件后Watcher会执行相关的警报和通 知。

几大功能特点: 1.根据ES数据的变化自动触发通知 如异常登录失败、应用程

序响应时间高于平均值,或者发生意外错误时发送通知。 2.主动监控

Elasticsearch集群 对接Watcher与Marvel服务。可以监控集群状态,如节点加入或离开集群,查询高峰, 内存使用率太高时候可以发送通知。 3.自定义通知 可以轻松设置电子邮件通知,也可以既集成到第三方的监控服务,如通过Watcher发 送警报给Nagios,PagerDuty等 4.分析历史记录 可以在Kibana服务中查询Watcher的历史触发记录,支持嵌套或者多级的通知 5.高可用支持 Watcher作为ElasticSearch集群的一部分运行,能够很好的应对部分硬件和网络故障。

Watcher案例介绍

监控错误数据案例,每10秒搜索一次数据,发现错误后,记录一 条错误记录。

配置流程: 1.设置定时器和输入源(错误数据的查询条件) 2.设置触发条件(是否查询到了错误数据) 3.设置触发动作(发现错误后执行Action)

Watcher案例介绍

监控ElasticSearch集群状态:每10秒检测一次集群状态,如果集群状态错 误,则发送邮件给运维

Watcher在kibana上的监控

当一个Watcher被触发后,watch_record文件被创建且添加到watcher历史索引中,名 称形式为watch_history-YYYY.MM.dd,可以像其他Elasticsearch

索引一样,搜索 watcher历史,在Kibana中监控和可视化watch的执行情况。 在Kibana中配置监控watches:

Watcher在kibana上的监控

通过kibana监控Watcher的历史数据 提 纲

? ELK基础知识 ? Packetbeat知识介绍 ? Watcher知识介绍

? 业内大数据分析系统调研

业内大数据分析系统调研 开源数据分析系统

(Moloch、haka、bro、 beats)

云利来iMAP

Riverbed SteelCentral AppResponse IP、HTTP、TCP、UDP、 DHCP、ICMP等

BigSwitch自带分 析系统 DHCP、DNS、ICMP 协 议 字 段 解 析

IP、HTTP、DNS、IP Address、 TCP、UDP、HTTP、DNS Hostname、SSH、IRC、 SSL/TLS、DHCP、ICMP、 MySQL、PostgreSQL、Redis、 Thrift-RPC、MongoDB、 Memcache byte、byte_in、byte_out、 client_ip、client_port、 client_proc、connection_id、 source.ip,dest.ip,dest.ipv6, direction,type(thrift、http、 mysql、pgsql、mongodb、 redis、dns、flow), transport,responsetime, port,source.port,dest.port, ip,dns.question.name, dns.response_code,dns.id, icmp_id,method,status,

source.stats.net_bytes_total 支持告警,但需后台脚本或api 执行创建 bit、in_bit、out_bit、 retransmit、 server_latency、 client_latency、protocol、 protocol_dport、byte、 packet、sip、dip、 p_oo_oder、out_packet、 in_packet、syn_receive、 province、city、dport、 t_gt400、t_flow、status、 domain、url、t_fail、 retname、address、 TCP延迟告警,TCP重传告 警,HTTP延迟告警, HTTP状态告警、DDoS

amqp-tcp、gre、webmhttps-tcp、ssdp-udp、 mpc-lifenet-udp、MSWBT-SRV-TCP、 NETBIOS-NS-UDP、 mysql-tcp、limnr-udp、 vrrp、

netbios-dgm-udp (应用),payload (server、client)、 packet throughput、 response time、packet loss、connect failed 提供告警且帮助快速定位网 络性能问题的关键

dhcprequest、dhcppack、 chaddr、ciaddr、cname、 yiaddr、dhcpoptions、 leasetime、hops、xid、 dnsmessge、clientip、 serverName、qnamelist、 eventtype、alias、 policyname、sHost、 dHost、ipAddr、 macAddr 告 警

业内大数据分析系统调研 开源数据分析系统

(Moloch、haka、bro、 beats)

云利来iMAP

Riverbed SteelCentral AppResponse

外部IP、内部IP、吞吐量、 连接请求数(客户端、服务 器)、服务响应时间、往返 时间、应用组、IP协议、成 员IP、IP会话、子网、业务 组、互联网服务提供商自治 域、目的自治域、VLAN、 监控接口组、语音视频利用、 页面利用率、页面性能、网 络性能(丢包、包重传率、 往返时间、重传时延、重传 率、)、WEB应用(页面 数量、页面大小、页面时间 等)、每个应用流量所对应 的IP、

RTCC响应时间区分 表内包含的一些参数展示, 能分析出是网络问题是服务 器端还是客户端的问题

BigSwitch自带分 析系统

sFlow(源端口和目的端口 采集的流量、采集的协议 )、BMF_Events(策略安 装、策略状态改变、策略名 称)、BMF_PolicyStatus (策略包速率、分流口速率、 传送口速率)、 BMF_ifPolicyStats(策略 相关端口统计)、 BMF_ifStats(交换机端口 统计)、DHCP(流量、消 息)、DNS(消息、服务、 应答、请求、客户端)、 HostView(主机的ICMP、 DNS、DNCP包)、ICMP (错误描述、错误IP信息、 源和目的的展示)、 TrackedHosts(追踪主机 的VLAN-ID、主机名、 MAC地址)

可 分 析 协 议 展 示

客户端地理坐标,web链接数, 数据库(mysql、pgsql、 mongodb)请求数,redis发 生数,RPC发生数,响应时间 分布,错误和成功发生数,数 据库性能,TCP UDP协议分布, 应用层协议分布,UDP流量, TCP流量,TCP响应时间,UDP 响应时间,TCP端口分布, UDP端口分布,ICMP请求数统 计,DNS请求数统计,服务器 概况

TCP流量、TCP重传率、 TCP延迟、TCP流量协议分 布、TCP端口分布、TCP服 务器、TCP包数、TCP SYN包数、TCP地图、TCP 链接分析、TCP TopN

源IP 目的IP、TCP最大连接数、 UDP流量、UDP包数、 UDP端口分布、UDP服务 器、UDP链接分析、HTTP 请求数、HTTP错误码率、 HTTP响应时间、HTTP流 量、HTTP异常码、HTTP 域名请求数、HTTP域名流 量、HTTP网址、HTTPrefer、HTTP服务器、 HTTP TopN域名-网址、 DNS错误率、DNS包数、 DNS延迟、DNS流量、 DNS服务器、DNS链接分 析、DNS TopN域名-真实 地址 其 他

业务组拓扑、IP拓扑、自治 域拓扑,应用定义管理器、 业务组管理器

本文来源:https://www.bwwdw.com/article/flex.html

Top