ラベル Prometheus の投稿を表示しています。 すべての投稿を表示
ラベル Prometheus の投稿を表示しています。 すべての投稿を表示

2024年12月13日金曜日

helm( kube-prometheus-stack)とlokiの連携

helm経由で、 kube-prometheus-stackとloki stackを入れるだけだと連携ができないので

追加で以下の手順を進める必要がある。


1)Loki stackの導入を実施

helm install loki grafana/loki-stack --namespace monitoring --create-namespace


garafanaとの連携用のファイルを作成する(configMapでの設定方法もあるが
今回は、以下にする)
grafana:
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Loki
type: loki
url: http://loki.monitoring.svc.cluster.local:3100
access: proxy
isDefault: false



2)以下、コマンドを行うことでkube-prometheus-stackの修正が行われる
helm upgrade kube-prometheus-stack-xxxxxx prometheus-community/kube-prometheus-stack \
  --namespace monitoring \
  -f values.yaml

⚪︎ kube-prometheus-stack-xxxxxxは、 kube-prometheus-stackのリリース名を指定すること


設定自体は、手動で行う必要なし
(勝手に設定されている)


2024年12月10日火曜日

Helm(PVCの追加)

1)以下、クラスタ内にフォルダを作成する

/mnt/data

/mnt/data2


2)PVC用のマニュフェストを作成(garafana/Prometheus用)

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

---
# Grafana 用 PersistentVolume
apiVersion: v1
kind: PersistentVolume
metadata:
name: grafana-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /mnt/data # ノードのローカルパス (Grafana 用)
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- rasp-node1 # ノード名を指定
- rasp-node2

---
# Prometheus 用 PersistentVolume
apiVersion: v1
kind: PersistentVolume
metadata:
name: prometheus-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /mnt/data2 # ノードのローカルパス (Prometheus 用)
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- rasp-node1 # ノード名を指定
- rasp-node2


3)デプロイを行う

 kubectl apply -f /Volumes/Store/Technology/k8s/PVC/garafana-prometheus-pvc.yaml


4)Helmの記載に追記するマニュフェスト作成(volumes.yaml)

# Prometheus のストレージ設定
prometheus:
prometheusSpec:
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Equal"
value: "true"
effect: "NoSchedule"
storageSpec:
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi # Prometheus のストレージサイズを指定
storageClassName: local-storage # 作成したストレージクラス名を指定

# Grafana のストレージ設定
grafana:
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Equal"
value: "true"
effect: "NoSchedule"
persistence:
enabled: true
size: 10Gi # Grafana のストレージサイズを指定
storageClassName: local-storage # 作成したストレージクラス名を指定

5)以下のアップデートコマンド実施

helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring -f volumes.yaml

























Prometheus/Grafana(Helmによる導入)

手動で、yamlからprometheusやgrafanaを入れるとハマる要素がありすぎるので
素直にhelmから入れることにする 
(container系のcpu使用率を確認するクエリがまともに動かなかったのが経緯)

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm install prometheus prometheus-community/kube-prometheus-stack


以下が含まれる。

  • Prometheus Operator
  • Prometheus Server、Alertmanager、および関連するCustom Resource群
  • Node Exporter

2021年9月2日木曜日

k8s モニタリング&デプロイ関連導入のまとめ

環境:docker desktop for Mac 

k8sのモニタリング及びデプロイメントの環境をハンズオンしてみました。
詳細な、導入方法については、以下に記載する。






















1)メトリクス監視:Prometheus/Grafana
①閾値オーバーの通知:Line Notify
導入方法:
以下の公式からソースコードを入手後、以下のisitioコマンドにて、導入を行う。
istioctl install --set profile=demo -y
公式:
https://preliminary.istio.io/latest/docs/setup/getting-started/
2)ログ:Prometheus Loki(Plugin)
以下のHelmコマンドにて、導入を行う。
helm upgrade --install loki --namespace=istio-system loki/loki-stack

公式:
https://grafana.com/docs/loki/latest/installation/helm/

3)トレース:kiali/jeager
導入方法:
上記(1)にて、isitioコマンドで導入を行なったので、istiod/kiali/jeagerが導入済みの状態
4)CD:argoCD
導入方法:
以下、公式ページを参考にHelmコマンドにて導入を行う
helm install argo argo/argo-cd

公式:
https://github.com/argoproj/argo-helm/tree/master/charts/argo-cd
->(今回、CIは導入してないが、Github acthionsを増築予定)
5)k8sのモニタリング:Lens
->使い勝手がよかったので、そのまま使用してます。
導入方法:公式ページから入手すること!

公式:
https://k8slens.dev
6)障害テスト:Gremlin
以下の公式を参考にHelmコマンドにて、導入を行う。
helm install gremlin gremlin/gremlin --namespace gremlin --set gremlin.secret.managed=true --set gremlin.secret.type=secret --set gremlin.secret.teamID=XXXX --set gremlin.secret.clusterID=XXXX --set gremlin.secret.teamSecret=XXXX
XXXX ->公式から情報を入手すること! 

公式:
https://app.gremlin.com
7)導入ツール:Helm 導入方法:
以下、公式ページを参考に行う。

公式:
https://k8slens.dev

2021年7月27日火曜日

k8s for monitoring(prometheus/Grafana/istio/kiali/jaeger)

参照
https://istio.io/latest/docs/setup/getting-started/#download


k8sでモニタリングをしたくなったのでprometheus/Grafana/istio/kiali/jaegerを入れてみる。
 


超簡単な概要について


Kiali(可視ツール)

Istioのサービスメッシュが構築されているマイクロサービスで何が起こっているかを可視化するツール


Istio:  

トラフィックルーティングなどのトラフィック制御

認証やアクセス制限、暗号化などのセキュリティ

通信内容やトラフィック状況などの監視


Jaeger :

分散サービス間のトランザクションをトレースするためのオープンソース・ソフトウェア


Grafana:
prometheusの内容を可視化するツール

prometheus:
様々なメトリクスを収集


手順

1)istioctlコマンド(リソース)のダウンロード

curl -L https://istio.io/downloadIstio | sh -


2)以下のディレクトリに移動する

cd istio-1.10.3


3)パスを通す

export PATH=$PWD/bin:$PATH


4)istioのインストール

お試し利用程度なら、minialでも良いかもしれない。

istioctl install --set profile=demo -y

又は、

istioctl install --set profile=minimal -y








5)対象のnamespaceでアプリケーションをデプロイするときにEnvoyサイドカープロキシを

自動的に挿入するようにIstioに指示します。

kubectl label namespace default istio-injection=enabled



6)以下から各種モニタリング類のマニフェストを入手

https://github.com/istio/istio/tree/release-1.10/samples/addons


7)入手後、作成を行う。

kubectl apply -f samples/addons



■Wordpress導入

1)Helm経由でMySQLを入手

helm install mysql-01 stable/mysql


2)作成済みのwordpressを作成する。

kubectl create -f wordpress-deployment.yaml




以下の手順で簡易的にダッシュボードから確認


istioctl dashboard kiali

(wodpressとMySQL間の通信状況)












istioctl dashboard jaeger

(wodpressとMySQL間のトレース)














istioctl dashboard garafana



2021年7月18日日曜日

prometheusOperator for k8s(docker desktop)


1)namespaceを作成

kubectl create namespace monitoring


2)helmにて、prometheus-operatorのインストールを行う

helm install monitoring stable/prometheus-operator -n monitoring2


3)対象のnamespaceに導入されていることを確認

helm list -n monitoring


4)garafana, prometheusのpodに対して、nodeportの割り当てを行う。

kubectl patch svc -n namespace pod -p '{"spec": {"type": "NodePort"}}'

2021年7月7日水曜日

Prometheus&Grafanaの導入(for Raspberry pi)

 現時点で、Prometheus&Grafanaは、ARMベースのCPUで稼働してないので
ソースコードを使って導入を行ってみる。

■go-langの導入
1)go langをインストールする。
apt install golang








2)環境変数を設定する。

# cat >> ~/.bashrc << 'EOF'

> export GOPATH=$HOME/go

> export PATH=$PATH:$GOPATH/bin

> EOF








3)上記で設定内容を反映させる。

source ~/.bashrc





4)kube-state-metricsのARM用のイメージをビルドしている人のソースコードが
あったので使うことにする。

git clone https://github.com/carlosedp/cluster-monitoring



5)read meに記載している内容のい従ってmakeを実施。

make vendor

6)マニフェストを適応させる。

kubectl apply -f ./manifests/setup/

kubectl apply -f ./manifests/


7)以下、各種podが作成されたことが把握できる。

kubectl get pods -n monitoring



prometheusの修正を行う

1)マニュフェストの内容を見直しを行う。

sudo vi manifests/prometheus-service.yaml 

①NodePortを追記

②30909を追記



2)再適用を行う

kubectl apply -f manifests/prometheus-service.yaml 




■grafanaの修正

1)マニュフェストの修正を行う。

sudo vi manifests/grafana-service.yaml 

①NodePortを追記

②30300を追記











































2)再適用を行う。

kubectl apply -f manifests/grafana-service.yaml 



prometheus(2)の編集
1)マニュフェストの内容を見直しを行う。
externalUrl: http://prometheus.192.168.13.10(master nodeのIP).nip.ioに修正
②retention: 5dに修正する。


































2)最適応を行う
kubectl apply -f manifests/prometheus-prometheus.yaml



3)各種ポートが適応できているようだ。







4Grafanaのログインも可能に




5)Prometheusとの連携設定を行う







6)Prometheusを選択
















7)先ほど、Prometheusのマニュフェストで修正したポート(30909)を指定する



8)ダッシュボードの指定:

Prometheus 2.0 Statsを選択




9)以下のサイトを参考に、カスタマイズされた物をインポートする。
(参照先)

https://www.conversion.co.jp/technology/blog/-/detail/=/blog_id=7390284


(Grafana Dashboard)

https://grafana.com/grafana/dashboards


10)以下にて、監視画面の完成になる。



11)リソースメータも表示された



各種podについて

①prometheus-operator-alermanager

Alert Manager 本体


②prometheus-operator

Prometheus Operator 本体


③grafana

Prometheusのメトリクス可視化用のGrafana 本体


④kube-state-metrics

Kubernetes のオブジェクトごとのメトリクス出力用 exporter


⑤prometheus-node-exporter

ノードごとのメトリクス出力用 node exporter


⑥prometheus-operator-prometheus

Prometheus 本体











各AIツールの検証結果とリアルな評価:私感

 MacStudio M4 MAX 36GB/1TBを使っていて 個人的な、Aiエージェントの検証結果になります。 各エージェントのパラメータの意味や模索で結構時間が溶けてしまった。。。 各AIツールの検証結果とリアルな評価 ツール名 評価とリアルなボトルネック Roo Code...