当前位置:   article > 正文

filebeat采集udp/tcp数据_filebeat采集udp端口

filebeat采集udp端口

背景:在 win10下docker操作filebeat做日志采集 基础上进行

一、配置文件

1. D:\usr\local\etc\filebeat目录下docker-compose-filebeat.yml文件,新增暴露端口

  1. version: '3'
  2. services:
  3. filebeat:
  4. image: elastic/filebeat:7.6.2
  5. container_name: filebeat
  6. volumes:
  7. - /d/usr/local/logs/filebeat:/usr/share/filebeat/logs
  8. - /d/usr/local/etc/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml
  9. - /d/usr/local/var/filebeat/data:/usr/share/filebeat/data
  10. ports:
  11. - 8080:8080/udp
  12. - 9000:9000

2. D:\usr\local\etc\filebeat目录下filebeat.yml文件,新增UDP、TCP数据源

  1. filebeat.inputs:
  2. - type: log
  3. enabled: true
  4. paths:
  5. - /usr/share/filebeat/logs/*.log
  6. # 自定义属性
  7. fields:
  8. type: log
  9. document_type: spring
  10. - type: tcp
  11. enabled: true
  12. max_message_size: 10MiB
  13. host: "0.0.0.0:9000"
  14. fields:
  15. type: tcp
  16. - type: udp
  17. enabled: true
  18. max_message_size: 10KiB
  19. host: "0.0.0.0:8080"
  20. fields:
  21. type: udp
  22. output.logstash:
  23. hosts: ["192.168.1.110:5044"]

3. D:\usr\local\etc\logstash\pipeline目录下新增UDP、TCP输出源

  1. input {
  2. stdin { }
  3. beats {
  4. port => 5044
  5. type => "filebeat"
  6. }
  7. # tcp {
  8. # mode => "server"
  9. # host => "0.0.0.0"
  10. # # 从5044端口取日志
  11. # port => 5044
  12. # # 需要安装logstash-codec-json_lines插件
  13. # codec => json_lines
  14. # type => "tcp"
  15. # }
  16. file {
  17. # 容器中日志所在目录的文件
  18. path => ["/usr/share/logstash/logs/*.log"]
  19. #codec => "json"
  20. sincedb_path => "NUL"
  21. type => "spring"
  22. start_position => "beginning"
  23. }
  24. }
  25. output {
  26. if [type] == "spring" {
  27. elasticsearch {
  28. hosts => ["es:9200"]
  29. index => "spring-%{+YYYY.MM.dd}"
  30. }
  31. }
  32. if [type] == "tcp" {
  33. elasticsearch {
  34. hosts => ["es:9200"]
  35. index => "logstash-%{+YYYY.MM.dd}"
  36. }
  37. }
  38. if [fields][type] == "log" {
  39. elasticsearch {
  40. hosts => ["es:9200"]
  41. manage_template => false
  42. index => "%{[@metadata][beat]}-%{[@metadata][version]}-log-%{+YYYY.MM.dd}"
  43. }
  44. }
  45. if [fields][type] == "tcp" {
  46. elasticsearch {
  47. hosts => ["es:9200"]
  48. manage_template => false
  49. index => "%{[@metadata][beat]}-%{[@metadata][version]}-tcp-%{+YYYY.MM.dd}"
  50. }
  51. }
  52. if [fields][type] == "udp" {
  53. elasticsearch {
  54. hosts => ["es:9200"]
  55. manage_template => false
  56. index => "%{[@metadata][beat]}-%{[@metadata][version]}-udp-%{+YYYY.MM.dd}"
  57. }
  58. }
  59. if [fields][document_type] == "spring" {
  60. elasticsearch {
  61. hosts => ["es:9200"]
  62. manage_template => false
  63. index => "%{[@metadata][beat]}-%{[@metadata][version]}-spring-%{+YYYY.MM.dd}"
  64. }
  65. }
  66. stdout { codec => rubydebug }
  67. }

二、重启容器

1. 重启logstash

docker restart logstash

 

2. 重启filebeat

docker restart filebeat

三、发送数据

1. UDP数据发送脚本send_udp.py

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import socket # 网络通信 TCP,UDP
  4. # SOCK_DGRAM表示UDP,SOCKET_STREAM表示TCP
  5. client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  6. while True:
  7. msg = input('>>: ').strip()
  8. if not msg:
  9. continue
  10. client.sendto(msg.encode('utf-8'), ('192.168.1.110', 8080))
  11. if msg == 'close':
  12. break
  13. client.close()

2. TCP数据发送脚本send_tcp.py

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import socket # 网络通信 TCP,UDP
  4. # SOCK_DGRAM表示UDP,SOCKET_STREAM表示TCP
  5. host = ('127.0.0.1', 9000)
  6. client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  7. client.connect(host)
  8. while True:
  9. msg = input('>>: ').strip()
  10. if not msg:
  11. continue
  12. client.sendto(msg.encode('utf-8'), host)
  13. if msg == 'close':
  14. break
  15. client.close()

3. 执行send_udp.py脚本

4. 执行send_tcp.py脚本

四、查看结果

1. 接收udp数据结果

2. 接收tcp数据结果

从以上结果可以看出配置成功

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

闽ICP备14008679号