前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >beats:监控和日志处理

beats:监控和日志处理

作者头像
tyrchen
发布2018-03-28 15:50:08
1.5K0
发布2018-03-28 15:50:08
举报
文章被收录于专栏:程序人生

一晃新的一年就过去了 1/24,程序君发现自己竟然还没有写上哪怕只言片语,未免让「程序人生」的读者感到失望。如果说之前说自己忙都是瞎忙,如今我是体会到了什么叫忙得连去上厕所的路上都要以 6km/h 的速度前进。不过忙归忙,公众号还是要更新的,今天先来一篇短文,答谢大家的苦苦等待。

系统监控和日志处理这块,有很多现成的工具。除了商业上比较成功的 new relic 和 datadog 外,开源的解决方案也不少,如 elk stack (elasticsearch, logstash, kibana),reimann 等。elk 大家用的比较多,各种成功的解决方案也都能找到,尤其在 amazon 提供了 elasticsearch services 之后,大家需要操心的就只有安装和配置 logstash 而已,运维的门槛大大降低。

然而,单单配置 logstash 也不是件容易的活儿,你得掌握其一堆 input / output / filter plugins,弄懂配置文件的语法,学会成功撰写 grok pattern 等等。有时候你只是想消费你硬盘中的日志文件而已,有没有办法不用配置 logstash,让 log agent 能够直接 plug & play?

当然!程序世界的挠痒痒定律(当你为一个问题感觉到奇痒难耐的时候,这个世界一定有相当数量的人和你一样奇痒难耐,于是有人会解决这个问题)保证了这一点。一个创业公司为了他们的系统在 elk 的基础上搞了套 beats 系统,能够处理大部分日志格式,于是,他们就和做 elasticsearch SAAS 的公司 found 一样,被 elastic (elk 的母公司) 收编了。不过,收不收编不重要,重要的是 beats 依旧在 apache 2.0 协议下开源。下面我们简单讲讲这个体系。

beats 简介

beats 是用 golang(感觉 golang 要渐渐统治运维软件的市场了)写的一组 collector,它可以从操作系统,文件和网络中抓取信息,发送到 logstash,或者直接发送到 elasticsearch,从而让这些信息得到可视化。目前 beats 项目包含这些子项目:

他们之间的关系是这样的:

我们主要看看 filebeat 和 packetbeat。

filebeat

filebeat 的目的主要是取代 logstash forwarder,你可以从系统的日志文件中抓取信息,发送到 elasticsearch 上。安装很简单(redhat):

代码语言:javascript
复制
$ curl -L -O https://download.elastic.co/beats/filebeat/filebeat-1.0.1-x86_64.rpm
$ sudo rpm -vi filebeat-1.0.1-x86_64.rpm

如果你的 elasticsearch cluster 不是 localhost,需要修改 /etc/filebeat/filebeat.yml 中对应的配置。之后就可以:

代码语言:javascript
复制
$ sudo /etc/init.d/filebeat start

之后你就可以使用 kibana 查询到你当前的日志信息了。

filebeat 比较直观,不多说。

packetbeat

packetbeat 是个值得拥有的神器。logging 应该有层级的概念:network layer,web server layer,application layer,etc. 越往上的层级,收集 log 的手段越丰富,然而,对于 network layer,至少我之前一直忽视。packetbeat 使用 libpcap 直接从网卡上抓包,进行协议分析后将其存入 elasticsearch,相当于一个加强版的 wireshark。目前 packetbeat 支持 DNS,HTTP,MySQL,Postgres,MongoDB,Redis/Memcached,Thrift RPC 等协议,对于一般的 web 应用,足矣(也许还应该支持 AMQP),通过 packetbeat 你可以做一些应用层需要特殊处理才能完成的事情,比如实时发现系统中的 slow query(不管是 sql 还是 mongoDB),或者是实时网络拓扑的发现(很多复杂的服务器应用,应用的开发者都不知道某种 traffic 会经历哪些 server,做哪些事情)。

说句题外话,做网络设备的厂商,应该为自己,或者为客户开发这样的系统。为自己开发,可以用于debug,把 tcpdump 下来的数据用 ELK 可视化以发现其中的关联;为客户开发可以帮客户更好的定位潜在的风险,各个应用的瓶颈,以及更好的调试手段。

扯远了。

packetbeat 安装稍微麻烦,需要先装 libpcap:

代码语言:javascript
复制
sudo yum install libpcap
curl -L -O https://download.elastic.co/beats/packetbeat/packetbeat-1.0.1-x86_64.rpm
sudo rpm -vi packetbeat-1.0.1-x86_64.rpm

然后在 /etc/packetbeat/packetbeat.yml 中修改 elasticsearch 的地址, 然后运行即可:

代码语言:javascript
复制
$ sudo /etc/init.d/packetbeat start
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序人生 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • beats 简介
  • filebeat
  • packetbeat
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档