Filebeat: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показаны 3 промежуточные версии этого же участника)
Строка 6: Строка 6:
 
[[Категория:Kibana]]
 
[[Категория:Kibana]]
 
[[Категория:Filebeat]]
 
[[Категория:Filebeat]]
  +
[[Категория:Draft]]
 
=Filebeat=
 
=Filebeat=
 
Это заготовка заметки про Filebeat
 
Это заготовка заметки про Filebeat
  +
  +
=Уcтановка=
  +
из той же репы что и Elasticsearch
  +
<PRE>
  +
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  +
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
  +
sudo apt-get update
  +
sudo apt-get install filebeat
  +
</PRE>
   
 
Ссылки
 
Ссылки
 
* http://vasilisc.com/filebeat-elk
 
* http://vasilisc.com/filebeat-elk
 
* https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html
 
* https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html
  +
  +
=Примеры конфигов=
  +
==Autodiscovery==
  +
Приложение на руби пишет логи вида
  +
<PRE>
  +
2021-09-02T10:31:26.646Z 7 TID-8n4j WARN: /gems/ruby/2.7.0/gems/sidekiq-5.2.9/lib/sidekiq/processor.rb:274:in `block in constantize'
  +
/gems/ruby/2.7.0/gems/sidekiq-5.2.9/lib/sidekiq/processor.rb:271:in `each'
  +
/gems/ruby/2.7.0/gems/sidekiq-5.2.9/lib/sidekiq/processor.rb:271:in `inject'
  +
<пропущено много строе>
  +
/gems/ruby/2.7.0/gems/sidekiq-5.2.9/lib/sidekiq/util.rb:25:in `block in safe_thread'
  +
/gems/ruby/2.7.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
  +
2021-09-02T10:31:31.906Z 7 TID-8n6f AiReviews::Tags::SyncStatusJob JID-3e0d1a6527c0ce06ddc34b14 INFO: start
  +
</PRE>
  +
Для того что бы записать его в лог не построчно и не указывать путь к логу используется конструкция:
  +
<PRE>
  +
filebeat.autodiscover:
  +
providers:
  +
- type: docker
  +
templates:
  +
- condition:
  +
regexp:
  +
docker.container.image: "server"
  +
config:
  +
- type: container
  +
paths:
  +
- /var/lib/docker/containers/${data.docker.container.id}/*.log
  +
multiline.pattern: '^202[0-9]-'
  +
multiline.negate: true
  +
multiline.match: after
  +
fields:
  +
type: "ruby_application_logs"
  +
docker_autodiscovery: "true"
  +
source_hostname: "testbyvlada.arturhaunt.com"
  +
fields_under_root: true
  +
</PRE>
  +
==Multileine==
  +
<PRE>
  +
filebeat.inputs:
  +
- type: log
  +
enabled: true
  +
paths:
  +
- /var/www/deploy/backend/shared/log/staging.log
  +
exclude_files: ['\.gz$']
  +
fields:
  +
nginx_logs: "false"
  +
ruby_application_logs: "true"
  +
type: "ruby_application_logs"
  +
source_hostname: "testbyvlada.arturhaunt.com"
  +
fields_under_root: true
  +
multiline:
  +
pattern: '[A-Z], \[[0-9]{4}'
  +
negate: true
  +
match: after
  +
</PRE>

Текущая версия на 15:09, 2 сентября 2021

Filebeat

Это заготовка заметки про Filebeat

Уcтановка

из той же репы что и Elasticsearch

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update
sudo apt-get install filebeat

Ссылки

Примеры конфигов

Autodiscovery

Приложение на руби пишет логи вида

2021-09-02T10:31:26.646Z 7 TID-8n4j WARN: /gems/ruby/2.7.0/gems/sidekiq-5.2.9/lib/sidekiq/processor.rb:274:in `block in constantize'
/gems/ruby/2.7.0/gems/sidekiq-5.2.9/lib/sidekiq/processor.rb:271:in `each'
/gems/ruby/2.7.0/gems/sidekiq-5.2.9/lib/sidekiq/processor.rb:271:in `inject'
<пропущено много строе>
/gems/ruby/2.7.0/gems/sidekiq-5.2.9/lib/sidekiq/util.rb:25:in `block in safe_thread'
/gems/ruby/2.7.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
2021-09-02T10:31:31.906Z 7 TID-8n6f AiReviews::Tags::SyncStatusJob JID-3e0d1a6527c0ce06ddc34b14 INFO: start

Для того что бы записать его в лог не построчно и не указывать путь к логу используется конструкция:

filebeat.autodiscover:
  providers:
    - type: docker
      templates:
        - condition:
            regexp:
              docker.container.image: "server"
          config:
            - type: container
              paths:
                - /var/lib/docker/containers/${data.docker.container.id}/*.log
              multiline.pattern: '^202[0-9]-'
              multiline.negate: true
              multiline.match: after
              fields:
                type: "ruby_application_logs"
                docker_autodiscovery: "true"
                source_hostname: "testbyvlada.arturhaunt.com"
              fields_under_root: true

Multileine

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/www/deploy/backend/shared/log/staging.log
  exclude_files: ['\.gz$']
  fields:
    nginx_logs: "false"
    ruby_application_logs: "true"
    type: "ruby_application_logs"
    source_hostname: "testbyvlada.arturhaunt.com"
  fields_under_root: true
  multiline:
    pattern: '[A-Z], \[[0-9]{4}'
    negate: true
    match: after