Beats是elastic公司的一款轻量级数据采集产品,它包含了几个子产品:
packetbeat(用于监控网络流量)、
filebeat(用于监听日志数据,可以替代logstash-input-file)、
topbeat(用于搜集进程的信息、负载、内存、磁盘等数据)、
winlogbeat(用于搜集windows事件日志)
另外社区还提供了dockerbeat等工具。由于他们都是基于libbeat写出来的,因此配置上基本相同,只是input输入的地方各有差异。
本文按照如下的内容依次进行介绍:
背景知识:关于Powershell的使用
packetbeat的下载、部署、使用、结果样例
filebeat的下载、部署、使用、样例
topbeat的样例
winlogbeat的样例
如果你是想在linux下使用,那么可以跳过本节。
elastic中的Beats在windows环境中基本都是使用Powershell的脚本,因此用户必须对Powershell有一定的了解。Powershell可以理解成windows对命令行的高级封装,加了个壳,从而支持更多高级的用法。在windows7开始,系统就内置了Powershell工具。因此如果你的系统是xp这种比较老的版本,就需要自己安装Powershell了。
在windows下,有两种方式打开Powershell(要以管理员的身份打开)。
在windows下开启搜索,输入powershell,右键以管理员身份运行。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CMwcDNzUjN0UTMtYDM2QjMwEDOxEDM4AjNxAjMtQjNwkDN08CX4AjNxAjMvwFN2ATO0QzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
在系统路径C:\Windows\System32下,以管理员身份启动cmd.exe(右键选择 以管理员身份运行)。
输入命令Powershell,进入Powershell命令窗口。
默认的情况下,系统会禁止运行脚本,返回下面的错误提示:
需要修改该参数执行下面的命令,开启Powershell脚本功能:
Packetbeat属于beats产品的一部分,专门负责网络数据包分析,可以:
针对特定的网卡监听流量;
可以设置相关的监听对象和端口号,支持dns,http,memcahce,mysql,pgsql,redis,thrift,mongodb等;
可以输出到特定的目的地,如elasticsearch、logstash、file、console等。
<a href="https://www.elastic.co/downloads/beats">https://www.elastic.co/downloads/beats</a>
下载.tar.gz的安装包后,解压:
进入解压后的文件夹,里面有3个文件:
配置文件包括了几大部分:
正常的运行:
如果想要后台运行,则可以像下面这样:
默认日志都会输出到nohup.out中。
相比linux,多了两个powershell的脚本。
进入指定的目录,运行注册脚本。
Packetbeat配置如下:
Packetbeat配置如下:
logstash采用logstash-input-beats接收,配置可以参考如下:
PacketBeat配置:
默认是按照文件大小轮询。
日志可以设置输出的位置,以及级别。跟平常使用的log4j差不多:
filebeat是Beats的重要组成部分,它可以作为轻量级的数据采集引擎,替代之前的logstash-forward。
filebeat.yml为filebeat的配置文件,包括下面几个部分:
filebeat.template.json 为默认提供的elasticsearch映射模板
filebeat为主要的执行程序
运行命令解压安装包——filebeat.tar.gz
编辑filebeat.yml
启动filebeat
以管理员身份运行cmd, 并执行<code>Powershell</code>命令,进入PS模式.启动filebeat注册脚本:
编辑配置文件,filebeat.yml
启动filebeat文件
启动方式与前面几种类似,这里就不过多赘述了。