0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

helmでELK Stackをインストールする方法

Last updated at Posted at 2024-12-17

はじめに

Kuberntes環境でELK Stack(Elasticsearc,Logstash,Kibana,Filebeat)をhelmでインストールする方法について説明します.

まず,環境についてです.環境は以下のにようになっており,ノードは1台です.

ノードの詳細情報

  • CPU: 4core
  • メモリー: 16GB
  • ストレージ: 25GB
  • OS: Ubuntu 24.04

次に,インストールの手順についてです.以下の手順でインストールと説明をします.

インストール手順

  • k3sのインストール
  • helmのインストール
  • namespaceの作成
  • Elasticsearchのインストール
  • Logstashのインストール
  • Kibanaのインストール
  • usernameとpasswordを確認
  • Filebeatのインストール

k3sのインストール

# k3sを公式スクリプトを使用してインストール
sudo curl -sfL https://get.k3s.io | sh -

# Kubernetesクライアント設定ファイル(k3s.yaml)を /tmp/config にコピー
sudo cp -p /etc/rancher/k3s/k3s.yaml /tmp/config

# コピーした設定ファイルのアクセス権を変更し、全ユーザーが読み取れるようにする
sudo chmod 644 /tmp/config

# 環境変数 KUBECONFIG に設定ファイルのパスを登録し、シェル起動時に適用する設定を .bashrc に追加
echo "export KUBECONFIG=/tmp/config" >> ~/.bashrc

# .bashrc に追加した環境変数や設定を現在のシェルに反映
source ~/.bashrc

helmのインストール

# helm v3のインストールスクリプトをget_helm.shという名前でダウンロード
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3

# ダウンロードしたスクリプトに実行権限を付与
chmod 700 get_helm.sh

# helm v3のインストールスクリプトを実行
./get_helm.sh

# Elastic社のhelmチャートリポジトリをhelmに登録
helm repo add elastic https://helm.elastic.co

# 登録したhelmリポジトリの情報を最新状態に更新
helm repo update

namespaceの作成(任意)

今回は,elasticをnamespaceとして作成したので,その時のものを例としてコマンドを載せています.

kubectl create namespace elastic

Elasticsearchのインストール

helm install elasticsearch elastic/elasticsearch -n elastic --set replicas=1

Logstashのインストール

helm install logstash elastic/logstash -n elastic --set replicas=1

Kibanaのインストール

helm install kibana elastic/kibana -n elastic \
  --set replicas=1 \
  --set service.type=NodePort \
  --set service.nodePort=30100 \
  --set service.port=5601 \
  --set elasticsearchHosts="https://elasticsearch-master:9200" \
  --timeout 30m \
  --wait=false

usernameとpasswordを確認

Filestreamをインストールする際にそれぞれのVM環境のpasswordが必要になるので,そのための確認コマンドです.

# username
kubectl get secret elasticsearch-master-credentials -n 作成したnamespace -o jsonpath='{.data.username}' | base64 --decode

# password
kubectl get secret elasticsearch-master-credentials -n 作成したnamespace -o jsonpath='{.data.username}' | base64 --decode

Filebeatのインストール

helm install filebeat elastic/filebeat -n elastic \
  --set daemonset.enabled=true \
  --set-string filebeatConfig."filebeat\.yml"="
filebeat.inputs:
  - type: container
    paths:
      - /var/log/containers/*.log
output.elasticsearch:
  hosts: [\"elasticsearch-master:9200\"]
  protocol: https
  username: \"確認したusernameを入れる\"
  password: \"確認したpasswordを入れる\"
  ssl.verification_mode: none"

ここまでがインストールの手順です.これらによりELK Stackがインストールされ使用できるようになります.

確認

ELK StackとFilebeatが正常にインストールされ,起動されているかを確認するには,以下のコマンドを使用すると確認できます.

kubectl get pod -A

実行結果

このようにREADYが1/1になっており,STATUSがRunningになっていればOKです.

image.png

サイトにて,IPアドレス:ポート番号で検索をかけるとKibanaも閲覧可能です.ポート番号は30100です.

image.png

最後に

注意点として,passwordを適切なものに設定していなかったり,CPUの数が足りていなかったりすると,インストールの手順の中でエラーが起こるかもしれないので気を付けてください.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?