《基于elk的packetbeat和watcher数据监控v10.doc》由会员分享,可在线阅读,更多相关《基于elk的packetbeat和watcher数据监控v10.doc(15页珍藏版)》请在三一办公上搜索。
1、ElasticSearch特点ElasticSearch 是一个基于Apache Lucene的开源数据搜索引擎,它的 特点有: ?实时:可以进行实时的数据搜索和分析 ?分布式:分布式文件存储,并将每个字段都编入索引 ?RESTful API:对外提供一系列基于JAVA和HTTP的API,用于索引、查 询、修改大多数配置 ?JSON:输入输出格式为JSON,快捷方便 ?多租户:可根据不同用途分索引,同时操作多个索引ElasticSearch使用案例?维基百科使用 Elasticsearch 来进行全文搜索并高亮显示关键词,以及提供 search-as-you-type、did-you-mean
2、等搜索建议功能。 ?英国卫报使用 Elasticsearch 来处理访客日志,以便能将公众对不同文章的 反应实时地反馈给各位编辑。 ?StackOverflow 将全文搜索与地理位置和相关信息进行结合,以提供morelike-this相关问题的展现。 ?GitHub 使用 Elasticsearch 来检索超过1300亿行代码。 ?每天,Goldman Sachs 使用它来处理5TB数据的索引,还有很多投行使用 它来分析股票市场的变动。ElasticSearch安装ES的安装很简单,可参考官网 https:/www.elastic.co/guide/en/elasticsearch/refer
3、ence/c urrent/_installation.html 服务启动后测试下是否运行正常:ElasticSearch插件安装ES插件,来查看集群状态、查看数据信息等。 head插件: elasticsearch/bin# ./plugin install mobz/elasticsearch-head Kopf插件: elasticsearch/bin# ./plugin install lmenezes/elasticsearch-kopfLogstrash简介Logstash是一个接收,处理,转发日志的工具,由Jruby语言编写,并运行在Java 虚拟机上。 在Logstrash的生
4、态系统中主要分为4大组件: ?Shipper:日志收集者。负责监控本地日志文件的变化,及时把日志文件的最新 内容收集起来,输出到Redis暂存。 ?Broker and Indexer:接受并索引化事件 ?Search and Storage:允许对时间进行搜索和存储 ?Web Interface:基于WEB的展示页面Logstrash简介Logstash使用管道方式进行日志的搜集处理和输出。主要做3件事: ?Collect:数据输入 ?Enrich:数据加工,如过滤,改写等 ?Transport:数据输出Kibana介绍Kibana 是一个使用 Apache 开源协议,基于浏览器的 Elas
5、ticsearch 分析和搜索仪 表板。Kibana安装配置Kibana安装比较简单,可参考官网https:/www.elastic.co/downloads/kibana默认情况下,Kibana 会连接运行在 localhost 的 Elasticsearch。要连接其他 Elasticsearch 实例,修改kibana.yml 里的 Elasticsearch URL,然后重启 Kibana。 从 Kibana 访问 Elasticsearch 索引的配置方法1.配置包含时间戳的索引:可以 用来做基于时间的处理 2.索引定期生成且索引名中包含 时间戳:提高搜索性能,Kibana 会至搜索
6、你指定的时间范围内的 索引。Kibana-Discover在 Discover 页交互式探索数据。你可以访问到所匹配的索引模式的每个索引的每 条记录。你可以提交过滤搜索请求,然后查看文档数 据。你还可以看到匹配搜 索请求的文档总数,获取字段值的统计情况。如果索引模式配置了时间字段,文 档的时序分布情况会在页面顶部以柱状图的形式展示出来。Kibana-Discover在 Discover 页提交一个搜索,你就可以搜索匹配当前索引模式的索引数据了。 可以直接输入简单的请求字符串,也就是用 Lucene query syntax,也可以用完整 的基于 JSON 的 Elasticsearch Que
7、ry DSL。 ?简单文本搜索:直接输入文本字符串 ?搜索特定字段中的值:格式:字段名:值 ?搜索值的范围:格式:字段名:【start_value TO end_value】 ?指定复杂搜索标准:使用布尔操作符 AND,OR,NOTkibana-Visualize你可以用 Visualize 页来设计可视化。可以保存可视化或者合并到 dashboard 里。 创建一个新的可视化: 第一步:选择一个可视化的类型:区块图、折线图等 第二步:选择数据源:可以选择新建或者读取一个已保存的搜索,作为你可 视化的数据源。 第三步:可视化编辑器kibana-Visualize-区块图Y轴是数值维度,有以下聚
8、合可用Count:返回元素的计数 Average:返回一个数值字段的平均值 Sum:返回一个数值字段的总和 Median:返回一个数值字段的中间值 Min:返回一个数值字段的最小值 Max:返回一个数值字段的最大值 Unique Count:返回一个数值字段的去重数值 Percentiles:返回一个数值字段的百分比分布图形的 X 轴是buckets 维度,指明从你的数据集中将要检索什么信息,支持以下聚合Date Histogram:基于时间的展示 Histogram:基于数值字段创建,指定数值间隔 Range:基于数值字段创建,指定一系列区间 Date Range:基于时间创建,指定时间区间
9、 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:
10、返回元素的计数 Sum:返回一个数值字段的总和 Unique Count:返回一个数值字段的去重数值buckets 聚合指明从你的数据集中将要检索什么信息。kibana-Visualize-饼图kibana-Visualize-竖条图kibana-Visualize-地图地图显示一个由圆圈覆盖着的地理区域。这些圆圈则是由你 指定的 buckets 控制地图使用 Geohash 聚合作为他们的初始 化聚合。从下拉菜单中选择一个坐标字 段。Precision 滑动条设置圆圈在地图上 显示的颗粒度大小。 一旦你定义好了一个 X 轴聚合。你可以 继续定义子聚合来完善可视化效果。kibana-Dashb
11、oard一个 Kibana dashboard 能让你自由排列一组已保存的可视化。然后你可以保存这 个仪表板,用来分享或者重载。 简单的仪表板:用户可以对仪表板做多样化操作: 1.添加可视化到仪表板 2.保存仪表板 3.加载已保存的仪表板 4.定义仪表板元素 5.移动容器 6.改变容器大小 7.删除容器 8.修改可视化 9.分享仪表板并嵌入到其他用户 的仪表板中ELK 套装logstash agent 监控并过滤日志,将过滤后的日志内容发给redis(只 处理队列不做存储),logstash index将日志收集在一起交给全文搜 索服务ElasticSearch ,通过Kibana 结合自定义
12、搜索进行页面展示提纲? ELK基础知识 ? Packetbeat知识介绍 ? Watcher知识介绍? 业内大数据分析系统调研几种beats在生产环境中,数据搜索需求会更复杂一些,通过logstash写正则,实在是个 费时费劲的事。而beats就比较简单高效。beats是一个代理,将不同类型的数据发送到elasticsearch。beats可以直接将数 据发送到elasticsearch,也可以通过logstash将数据发送elasticsearch。 beats有三个典型的例子:Filebeat、Topbeat、Packetbeat。 ?Filebeat:用来收集日志 ?Topbeat:用来
13、收集系统基础设置数据,如cpu、内存、每个进程的统计信息 ?Winlogbeat:监控windows下面的日志信息 ?Packetbeat:是一个网络包分析工具,统计收集网络信息。Packetbeat介绍Packetbeat是网络协议抓包和处理的一个框架,用来嗅探和分析网络流量, 关联他们到事物,并且使用 Elasticsearch 来分析,然后进行点对点查询。Packetbeat的安装很简单,可参考官网https:/www.elastic.co/downloads/beats/packetbeat 配置文件: /etc/packetbeat/packetbeat.yml在ES中加载Packe
14、tbeat索引模板,执行命令curl -XPUT http:/localhost:9200/_template/packetbeat d/etc/packetbeat/packetbeat.template.json启动Packetbeat: sudo /etc/init.d/packetbeat startPacketbeat协议目前支持了常见的一些协议:ICMP、DNS、HTTP、MySQL、PostgreSQL Redis、Thrift-RPC、MongoDB、Memcache,也可进行协议的扩展。在文件/etc/packetbeat/packetbeat.yml 中可以注释某协议以禁用
15、该协议, 如果使用任何非标准的端口,也可 进行添加。否则,为默认端口。协议扩展开发可参考: https:/www.elastic.co/guide/en/beats/packetbeat/current/ new-protocol.html Packetbeat介绍Packetbeat在kibana中的视图展示:基于Packetbeat创建TCP等协议可视化图表Packetbeat安装好后界面展示的是基于HTTP的应用层数据分析展示,在discover 页面,可以看到Packetbeat提供的解析字段:transport和type可以获取到udp、tcp、icmp、dns协 议数据,因此在创建
16、绘图时可根据这两个字段帅 选出并展示基础协议。具体方法可查看kibana章 节基于Packetbeat创建TCP等协议可视化图表小结:由于目前Packetbeat中可添加的字段有 限,绘制可视化图标展示也较粗糙,没有延 迟、重传、地图、链接分析等相关统计提纲? ELK基础知识 ? Packetbeat知识介绍 ? Watcher知识介绍? 业内大数据分析系统调研Watcher介绍Watcher是Elasticsearch的一个插件,提供警报和通知,并可定义基于数据的 变化简单地定义一个条件,触发指定条件后Watcher会执行相关的警报和通 知。几大功能特点: 1.根据ES数据的变化自动触发通知
17、 如异常登录失败、应用程序响应时间高于平均值,或者发生意外错误时发送通知。 2.主动监控Elasticsearch集群 对接Watcher与Marvel服务。可以监控集群状态,如节点加入或离开集群,查询高峰, 内存使用率太高时候可以发送通知。 3.自定义通知 可以轻松设置电子邮件通知,也可以既集成到第三方的监控服务,如通过Watcher发 送警报给Nagios,PagerDuty等 4.分析历史记录 可以在Kibana服务中查询Watcher的历史触发记录,支持嵌套或者多级的通知 5.高可用支持 Watcher作为ElasticSearch集群的一部分运行,能够很好的应对部分硬件和网络故障。W
18、atcher案例介绍监控错误数据案例,每10秒搜索一次数据,发现错误后,记录一 条错误记录。配置流程: 1.设置定时器和输入源(错误数据的查询条件) 2.设置触发条件(是否查询到了错误数据) 3.设置触发动作(发现错误后执行Action)Watcher案例介绍监控ElasticSearch集群状态:每10秒检测一次集群状态,如果集群状态错 误,则发送邮件给运维Watcher在kibana上的监控当一个Watcher被触发后,watch_record文件被创建且添加到watcher历史索引中,名 称形式为watch_history-YYYY.MM.dd,可以像其他Elasticsearch索引一
19、样,搜索 watcher历史,在Kibana中监控和可视化watch的执行情况。 在Kibana中配置监控watches:Watcher在kibana上的监控通过kibana监控Watcher的历史数据提纲? ELK基础知识 ? Packetbeat知识介绍 ? Watcher知识介绍? 业内大数据分析系统调研业内大数据分析系统调研开源数据分析系统(Moloch、haka、bro、 beats)云利来iMAPRiverbed SteelCentral AppResponseIP、HTTP、TCP、UDP、 DHCP、ICMP等BigSwitch自带分 析系统DHCP、DNS、ICMP协 议字
20、段 解 析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、flo
21、w), transport,responsetime, port,source.port,dest.port, ip,dns.question.name, dns.response_code,dns.id, icmp_id,method,status, _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_pack
22、et、syn_receive、 province、city、dport、 t_gt400、t_flow、status、 domain、url、t_fail、 retname、address、 TCP延迟告警,TCP重传告 警,HTTP延迟告警, HTTP状态告警、DDoSamqp-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 t
23、hroughput、 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)
24、云利来iMAPRiverbed SteelCentral AppResponse外部IP、内部IP、吞吐量、 连接请求数(客户端、服务 器)、服务响应时间、往返 时间、应用组、IP协议、成 员IP、IP会话、子网、业务 组、互联网服务提供商自治 域、目的自治域、VLAN、 监控接口组、语音视频利用、 页面利用率、页面性能、网 络性能(丢包、包重传率、 往返时间、重传时延、重传 率、)、WEB应用(页面 数量、页面大小、页面时间 等)、每个应用流量所对应 的IP、RTCC响应时间区分 表内包含的一些参数展示, 能分析出是网络问题是服务 器端还是客户端的问题BigSwitch自带分 析系统sFlo
25、w(源端口和目的端口 采集的流量、采集的协议 )、BMF_Events(策略安 装、策略状态改变、策略名 称)、BMF_PolicyStatus (策略包速率、分流口速率、 传送口速率)、 BMF_ifPolicyStats(策略 相关端口统计)、 BMF_ifStats(交换机端口 统计)、DHCP(流量、消 息)、DNS(消息、服务、 应答、请求、客户端)、 HostView(主机的ICMP、 DNS、DNCP包)、ICMP (错误描述、错误IP信息、 源和目的的展示)、 TrackedHosts(追踪主机 的VLAN-ID、主机名、 MAC地址)可 分 析 协 议 展 示客户端地理坐标,
26、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拓扑、自治 域拓扑,应用定义管理器、 业务组管理器