filebeatを使用してelasticsearchにログを収集する
1.引用環境: Elastic stackバージョン:6.5.1次のコンポーネント--elasticsearchを使用 --kibana --filebeat
サービスログ保存ディレクトリ:/home/liujg/dev/crush-backend-cpp/crush/gateway/bin/Debug.rotationログファイルが複数あり、ログファイル名に「.log」が接尾辞されている.ログ記録フォーマット:行番号|タイムスタンプ|プロセスID|スレッドID|ログレベル|メッセージ内容
ターゲット filebeatを利用してサービスログを1つずつ抽出し、elasticsearchに書き込み、kibanaで表示する.
2.filebeatの構成
filebeat構成/etc/filebeat/filebeat.ymlの内容は次のとおりです.
paths:抽出されたログファイル、すべての*.logファイルtags、fields:ログクエリーのフィルタリングに使用されます.ログのサービスタイプ、サービスインスタンスを区別するために使用できます.(fieldsを使用する傾向があります)
tagsとfieldsの違いは参考になる(権威の定説は見られず、参考に供するのみ)Tags vs Fieldshttps://discuss.elastic.co/t/tags-vs-fields/24014
複数のinput.それぞれに独自のfieldsがあり、tags.(1つのfilebeatが複数のサービスを処理できるログ)Configure inを構成できます.putshttps://www.elastic.co/guide/en/beats/filebeat/master/configuration-filebeat-options.htmlhttps://www.elastic.co/guide/en/beats/filebeat/master/filebeat-input-log.html
3.elasticsearchデータの消去
操作elasticsearchインデックス.索引の表示
内容を返します.インデックス削除 指定したインデックスを削除します.
file-*インデックスを削除した後、ブラウザでkibanaを表示し、ログが空になったことを示すようにLooks like you don't have any logging indicesにプロンプトします.
4.ログの生成
起動プログラムはログファイルを生成します.ファイル名は2018-12-05_です.0000.log. 内容は次のとおりです.
5.検証
検証データはelasticsearch.apiとkibanaでそれぞれ表示されます.索引の表示
内容を返します.
kibanaページを開くhttp://192.168.21.190:5601
ログを表示すると、新しいログの内容が表示されます.抽出されたフィールド、tags、fieldsは、発見ページでフィルタできます.
6.索引照会コマンドクエリーインデックス すべて検索
q=*はクエリーのすべての内容を表します.pretty:きれいなフォーマット統計 条件照会
サービスログ保存ディレクトリ:/home/liujg/dev/crush-backend-cpp/crush/gateway/bin/Debug.rotationログファイルが複数あり、ログファイル名に「.log」が接尾辞されている.ログ記録フォーマット:行番号|タイムスタンプ|プロセスID|スレッドID|ログレベル|メッセージ内容
2.filebeatの構成
filebeat構成/etc/filebeat/filebeat.ymlの内容は次のとおりです.
filebeat.inputs:
- input_type: log
paths:
- /home/liujg/dev/crush-backend-cpp/crush/gateway/bin/Debug/*.log
tags: ["my-service", "hardware", "test"]
fields: {project: "myproject", instance-id: "574734885120952459"}
output.elasticsearch:
hosts: ["localhost:9200"]
pipeline: "test-pipeline"
paths:抽出されたログファイル、すべての*.logファイルtags、fields:ログクエリーのフィルタリングに使用されます.ログのサービスタイプ、サービスインスタンスを区別するために使用できます.(fieldsを使用する傾向があります)
tagsとfieldsの違いは参考になる(権威の定説は見られず、参考に供するのみ)Tags vs Fieldshttps://discuss.elastic.co/t/tags-vs-fields/24014
複数のinput.それぞれに独自のfieldsがあり、tags.(1つのfilebeatが複数のサービスを処理できるログ)Configure inを構成できます.putshttps://www.elastic.co/guide/en/beats/filebeat/master/configuration-filebeat-options.htmlhttps://www.elastic.co/guide/en/beats/filebeat/master/filebeat-input-log.html
3.elasticsearchデータの消去
操作elasticsearchインデックス.
$curl 'localhost:9200/_cat/indices?v'
内容を返します.
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana_1 3lHZbBZDTYKJbw6dT0wWBQ 1 0 3 0 9.1kb 9.1kb
yellow open filebeat-6.5.1-2018.12.04 NxDy6YLPTb-dWC8ldOlD_w 3 1 2 0 12.4kb 12.4kb
$ curl -XDELETE localhost:9200/filebeat-6.5.1-2018.12.04
file-*インデックスを削除した後、ブラウザでkibanaを表示し、ログが空になったことを示すようにLooks like you don't have any logging indicesにプロンプトします.
4.ログの生成
起動プログラムはログファイルを生成します.ファイル名は2018-12-05_です.0000.log. 内容は次のとおりです.
1|2018-12-05, 17:12:16.823414|8020|140509537564864|debug|A debug severity messag
2|2018-12-05, 17:12:16.833594|8020|140509242611456|error|connect to host:192.168.88.135port:3079failed.error:Connection refused
5.検証
検証データはelasticsearch.apiとkibanaでそれぞれ表示されます.
curl 'localhost:9200/_cat/indices?v'
内容を返します.
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana_1 3lHZbBZDTYKJbw6dT0wWBQ 1 0 3 0 9.1kb 9.1kb
yellow open filebeat-6.5.1-2018.12.05 tFzyRYRcTPKVRnVY0ekzaA 3 1 2 0 6.7kb 6.7kb
kibanaページを開くhttp://192.168.21.190:5601
ログを表示すると、新しいログの内容が表示されます.抽出されたフィールド、tags、fieldsは、発見ページでフィルタできます.
6.索引照会コマンド
$ curl 'localhost:9200/filebeat-6.5.1-2018.12.04/_search?q=*&pretty'
q=*はクエリーのすべての内容を表します.pretty:きれいなフォーマット
$ curl 'localhost:9200/filebeat-6.5.1-2018.12.04/_count?pretty'
$ curl 'localhost:9200/filebeat-*/_count?pretty'
$ curl -H'Content-Type: application/json' -XGET 'http://localhost:9200/filebeat-6.5.1-2018.12.04/_search?pretty=true' -d'
{
"query" : { "match" : { "message" : "info " }}
}
'