当前位置:   article > 正文

Beats数据采集---Packetbeat\Filebeat\Topbeat\WinlogBeat使用指南

packetbeat topbeat配置

Beats是elastic公司的一款轻量级数据采集产品,它包含了几个子产品:

  • packetbeat(用于监控网络流量)、
  • filebeat(用于监听日志数据,可以替代logstash-input-file)、
  • topbeat(用于搜集进程的信息、负载、内存、磁盘等数据)、
  • winlogbeat(用于搜集windows事件日志)

另外社区还提供了dockerbeat等工具。由于他们都是基于libbeat写出来的,因此配置上基本相同,只是input输入的地方各有差异。

本文按照如下的内容依次进行介绍:

  • 背景知识:关于Powershell的使用
  • packetbeat的下载、部署、使用、结果样例
  • filebeat的下载、部署、使用、样例
  • topbeat的样例
  • winlogbeat的样例

关于Powershell

如果你是想在linux下使用,那么可以跳过本节。

elastic中的Beats在windows环境中基本都是使用Powershell的脚本,因此用户必须对Powershell有一定的了解。Powershell可以理解成windows对命令行的高级封装,加了个壳,从而支持更多高级的用法。在windows7开始,系统就内置了Powershell工具。因此如果你的系统是xp这种比较老的版本,就需要自己安装Powershell了。

启动Powershell

在windows下,有两种方式打开Powershell(要以管理员的身份打开)。

通过图标打开

在windows下开启搜索,输入powershell,右键以管理员身份运行。

449064-20160801181024606-1546534700.png

通过命令行启动

在系统路径C:\Windows\System32下,以管理员身份启动cmd.exe(右键选择 以管理员身份运行)。

输入命令Powershell,进入Powershell命令窗口。

  1. C:\Windows\system32>Powershell
  2. Windows PowerShell
  3. 版权所有 (C) 2009 Microsoft Corporation。保留所有权利。
  4. PS C:\Windows\system32>

开启脚本限制

默认的情况下,系统会禁止运行脚本,返回下面的错误提示:

  1. PS E:\packetbeat> .\install-service-packetbeat.ps1
  2. 无法加载文件 E:\packetbeat\install-service-packetbeat.ps1,因为在此系统中禁止执
  3. 行脚本。有关详细信息,请参阅 "get-help about_signing"
  4. 所在位置 行:1 字符: 33
  5. + .\install-service-packetbeat.ps1 <<<<
  6. + CategoryInfo : NotSpecified: (:) [], PSSecurityException
  7. + FullyQualifiedErrorId : RuntimeException

需要修改该参数执行下面的命令,开启Powershell脚本功能:

PS E:\packetbeat> set-ExecutionPolicy RemoteSigned

Packetbeat 网络流量监控

Packetbeat属于beats产品的一部分,专门负责网络数据包分析,可以:

  • 针对特定的网卡监听流量;
  • 可以设置相关的监听对象和端口号,支持dns,http,memcahce,mysql,pgsql,redis,thrift,mongodb等;
  • 可以输出到特定的目的地,如elasticsearch、logstash、file、console等。

下载

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

部署

linux环境
第一步,解压缩

下载.tar.gz的安装包后,解压:

tar -zxvf packetbeat-1.2.3-x86_64.tar.gz

进入解压后的文件夹,里面有3个文件:

  1. --- packetbeat #启动文件
  2. --- packetbeat.template.json #Elasticsearch中的映射配置
  3. --- packetbeat.yml #Packetbeat的配置文件
第二步,修改配置文件

配置文件包括了几大部分:

  1. # 配置网络监听的显卡
  2. interfaces:
  3. device:any
  4. # 配置协议
  5. protocols:
  6. http:
  7. ports:[80,8080,9000]
  8. redis:
  9. ports:[6379]
  10. # 配置输出
  11. output:
  12. elasticsearch:
  13. hosts:["localhost:9200"]
  14. inex:"packetbeat"
  15. template:
  16. name:"packetbeat"
  17. path:"packetbeat.template.json"
  18. overwrite:false
  19. logstah:
  20. hosts:["localhost:5044"]
  21. file:
  22. path:"/tmp/packetbeat"
  23. filename:packetbeat
  24. console:
  25. shipper:
  26. logging:
第三步,运行

正常的运行:

./packetbeat

如果想要后台运行,则可以像下面这样:

nohup ./packetbeat &

默认日志都会输出到nohup.out中。

windows环境
第一步,解压

相比linux,多了两个powershell的脚本。

  1. --- install-service-packetbeat.ps1 # 注册脚本
  2. --- uninstall-service-packetbeat.ps1 # 注销脚本
  3. --- packetbeat.exe #启动文件
  4. --- packetbeat.template.json #Elasticsearch中的映射配置
  5. --- packetbeat.yml #Packetbeat的配置文件
第二步,以管理员身份进入命令行,运行注册脚本

进入指定的目录,运行注册脚本。

 .\install-service-winlogbeat.ps1
第三步,启动服务
Start-Service packetbeat.exe

对接Elasticsearch

Packetbeat配置如下:

  1. elasticsearch:
  2. hosts: ["localhost:9200"]
  3. index: "packetbeat"
  4. template:
  5. name: "packetbeat"
  6. path: "packetbeat.template.json"

对接logstash

Packetbeat配置如下:

  1. logstash:
  2. # The Logstash hosts
  3. hosts: ["localhost:5044"]

logstash采用logstash-input-beats接收,配置可以参考如下:

  1. input{
  2. beats{
  3. port => 5044
  4. }
  5. stdin{}
  6. }
  7. output{
  8. stdout{
  9. codec => rubydebug
  10. }
  11. file{
  12. path => "E:\server.log"
  13. }
  14. }

存储到file

PacketBeat配置:

  1. file:
  2. path: "E:/packetbeat"
  3. filename: packetbeat

默认是按照文件大小轮询。

日志管理

日志可以设置输出的位置,以及级别。跟平常使用的log4j差不多:

  1. logging:
  2. files:
  3. path: E:/mybeat
  4. name: mybeat
  5. level: debug

Packetbeat监听到的内容

  1. {
  2. "_index": "packetbeat-2016.08.01",
  3. "_type": "dns",
  4. "_id": "AVZELeQzbZnlZq0jh6Vk",
  5. "_version": 1,
  6. "_score": 1,
  7. "_source": {
  8. "@timestamp": "2016-08-01T03:37:53.106Z",
  9. "beat": {
  10. "hostname": "XINGHL",
  11. "name": "XINGHL"
  12. },
  13. "bytes_in": 31,
  14. "bytes_out": 260,
  15. "client_ip": "10.4.45.44",
  16. "client_port": 51599,
  17. "client_proc": "",
  18. "client_server": "",
  19. "count": 1,
  20. "direction": "out",
  21. "dns": {
  22. "additionals": [
  23. {
  24. "class": "IN",
  25. "data": "115.239.210.176",
  26. "name": "ns4.a.shifen.com",
  27. "ttl": 281,
  28. "type": "A"
  29. },
  30. {
  31. "class": "IN",
  32. "data": "119.75.222.17",
  33. "name": "ns5.a.shifen.com",
  34. "ttl": 281,
  35. "type": "A"
  36. },
  37. {
  38. "class": "IN",
  39. "data": "61.135.165.224",
  40. "name": "ns1.a.shifen.com",
  41. "ttl": 281,
  42. "type": "A"
  43. },
  44. {
  45. "class": "IN",
  46. "data": "180.149.133.241",
  47. "name": "ns2.a.shifen.com",
  48. "ttl": 281,
  49. "type": "A"
  50. },
  51. {
  52. "class": "IN",
  53. "data": "61.135.162.215",
  54. "name": "ns3.a.shifen.com",
  55. "ttl": 281,
  56. "type": "A"
  57. }
  58. ],
  59. "additionals_count": 5,
  60. "answers": [
  61. {
  62. "class": "IN",
  63. "data": "www.a.shifen.com",
  64. "name": "sp1.baidu.com",
  65. "ttl": 33,
  66. "type": "CNAME"
  67. },
  68. {
  69. "class": "IN",
  70. "data": "61.135.169.125",
  71. "name": "www.a.shifen.com",
  72. "ttl": 282,
  73. "type": "A"
  74. },
  75. {
  76. "class": "IN",
  77. "data": "61.135.169.121",
  78. "name": "www.a.shifen.com",
  79. "ttl": 282,
  80. "type": "A"
  81. }
  82. ],
  83. "answers_count": 3,
  84. "authorities": [
  85. {
  86. "class": "IN",
  87. "data": "ns5.a.shifen.com",
  88. "name": "a.shifen.com",
  89. "ttl": 1182,
  90. "type": "NS"
  91. },
  92. {
  93. "class": "IN",
  94. "data": "ns1.a.shifen.com",
  95. "name": "a.shifen.com",
  96. "ttl": 1182,
  97. "type": "NS"
  98. },
  99. {
  100. "class": "IN",
  101. "data": "ns3.a.shifen.com",
  102. "name": "a.shifen.com",
  103. "ttl": 1182,
  104. "type": "NS"
  105. },
  106. {
  107. "class": "IN",
  108. "data": "ns2.a.shifen.com",
  109. "name": "a.shifen.com",
  110. "ttl": 1182,
  111. "type": "NS"
  112. },
  113. {
  114. "class": "IN",
  115. "data": "ns4.a.shifen.com",
  116. "name": "a.shifen.com",
  117. "ttl": 1182,
  118. "type": "NS"
  119. }
  120. ],
  121. "authorities_count": 5,
  122. "flags": {
  123. "authoritative": false,
  124. "recursion_allowed": true,
  125. "recursion_desired": true,
  126. "truncated_response": false
  127. },
  128. "id": 32509,
  129. "op_code": "QUERY",
  130. "question": {
  131. "class": "IN",
  132. "name": "sp1.baidu.com",
  133. "type": "A"
  134. },
  135. "response_code": "NOERROR"
  136. },
  137. "ip": "210.83.210.155",
  138. "method": "QUERY",
  139. "port": 53,
  140. "proc": "",
  141. "query": "class IN, type A, sp1.baidu.com",
  142. "resource": "sp1.baidu.com",
  143. "responsetime": 1,
  144. "server": "",
  145. "status": "OK",
  146. "transport": "udp",
  147. "type": "dns"
  148. }
  149. }

filebeat 日志监听

filebeat是Beats的重要组成部分,它可以作为轻量级的数据采集引擎,替代之前的logstash-forward。

下载

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

说明

filebeat.yml为filebeat的配置文件,包括下面几个部分:

  1. -- filebeat # 配置filebeat监听的对象,即文件路径或者目录的路径
  2. -- output # 输出配置,支持es,logstash,file,console等
  3. -- shipper
  4. -- logging # 配置日志

filebeat.template.json 为默认提供的elasticsearch映射模板
filebeat为主要的执行程序

运行

linux环境

运行命令解压安装包——filebeat.tar.gz

tar -zxvf filebeat.tar.gz

编辑filebeat.yml

vim filebeat.yml

启动filebeat

nohup ./filebeat &
windows环境

以管理员身份运行cmd, 并执行Powershell命令,进入PS模式.启动filebeat注册脚本:

  1. C:\Windows\system32>Powershell
  2. Windows PowerShell
  3. 版权所有 (C) 2009 Microsoft Corporation。保留所有权利。
  4. PS C:\Windows\system32> e:
  5. PS E:\> cd .\filebeat-1.2.3-windows
  6. PS E:\filebeat-1.2.3-windows> dir
  7. 目录: E:\filebeat-1.2.3-windows
  8. Mode LastWriteTime Length Name
  9. ---- ------------- ------ ----
  10. ----- 2016/5/18 4:33 10361856 filebeat.exe
  11. ----- 2016/5/18 4:33 814 filebeat.template.json
  12. ----- 2016/5/18 4:33 17533 filebeat.yml
  13. ----- 2016/5/18 4:33 442 install-service-filebeat.ps1
  14. ----- 2016/5/18 4:33 184 uninstall-service-filebeat.ps1
  15. PS E:\filebeat-1.2.3-windows> .\install-service-filebeat.ps1
  16. Status Name DisplayName
  17. ------ ---- -----------
  18. Stopped filebeat filebeat

编辑配置文件,filebeat.yml

启动filebeat文件

PS E:\filebeat-1.2.3-windows> Start-Service filebeat

样例

  1. {
  2. "_index": "filebeat-2016.08.01",
  3. "_type": "log",
  4. "_id": "AVZE1AMfbZnlZq0jh6cF",
  5. "_version": 1,
  6. "_score": 1,
  7. "_source": {
  8. "@timestamp": "2016-08-01T06:39:15.193Z",
  9. "beat": {
  10. "hostname": "XINGHL",
  11. "name": "XINGHL"
  12. },
  13. "count": 1,
  14. "fields": null,
  15. "input_type": "log",
  16. "message": "hello filebeat",
  17. "offset": 22988,
  18. "source": "e:\logs\test.log",
  19. "type": "log"
  20. }
  21. }

topbeat 监听进程资源信息

启动方式与前面几种类似,这里就不过多赘述了。

topbeat - windows版

  1. {
  2. "_index": "topbeat-windows-2016.08.01",
  3. "_type": "process",
  4. "_id": "AVZE7zC6bZnlZq0jh8QD",
  5. "_version": 1,
  6. "_score": 1,
  7. "_source": {
  8. "@timestamp": "2016-08-01T07:09:01.206Z",
  9. "beat": {
  10. "hostname": "XINGHL",
  11. "name": "XINGHL"
  12. },
  13. "count": 1,
  14. "proc": {
  15. "cmdline": "%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16",
  16. "cpu": {
  17. "user": 5538,
  18. "user_p": 0,
  19. "system": 7753,
  20. "total": 13291,
  21. "start_time": "Jan01"
  22. },
  23. "mem": {
  24. "size": 3391488,
  25. "rss": 3366912,
  26. "rss_p": 0,
  27. "share": 0
  28. },
  29. "name": "csrss.exe",
  30. "pid": 544,
  31. "ppid": 0,
  32. "state": "running",
  33. "username": "NT AUTHORITY\SYSTEM"
  34. },
  35. "type": "process"
  36. }
  37. }

topbeat - linux版本

  1. {
  2. "_index": "topbeat-2016.08.01",
  3. "_type": "process",
  4. "_id": "AVZE6Mh4bZnlZq0jh6jT",
  5. "_version": 1,
  6. "_score": 1,
  7. "_source": {
  8. "@timestamp": "2016-08-01T07:01:09.641Z",
  9. "beat": {
  10. "hostname": "10.0.67.101",
  11. "name": "10.0.67.101"
  12. },
  13. "count": 1,
  14. "proc": {
  15. "cpu": {
  16. "user": 0,
  17. "user_p": 0,
  18. "system": 0,
  19. "total": 0,
  20. "start_time": "Jul06"
  21. },
  22. "mem": {
  23. "size": 0,
  24. "rss": 0,
  25. "rss_p": 0,
  26. "share": 0
  27. },
  28. "name": "migration/0",
  29. "pid": 5,
  30. "ppid": 2,
  31. "state": "sleeping",
  32. "username": "root"
  33. },
  34. "type": "process"
  35. }
  36. }

winlogbeat windows事件监听

启动方式与前面几种类似,这里就不过多赘述了。

  1. {
  2. "_index": "winlogbeat-2015.11.09",
  3. "_type": "wineventlog",
  4. "_id": "AVZE_J7FbZnlZq0jh_sL",
  5. "_version": 1,
  6. "_score": 1,
  7. "_source": {
  8. "@timestamp": "2015-11-09T00:28:50.953Z",
  9. "beat": {
  10. "hostname": "XINGHL",
  11. "name": "XINGHL"
  12. },
  13. "computer_name": "xinghailong",
  14. "count": 1,
  15. "event_id": 35,
  16. "level": "信息",
  17. "log_name": "System",
  18. "message": "时间服务现在用时间源 time.neusoft.com,0x9 (ntp.m|0x9|0.0.0.0:123->202.118.6.8:123) 同步系统时间。",
  19. "record_number": "25479",
  20. "source_name": "Microsoft-Windows-Time-Service",
  21. "type": "wineventlog",
  22. "user": {
  23. "domain": "NT AUTHORITY",
  24. "identifier": "S-1-5-19",
  25. "name": "LOCAL SERVICE",
  26. "type": "Well Known Group"
  27. }
  28. }
  29. }

参考

官方文档

ELK Beats文档

本文转自博客园xingoo的博客,原文链接:Beats数据采集---Packetbeat\Filebeat\Topbeat\WinlogBeat使用指南,如需转载请自行联系原博主。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/135455
推荐阅读
相关标签
  

闽ICP备14008679号