5. 監視¶
5.1. はじめに¶
5.2. Zabbixによる監視設定(Kubernetes)¶
- KubernetesクラスターにZabbixエージェントのインストール
- Kubernetesクラスターの監視設定
- ExastroシステムのPOD障害等発生時のメール通知設定
- Exastroシステムのログの集約先のサーバーにZabbixエージェントのインストール
- Exastroシステムのログ監視およびメール通知設定
5.2.1. 前提条件¶
- Zabbixサーバーが構築済みであること
- Exastroシステムのログの集約を実施済みであること。ログの集約の方法は ログの集約 を参照
- kubectl コマンドでExastroシステムが稼働するKubernetesクラスターにアクセス可能であること
5.2.2. Kubernetes監視設定¶
KubernetesクラスターにZabbixエージェントインストール¶
Zabbixエージェント: helm charts values.yamlの準備¶
helm show values zabbix-chart-6.4/zabbix-helm-chrt > ./zabbix_agent_values.yaml
Tip
# Zabbixエージェントの Helm リポジトリを登録
helm repo add zabbix-chart-6.4 https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.4
# リポジトリ情報の更新
helm repo update
1--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/share/ja/manuals/maintenance/literal_includes/zabbix_agent_values.org.yaml
2+++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/share/ja/manuals/maintenance/literal_includes/zabbix_agent_values.yaml
3@@ -56,7 +56,7 @@
4
5 ## Note that since version 6.0 the variable ZBX_SERVER_PORT is not supported anymore. Instead, add a colon (:) followed by the port number to the end of ZBX_SERVER_HOST value.
6 - name: ZBX_SERVER_HOST
7- value: "127.0.0.1"
8+ value: {ZABBIXサーバーの接続先}
9 ## The variable is used to specify debug level. By default, value is 3
10 - name: ZBX_DEBUGLEVEL
11 value: 3
12@@ -212,7 +212,7 @@
13 env:
14 ## Zabbix server host
15 - name: ZBX_SERVER_HOST
16- value: 0.0.0.0/0
17+ value: {ZABBIXサーバーの接続先}
18 ## Zabbix server port
19 - name: ZBX_SERVER_PORT
20 value: 10051
注釈
Zabbixエージェント: インストール¶
注釈
- namespaceの作成
kubectl create namespace monitoring
- Zabbixエージェント: インストール
helm install zabbix zabbix-chart-6.4/zabbix-helm-chrt --dependency-update -f ./zabbix_agent_values.yaml -n monitoring
- インストールされた Zabbixエージェント の確認
kubectl get po -n monitoring
NAME READY STATUS RESTARTS AGE zabbix-agent-85cmm 1/1 Running 0 54s zabbix-agent-86r8k 1/1 Running 0 54s zabbix-agent-brrk7 1/1 Running 0 54s zabbix-agent-gbzsx 1/1 Running 0 54s zabbix-agent-kube-state-metrics-698cc89ff5-8mp29 1/1 Running 0 54s zabbix-proxy-d8cb67dfc-88ns9 1/1 Running 0 54s
Kubernetes nodes by HTTPテンプレートによる監視設定¶
zabbix-service-accountのtoken取得¶
kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d
ホストの追加¶
項目 |
設定値 |
備考 |
---|---|---|
ホスト名 |
任意の値 |
|
テンプレート |
Kubernetes nodes by HTTP |
Templates/Applicationsの中から選択します |
グループ |
Templates/Applications |
マクロ |
値 |
備考 |
---|---|---|
{$KUBE.API.TOKEN} |
取得したtokenの値 |
|
{$KUBE.API.URL} |
Kubernetes API serverのURL |
ZABBIX serverがKubernetesクラスター外の場合のみ必要 |
Kubernetes cluster state by HTTP テンプレートによる監視設定¶
zabbix-service-accountのtoken取得¶
kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d
ホストの追加¶
項目 |
設定値 |
備考 |
---|---|---|
ホスト名 |
任意の値 |
|
テンプレート |
Kubernetes cluster state by HTTP |
Templates/Applicationsの中から選択します |
グループ |
Templates/Applications |
マクロ |
値 |
備考 |
---|---|---|
{$KUBE.API.TOKEN} |
取得したtokenの値 |
|
{$KUBE.STATE.ENDPOINT.NAME} |
zabbix-agent-kube-state-metrics |
|
{$KUBE.API.URL} |
Kubernetes API serverのURL |
ZABBIX serverがKubernetesクラスター外の場合のみ必要 |
Exastroシステムのリソース障害発生時の通知設定¶
前提条件¶
トリガーアクションの追加¶
項目 |
設定値 |
備考 |
---|---|---|
名前 |
任意の値 |
|
実行条件 タイプ |
タグの値 |
|
実行条件 タグ |
namespace |
|
実行条件 オペレータ |
等しい |
|
実行条件 値 |
exastro |
Exastroシステムのインストール先のnamespace |
項目 |
設定値 |
備考 |
---|---|---|
実行内容 - ユーザーグループに送信 |
任意のグループ |
ユーザーグループに通知する場合はユーザーグループを選択 |
実行内容 - ユーザーに送信 |
任意のユーザー |
ユーザーに通知する場合はユーザーを選択 |
実行内容 - 次のメディアのみ使用 |
通知を行うメディアを選択 |
5.2.3. ログ監視設定¶
ログ収集先サーバーにZabbixエージェントインストール¶
項目 |
選択値 |
備考 |
---|---|---|
ZABBIXバージョン |
6.4 |
|
OSディストリビューション |
ログ収集先のサーバーで該当するものを選択 |
|
OSバージョン |
ログ収集先のサーバーで該当するものを選択 |
|
ZABBIX COMPONENT |
Agent |
Zabbixエージェントの設定¶
注釈
ホストの追加¶
項目 |
設定値 |
備考 |
---|---|---|
ホスト名 |
ログ収集先サーバーのホスト名を指定 |
|
テンプレート |
Linux by Zabbix agent active |
Templates/Operating systemsの中から選択します |
グループ |
Linux servers |
アイテムの追加¶
Tip
(\
kubectl get deploy -n exastro -o jsonpath='{range .items[*]}{@.metadata.name}{"\n"}'; \
kubectl get sts -n exastro -o jsonpath='{range .items[*]}{@.metadata.name}{"\n"}'; \
kubectl get ds -n exastro -o jsonpath='{range .items[*]}{@.metadata.name}{"\n"}'; \
kubectl get cj -n exastro -o jsonpath='{range .items[*]}{@.metadata.name}{"\n"}'; \
) | sed -e '/^$/d' \
-e '/^ita-web-server/d' \
-e '/^platform-web/d' \
-e 's|^|^exastro-suite\\.exastro\\.|' \
-e 's|$|\\..*\\.log$|'
^exastro-suite\.exastro\.ita-api-admin\..*\.log$
^exastro-suite\.exastro\.ita-api-oase-receiver\..*\.log$
^exastro-suite\.exastro\.ita-api-organization\..*\.log$
^exastro-suite\.exastro\.ita-by-ansible-execute\..*\.log$
項目 |
設定値 |
備考 |
---|---|---|
名前 |
ログファイルの名前 |
例) exastro-suite.exastro.ita-api-admin.log |
タイプ |
Zabbixエージェント(アクティブ) |
|
キー |
logrt |
logrtのパラメータを指定後の設定値の例) logrt[/var/PersistentVolume/ha-conf-k8s/exastro-logs/^exastro-suite.exastro.ita-api-admin..*.log$,"[ []ERROR[ ]]","UTF-8",,skip] |
logrt file_regexp パラメータ |
{ログ集約先のディレクトリ}/{監視対象のログファイル(正規表現)} |
例) /var/PersistentVolume/ha-conf-k8s/exastro-logs/^exastro-suite.exastro.ita-api-admin..*.log$ |
logrt <regexp> パラメータ |
ログファイル毎のログ抽出条件の指定の表参照 |
例1) "[ []ERROR[ \]]" / 例2) "[ [](FATAL|ERROR)[ \]]" |
logrt <encoding> パラメータ |
"UTF-8" |
|
logrt <maxproclines> パラメータ |
指定なし |
|
logrt <mode> パラメータ |
skip |
|
logrt <maxdelay> パラメータ |
指定なし |
|
logrt <options> パラメータ |
指定なし |
|
logrt <persistent_dir> パラメータ |
指定なし |
|
データ型 |
ログ |
|
監視間隔 |
任意の時間 |
問題なければデフォルト値の1mとする |
ヒストリの保存期間 |
任意の期間 |
問題なければデフォルト値の90dとする |
- ログファイル毎のログ抽出条件の指定
監視対象のログファイル
logrt <regexp> パラメータ
備考
exastro-suite.exastro.ita-*
"[ []ERROR[ \]]"
exastro-suite.exastro.platform-*
"[ []ERROR[ \]]"
exastro-suite.exastro.keycloak
"[ [](FATAL|ERROR)[ \]]"
exastro-suite.exastro.mariadb
"[ []ERROR[ \]]"
exastro-suite.exastro.mongodb
"\"s\": \"(E|F)\""
exastro-suite.exastro.gitlab
"[ [](FATAL|ERROR)[ \]]"
トリガーの追加¶
項目 |
設定値 |
備考 |
---|---|---|
名前 |
ログファイルの名前 |
例) exastro-suite.exastro.ita-api-admin.log |
深刻度 |
軽度の障害 |
深刻度は運用に運用に合わせて設定 |
条件式 - アイテム |
作成したアイテムを選択 |
例) exastro-suite.exastro.ita-api-admin.log |
条件式 - 関数 |
find() を選択 |
|
条件式 - 最新の |
指定なし |
|
条件式 - タイムシフト |
指定なし |
|
条件式 - O |
regexp |
|
条件式 - V |
.* |
|
条件式 - 結果 |
= 1 |
|
正常イベントの生成 |
なし |
|
障害イベント生成モード |
複数 |
|
手動クローズを許可 |
チェックON |
Exastroシステムのエラーログ検出時の通知設定¶
前提条件¶
トリガーアクションの追加¶
項目 |
設定値 |
備考 |
---|---|---|
名前 |
任意の値 |
|
計算のタイプ |
Or |
2つ目の実行条件を入力後に表示されます |
実行条件 - タイプ |
トリガー |
※実行条件は作成したトリガー全て追加します |
実行条件 - オペレータ |
等しい |
|
実行条件 - トリガー |
作成したトリガーを選択 |
例) exastro-suite.exastro.ita-api-admin.log |
項目 |
設定値 |
備考 |
---|---|---|
実行内容 - ユーザーグループに送信 |
任意のグループ |
ユーザーグループに通知する場合はユーザーグループを選択 |
実行内容 - ユーザーに送信 |
任意のユーザー |
ユーザーに通知する場合はユーザーを選択 |
実行内容 - 次のメディアのみ使用 |
通知を行うメディアを選択 |