logstash(7.9.3)安装参考

1、拉取镜像

docker pull logstash:7.9.3

2、挂载卷

  1. mkdir /home/vvvv/docker/dockerVolumes/logstash/config
  2. mkdir /home/vvvv/docker/dockerVolumes/logstash/pipeline

2.1、config文件配置

vim logstash.yml

  1. config:
  2. reload:
  3. automatic: true
  4. interval: 3s
  5. xpack:
  6. management.enabled: false
  7. monitoring.enabled: false

vim pipelines.yml

  1. - pipeline.id: logstash_dev # !!!"-"前后都有空格!!!
  2. path.config: "/usr/share/logstash/pipeline/logstash_dev.conf" # path是容器内的路径!!!

2.2、pipelines文件配置

vim logstash_dev.conf

  1. input{
  2. kafka {
  3. bootstrap_servers => "10.6.62.211:9092"
  4. topics => ["DIDLIST_caesar_dynamic_data"]
  5. client_id => "logstash-0-0"
  6. group_id => "logstash"
  7. codec => "json"
  8. add_field => {
  9. "s_index" => "caesar_dynamic_data"
  10. }
  11. }
  12. kafka {
  13. bootstrap_servers => "10.6.62.211:9092"
  14. topics => ["DIDLIST_caesar_data_bank_make_ios"]
  15. client_id => "logstash-0-4"
  16. group_id => "logstash"
  17. codec => "json"
  18. add_field => {
  19. "s_index" => "caesar_data_bank_make_ios"
  20. "[@metadata][b_submeter]" => "true"
  21. }
  22. }
  23. }
  24. filter {
  25. date {
  26. match => ["message","UNIX_MS"]
  27. target => "@timestamp"
  28. }
  29. ruby {
  30. code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
  31. }
  32. ruby {
  33. code => "event.set('@timestamp',event.get('timestamp'))"
  34. }
  35. mutate {
  36. convert => ["timestamp", "string"]
  37. gsub => ["timestamp", "T([\S\s]*?)Z", ""]
  38. gsub => ["timestamp", "-", "."]
  39. }
  40. }
  41. output {
  42. if [@metadata][b_submeter] == "true" {
  43. elasticsearch {
  44. hosts => ["10.6.62.212:9400"]
  45. document_id => "%{id}"
  46. index => "%{s_index}_%{timestamp}"
  47. }
  48. } else {
  49. elasticsearch {
  50. hosts => ["10.6.62.212:9400"]
  51. document_id => "%{id}"
  52. index => "%{s_index}"
  53. }
  54. }
  55. }

3、部署容器

  1. # restart:只要docker启动,容器就会跟随启动
  2. # privileged=true:解决Docker挂载主机目录Docker访问出现cannot open directory.:Permission denied
  3. # -d 后台启动
  4. docker run -d --restart=always --privileged=true --name=logstash \
  5. -p 5047:5047 -p 9600:9600 \
  6. -v /home/vvvv/docker/dockerVolumes/logstash/config/:/usr/share/logstash/config \
  7. -v /home/vvvv/docker/dockerVolumes/logstash/pipeline/:/usr/share/logstash/pipeline fc2df485e5c5

4、查看日志

docker logs -tf logtstash