Kuberntes環境でELK stackのyamlファイルを使用せず,helmのみでインストールする方法について説明します.
まず,環境についてです.環境は以下のにようになっており,ノードは1台です.
ノードの詳細情報
- CPU: 4core
- メモリー: 16GB
- ストレージ: 25GB
- OS: Ubuntu 24.04
次に,インストールの手順についてです.以下の手順でインストールと説明をします.
インストール手順
- k3sのインストール
- helmのインストール
- namespaceの作成
- Elasticsearchのインストール
- Logstashのインストール
- Kibanaのインストール
- usernameとpasswordを確認
- Filebeatのインストール
k3sのインストール
sudo curl -sfL https://get.k3s.io | sh -
sudo cp -p /etc/rancher/k3s/k3s.yaml /tmp/config
sudo chmod 644 /tmp/config
echo "export KUBECONFIG=/tmp/config" >> ~/.bashrc
echo "export KUBECONFIG=/tmp/config" >> ~/.bashrc
helmのインストール
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm repo add elastic https://helm.elastic.co
helm repo update
namespaceの作成
namespaceがない場合は,作成する必要があるため,今回,例としてnamespaceをelasticとして作成するコマンドを載せます.
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 elastic -o jsonpath='{.data.username}' | base64 --decode
- password
kubectl get secret elasticsearch-master-credentials -n elastic -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: \"elastic\"
password: \"確かめたpasswordを入れる\"
ssl.verification_mode: none"
これで手順は終了です.これによりELKstackがインストールされ使用できるようになります.
ELKStackとFilebeatが正常にインストールされ,起動されているかを確認するには,以下のコマンドを使用すると確認できます.
kubectl get pod -A
結果
このようにREADYが1/1になっており,STATUSがRunningになっていればOKです.
サイトにて,IPアドレス:ポート番号で検索をかけるとKibanaも閲覧可能です.ポート番号は30100です.
最後に
注意点として,passwordを適切なものに設定していなかったり,CPUの数が足りていなかったりすると,インストールの手順の中でエラーが起こるかもしれないので気を付けてください.