如何防止logstash向elastic发送多个日志文件?

r55awzrz  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(301)

我正在使用以下6.x堆栈:
filebeat->logstash->elastic->kibana公司
我正在尝试配置filebeat/logstash,以便只向elastic发送特定的日志文件。现在它似乎正在发送所有信息。
当我查看kibana时,我看到大多数来自/var/log/messages的消息。
filebeat配置:

  1. filebeat.inputs:
  2. - type: log
  3. enabled: true
  4. paths:
  5. #- /var/log/*.log
  6. - /var/log/nginx/app.access.log
  7. #- c:\programdata\elasticsearch\logs\*
  8. output.logstash:
  9. hosts: ["localhost:5044"]
  10. index: logstash

日志存储配置:

  1. input {
  2. beats {
  3. port => "5044"
  4. }
  5. }
  6. filter {
  7. grok {
  8. match => {"message" => '%{IP:client} - %{USERNAME:username} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent} %{DATA: http_x_forwarded_for} %{DATA:gzip_ratio} rt=%{NUMBER:request_time} uct=%{NUMBER:upstream_connect_time} uht=%{NUMBER:upstream_header_time} urt=%{NUMBER:upstream_response_time} %{NUMBER:user_id}'}
  9. }
  10. grok {
  11. match => {"request" => "\/dataset\/%{NUMBER:dataset_id}"}
  12. }
  13. kv {
  14. source => "request"
  15. field_split => "&?"
  16. transform_key => "lowercase"
  17. }
  18. if "/search" in [request] and [q] {
  19. mutate {add_field => {"search_action" => "search" }}
  20. }
  21. if [request] =~ "\/dataset\/%{NUMBER:dataset_id}" {
  22. mutate {add_field => {"dataset_id" => dataset_id}}
  23. }
  24. mutate {
  25. convert => {
  26. "user_id" => "integer"
  27. "dataset_id" => "integer"
  28. }
  29. # lowercase => [ "request" ]
  30. }
  31. }
  32. output {
  33. elasticsearch {
  34. codec => "json"
  35. hosts => ["127.0.0.1:9200"]
  36. }
  37. stdout { codec => rubydebug }
  38. }

使用此配置,我应该只获取发送到elastic的/var/log/nginx/app.access.log数据?
在kibana中,我看到多个日志文件中的所有活动:
/var/log/messages/var/log/secure
你知道为什么我找不到解决办法吗?
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题