Filebeatを使用してオンラインdockerログを収集する
15398 ワード
Filebeat公式サイト:https://www.elastic.co/guide/en/beats/filebeat/index.html
警告:ここでは必ず自分がインストールしたfilebeatがどのバージョンなのかを確認してください.それから公式サイトの対応バージョンの下で、パラメータの設定を行います;踏み込みを避ける.
一、概説 Filebeatは、
input-log関連プロパティの構成は以下の通りです.https://www.elastic.co/guide/en/beats/filebeat/6.5/filebeat-input-log.html output-redis関連プロパティの構成を参照してください.https://www.elastic.co/guide/en/beats/filebeat/6.5/redis-output.html
当社の環境および構成を参照して、filebeatのパラメータ設定について詳しく説明します.バージョン:6.5.4
オンラインfilebeat構成:
Input入力部
1.dockerログ注記の収集:
2.Nginxログ注記の収集:
3.Mysqlスローログ注記の収集:
output出力部
上記の複雑なケース注釈を通じて、簡単なfilebeat構成を見ると、理解しやすくなります.
はい、filebeatの構成はここまでです.より多くの収集項目は実際の環境に基づいて構成する必要があります.後日会社はk 8 sに行くのでfilebeatは大規模な修正を行います.
最初の文章、よく書けないのはまだ責任を負ってください.もしこの文章があなたに役に立つなら、私に注目してください.これからは定期的に技術の干物を分かち合います.
転載明記原文:Filebeatを使用してオンラインdockerログを収集する
警告:ここでは必ず自分がインストールしたfilebeatがどのバージョンなのかを確認してください.それから公式サイトの対応バージョンの下で、パラメータの設定を行います;踏み込みを避ける.
一、概説
Filebeat
はBeatメンバーの1つであり、Go言語に基づいて開発され、依存を追加する必要はありません.Logstash
とfilebeat
はログ収集の機能を持っていますが、filebeat
はより軽量で、リソースの消費量が少ないため、filebeat
は一般的にクライアントサーバにインストールされ、クライアント上でログを収集し、最終的にLogstash
に転送して分析します.harvesters
とprospector
の2つの主要な構成要素から構成される.この2つのコンポーネントは一緒にFilebeatの仕事を完成し、inputは指定されたパスファイルでデータを読み出します.その後、イベントデータを構成されたoutputに送信します.Harvesters
は、単一のファイルのコンテンツ収集を担当し、実行中に各Harvester
は、1つのファイルに対して行単位のコンテンツ読み出しを行い、読み出したコンテンツを構成されたoutputに送信する.Prospector
は、Harvsters
を管理し、読み取りが必要なすべてのデータソースを見つける責任を負います.inputがlog(ログ)タイプで構成されている場合、Prospector
は構成されたパスの下で一致するすべてのファイルを検索し、最後に各ファイルにHarvster
を作成します.input-log関連プロパティの構成は以下の通りです.https://www.elastic.co/guide/en/beats/filebeat/6.5/filebeat-input-log.html output-redis関連プロパティの構成を参照してください.https://www.elastic.co/guide/en/beats/filebeat/6.5/redis-output.html
当社の環境および構成を参照して、filebeatのパラメータ設定について詳しく説明します.バージョン:6.5.4
オンラインfilebeat構成:
filebeat.inputs:
# docker
- type: log
enabled: true
paths:
- "/qj/docker/data/docker/containers/*/*-json.log"
scan_frequency: 6s
harvester_buffer_size: 16384
max_bytes: 10485760
fields:
level: debug
fields_under_root: true
log_topics: ali245
encoding: utf-8
json:
json.keys_under_root: true
json.add_error_key: true
json.message_key: log
tail_files: true
processors:
- add_docker_metadata:
host: "unix:///var/run/docker.sock"
match_source: true
match_source_index: 5
# Nginx
- type: log
enabled: true
encoding: utf-8
paths:
- "/qj/nginx/log/access.log"
fields:
log_topics: nginx
# Nginx
- type: log
enabled: true
encoding: utf-8
paths:
- "/qj/nginx/log/error.log"
fields:
log_topics: nerror
# Mysql
- type: log
enabled: true
paths:
- "/qj/mysql/data3306/slow.log"
backoff: 1s
max_backoff: 10s
backoff_factor: 2
harvester_limit: 10
multiline.pattern: "^# User@Host:"
multiline.negate: true
multiline.match: after
multiline.timeout: 5s
fields:
log_topics: slow
queue.mem:
events: 8192
flush.min_events: 4096
flush.timeout: 60s
force_close_files: true
output.redis:
hosts: ["172.17.3.102:6379"]
key: "ali1_log"
keys:
- key: "{[fields.list]}"
mappings:
log_topics: "ali245"
log_topics: "nginx"
log_topics: "nerror"
log_topics: "slow"
db: 1
timeout: 5
Input入力部
1.dockerログ注記の収集:
# filebeat
filebeat.inputs:
# log
type: log
# 。 ,enabled true。
enabled: true
# , docker
paths:
# , /qj/*/*.log /qj
- "/qj/docker/data/docker/containers/*/*-json.log"
# , 6s , , Filebeat CPU , 10s
scan_frequency: 6s
# harvester ( ) ( ), 16384
harvester_buffer_size: 16384
# , 。 10M(40485760 bytes)
max_bytes: 10485760
#
fields:
# , “level:debug”, 。
# , fields fields , fields.level
# es , "filelds":{"level":"debug"}
level: debug
# true: field ; fields ; field filebeat field。
fields_under_root: true
# redis topic 。 , index,
log_topics: ali245
#
encoding: utf-8
# Filebeat JSON 。Filebeat , JSON ,JSON 。
json:
# :
json.keys_under_root: true
json.add_error_key: true
json.message_key: log
# Filebeat , true,Filebeat 。
# : Filebeat , 。 , , 。
tail_files: false
# 。
processors:
# docker
- add_docker_metadata:
# Docker (UNIX TCP )。unix:///var/run/docker.sock
host: "unix:///var/run/docker.sock"
# source ID 。
match_source: true
# / ID。 4 /var/lib/docker/containers//*.log
# :/qj/docker/data/docker/containers/container_id/*-json.log 5 。
match_source_index: 5
2.Nginxログ注記の収集:
# ,
# Nginx
- type: log
enabled: true
encoding: utf-8
paths:
- "/qj/nginx/log/access.log"
fields:
log_topics: nginx
# Nginx
- type: log
enabled: true
encoding: utf-8
paths:
- "/qj/nginx/log/error.log"
fields:
log_topics: nerror
" docker , fields "
redis topic 。 , index, 。
Nginx topics nginx
Nginx topics nerror
3.Mysqlスローログ注記の収集:
# Mysql
- type: log
enabled: true
paths:
- "/qj/mysql/data3306/slow.log"
# Filebeat EOF( ) , , 1s。
backoff: 1s
# Filebeat EOF , 10 。
# max_backoff , backoff_factor
max_backoff: 10s
# 。backoff ,max_backoff 。backoff 。 1. 1, backoff
# backoff 。 backoff backoff_factor, max_backoff 。 2。
backoff_factor: 2
# harvester_limit 。 harvester_limit 0, .
# , 。
harvester_limit: 10
# multiline Filebeat 。
# :https://www.elastic.co/guide/en/beats/filebeat/6.5/multiline-examples.html
# pattern, 。
multiline.pattern: "^# User@Host: "
# negate, 。 false。
multiline.negate: true
# match, Filebeat ( 。)
multiline.match: after
# timeout, , ,Filebeat 。 5 。
multiline.timeout: 5s
# Mysql topics slow
fields:
log_topics: slow
output出力部
# queue.mem , ( 。)
queue.mem:
# ,
# , flush.min_events flush.timeout 。
# flush.min.events 2048 flush.timeout 1s。
events: 8192 # , 4096 。
flush.min_events: 4096 # 。 0, 。 。 2048
flush.timeout: 60s # flush.min_events。 0, 。 1
# true , Filebeat 。 false。
force_close_files: true
#
output.redis:
# Redis 。 ( ), 。 , 。
hosts: ["172.17.3.102:6379"]
# Redis 。 ,index 。
key: "ali1_log"
# keys 。 key 。
keys:
- key: "{[fields.list]}" # fields.list Redis 。
# , key 。
mappings:
log_topics: "ali245"
log_topics: "nginx"
log_topics: "nerror"
log_topics: "slow"
# Redis 。 0。
db: 1
# Redis ( )。 5 。
timeout: 5
上記の複雑なケース注釈を通じて、簡単なfilebeat構成を見ると、理解しやすくなります.
filebeat.inputs:
- type: log
enabled: true
paths:
- "/qj/docker-data/containers/*/*-json.log"
encoding: utf-8
json:
json.keys_under_root: true
json.add_error_key: true
json.message_key: log
tail_files: true
processors:
- add_docker_metadata:
host: "unix:///var/run/docker.sock"
match_source: true
match_source_index: 3
output.redis:
hosts: ["172.17.3.102:6379"]
key: "ali2_log"
db: 2
timeout: 5
はい、filebeatの構成はここまでです.より多くの収集項目は実際の環境に基づいて構成する必要があります.後日会社はk 8 sに行くのでfilebeatは大規模な修正を行います.
最初の文章、よく書けないのはまだ責任を負ってください.もしこの文章があなたに役に立つなら、私に注目してください.これからは定期的に技術の干物を分かち合います.
転載明記原文:Filebeatを使用してオンラインdockerログを収集する