ホームページ  >  記事  >  運用・保守  >  Linux で高可用性コンテナーのログ管理を構成する方法

Linux で高可用性コンテナーのログ管理を構成する方法

王林
王林オリジナル
2023-07-06 15:42:18709ブラウズ

Linux で高可用性コンテナ ログ管理を構成する方法

コンテナ テクノロジの急速な発展に伴い、システムのスケーラビリティと信頼性を向上させるためにコンテナ化された展開を採用する企業が増えています。コンテナ化された環境では、コンテナの実行状況の管理と監視を容易にするために、コンテナのログを一元管理することが非常に重要です。

この記事では、Linux 上で高可用性コンテナーのログ管理を構成する方法を紹介し、読者がよりよく理解して実践できるようにコード例を示します。

1. 適切なログ管理ツールを選択します

コンテナ ログ管理ツールを選択するときは、次の点を考慮する必要があります:

  1. コンテナ化された環境のサポート: を選択します。コンテナ環境に対応し、コンテナのログデータを簡単に収集・分析できるログ管理ツールです。
  2. 高可用性: コンテナー ログの継続的な可用性を確保するには、ログ データの損失や中断を防ぐために高可用性をサポートするログ管理ツールを選択する必要があります。
  3. 使いやすく、展開が簡単: 使いやすく、展開が簡単なログ管理ツールを選択すると、システム管理者の仕事のプレッシャーを軽減できます。

一般的なコンテナ ログ管理ツールには、ELK (Elasticsearch、Logstash、Kibana)、Fluentd、Prometheus などが含まれます。

2. ELK (Elasticsearch、Logstash、Kibana) のインストールと構成

ELK は、Elasticsearch、Logstash、Kibana の 3 つのコンポーネントで構成される人気のあるコンテナ ログ管理ツールです。以下では、CentOS を例として、ELK のインストールと設定方法を紹介します。

  1. Elasticsearch のインストール
sudo yum install java-1.8.0-openjdk -y
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

sudo yum install elasticsearch -y
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
  1. Logstash のインストール
sudo tee /etc/yum.repos.d/logstash.repo <<EOF
[logstash]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

sudo yum install logstash -y
sudo systemctl enable logstash
sudo systemctl start logstash
  1. Kibana のインストール
sudo tee /etc/yum.repos.d/kibana.repo <<EOF
[kibana]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

sudo yum install kibana -y
sudo systemctl enable kibana
sudo systemctl start kibana
  1. Logstash の構成

Logstash 構成ファイル /etc/logstash/conf.d/logstash.conf に、次の内容を追加します:

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}
  1. Kibana の構成

Kibana の構成ファイル /etc/kibana/kibana.yml に次の内容を追加します:

server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

Logstash と Kibana を再起動しますservice:

sudo systemctl restart logstash
sudo systemctl restart kibana

ELK のインストールと構成が完了したので、Kibana の Web インターフェイスを介してコンテナ ログ データにアクセスし、クエリを実行できるようになります。

3. コンテナ ログ管理に Fluentd を使用する

Fluentd も人気のあるコンテナ ログ管理ツールで、その設計コンセプトはシンプル、軽量、スケーラブルです。以下では、Ubuntu を例として、Fluentd のインストールと設定方法を紹介します。

  1. Fluentd のインストール
curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-focal-td-agent4.sh | sh
sudo systemctl enable td-agent
sudo systemctl start td-agent
  1. Fluentd の設定

Fluentd の設定ファイルの編集/etc/td-agent/ td -agent.conf、次の内容を追加します:

<source>
  @type tail
  path /var/log/containers/*.log
  pos_file /var/log/td-agent/td-agent.log.pos
  tag kube.*
  format json
  time_format %Y-%m-%dT%H:%M:%S.%NZ
  read_from_head true
</source>

<match label1.**>
  @type elasticsearch
  host localhost
  port 9200
  logstash_format true
  flush_interval 5s
</match>

Fluentd サービスを再起動します:

sudo systemctl restart td-agent

これで、Fluentd がインストールおよび構成され、コンテナー ログ データを収集して保存できるようになりました。 。

結論

コンテナログ管理は、コンテナ環境の安定した運用とトラブルシューティングを確保するために非常に重要です。この記事では、Linux 上で高可用性コンテナー ログ管理を構成する方法について説明し、ELK と Fluentd のインストールと構成の例を示します。読者は、自分のニーズに応じてコンテナ ログ管理に適切なツールを選択し、例に従って構成して使用できます。

参考:

  • https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-install.html
  • https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
  • https://www.elastic.co/guide/en/kibana/current/rpm.html
  • https://fluentbit.io/
  • https://docs.fluentd.org/v1.0/articles/docker-logging-efk-compose

以上がLinux で高可用性コンテナーのログ管理を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。