DockerにおけるEFK環境の構築と使用
3797 ワード
問題はサービスでdockerを使っていくつかのserverを構築しました.serverに問題が発生したら、docker logs命令でログを確認するしかないです.あるいはjson-fileログを使って駆動できます.1.docker logsコマンドを使用するのは面倒で、保存できません.開発や実施者が確認するのはあまり便利ではありません.2.json-fileログを使って得られたログは、/var/lib/docker/containers/container_id/container_ID.json方式は存在して、最も肝心な点は容器がいったん再建されたらで、日誌はもう存在しません.
EFKの概要Elasticsearch、Flouentd、Kibanaの3つの組み合わせはEFKと略称され、Elasticsearchはオープンソースの分散型検索エンジンで、収集、分析、データ保存の三つの機能を提供します.その特徴は、分布、ゼロ配置、自動発見、インデックス自動スライス、インデックスコピーメカニズム、リセットスタイルインターフェース、多データソース、自動検索負荷などです.Flouentdはログ収集システムであり、豊富なプラグインを通じて、各種システムやアプリケーションからのログを収集し、ユーザー定義に従ってログを分類して処理することができます.Kibanaはオープンソースと無料ツールでもあります.KibanaはFlouentとElasticSearchのために提供するログの分析に友好的なWebインターフェースで、重要なデータログのまとめ、分析、検索を助けることができます.Flouentdで集めたログをElasticsearchに検索して使い、Kibanaで可視化する.準備docker-compose.yml fluuent.com nf を用意します. docker-compse up-dを実行し、EFKを起動します. テストサービス:httpd_server docker-compser.yml docker-compse up-dを実行し、http_を起動する.server. http://your_ip:9200/_search?pretty取得“_index”:“fluuentd-*”、 http://your_ip:5601 kiabnaを使う
EFKの概要Elasticsearch、Flouentd、Kibanaの3つの組み合わせはEFKと略称され、Elasticsearchはオープンソースの分散型検索エンジンで、収集、分析、データ保存の三つの機能を提供します.その特徴は、分布、ゼロ配置、自動発見、インデックス自動スライス、インデックスコピーメカニズム、リセットスタイルインターフェース、多データソース、自動検索負荷などです.Flouentdはログ収集システムであり、豊富なプラグインを通じて、各種システムやアプリケーションからのログを収集し、ユーザー定義に従ってログを分類して処理することができます.Kibanaはオープンソースと無料ツールでもあります.KibanaはFlouentとElasticSearchのために提供するログの分析に友好的なWebインターフェースで、重要なデータログのまとめ、分析、検索を助けることができます.Flouentdで集めたログをElasticsearchに検索して使い、Kibanaで可視化する.
version: "3"
services:
elk_server:
image: lis0x90/efk
container_name: efk_server
network_mode: bridge #
ports:
- "5601:5601"
- "9200:9200"
- "24224:24224"
volumes:
- ./config:/etc/fluent # ./config/fluent.conf fluentd
- ./log:/var/log # fluentd ,
- /etc/localtime:/etc/localtime # ( )
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
@type forward
port 24224
bind 0.0.0.0
<match *.**>
@type copy
@type elasticsearch
host localhost
port 9200
logstash_format true
logstash_prefix fluentd
logstash_dateformat %Y%m%d
include_tag_key true
type_name access_log
tag_key @log_name
flush_interval 1s
@type stdout
match>
version: '3'
services:
http_server:
image: httpd
container_name: http_server
ports:
- "80:80"
logging:
driver: "fluentd"
options:
fluentd-address: localhost:24224
tag: httpd_server