sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Logstash接收udp/tcp数据

背景:在 Logstash数据源为日志文件操作 基础上进行

一、配置文件

1. D:\usr\local\etc\logstash\pipeline1目录下logstash.conf文件配置

  1. input {
  2. stdin { }
  3. udp {
  4. host => "0.0.0.0"
  5. # 从5000端口获取日志
  6. port => 5000
  7. type => "udp"
  8. }
  9. tcp {
  10. mode => "server"
  11. host => "0.0.0.0"
  12. # 从5044端口取日志
  13. port => 5000
  14. # 需要安装logstash-codec-json_lines插件
  15. codec => json_lines
  16. type => "tcp"
  17. }
  18. }
  19. output {
  20. stdout { codec => rubydebug }
  21. if [type] == "udp" {
  22. elasticsearch {
  23. hosts => ["192.168.1.110:9200"]
  24. index => "logstash-udp-%{+YYYY.MM.dd}"
  25. }
  26. }
  27. if [type] == "tcp" {
  28. elasticsearch {
  29. hosts => ["192.168.1.110:9200"]
  30. index => "logstash-tcp-%{+YYYY.MM.dd}"
  31. }
  32. }
  33. }

2. D:\usr\local\etc\logstash\config目录下logstash.yml文件配置

http.host: "0.0.0.0"

二、启动logstash

1. 执行命令,启动logstash容器(注:此处UDP/TCP数据接收端口为5000)

docker run -it -v /d/usr/local/etc/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v /d/usr/local/etc/logstash/pipeline1:/usr/share/logstash/pipeline --name logstash1 -p 9601:9600 -p 5000:5000/udp -p 5000:5000 logstash:7.7.0

三、数据发送

1. 在D:\usr\local\bin\start目录下创建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', 5000))
  11. if msg == 'close':
  12. break
  13. client.close()

2. D:\usr\local\bin\start目录下创建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', 5000)
  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. 执行udp数据发送脚本,发送数据

python3 send_udp.py

 

4. 执行tcp数据发送脚本,发送数据

python3 send_tcp.py

 

四、查看结果

1. udp数据接收结果

 

2. tcp数据接收结果

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

原文链接:https://blog.csdn.net/zsx18273117003/article/details/106218364
posted on 2024-03-11 17:22  sunny123456  阅读(334)  评论(0)    收藏  举报