外部プロジェクトの連携と設定
ホーム画面 > プロジェクト選択 > ダッシュボード > コンテナマップ
WhaTap Kubernetesエージェント1.7.16バージョン以降が必要です。
WhaTapは、様々なモニタリングサービスをプロジェクト単位で提供します。 外部プロジェクト連携機能を通じてKubernetesプロジェクトのPodと関連した外部プロジェクトを連携できます。
外部プロジェクト連携のためにはKubernetesエージェント設定及び連携対象Pod設定が必要です。 Kubernetesプロジェクトと外部プロジェクトを連携させ、統合的なモニタリングシステムを構築します。
外部プロジェクト連携
外部プロジェクト連携機能を有効にすると、次のように連携されたコンテナ及びPodに当該プロジェクトロゴが表示されます。 これにより、どの外部プロジェクトと連携したのか視覚的に簡単に識別できます。 また、該当するブロックをクリックして、要約表示パネル内のボタンを通じて該当プロジェクトに移動できます。
外部プロジェクト設定
エージェント設定
KubernetesエージェントのインストールYAMLファイルでwhatap-monitoringネームスペースのwhatap-node-agent DaemonSet設定を変更する必要があります。 特に、whatap-node-agentコンテナのenvセクションに次の環境変数を追加する必要があります。
- name: "collect_foreign_project"
value: "true"
例
以下は、環境変数が追加されたYAMLファイルの例です。 実際の運営環境のYAMLファイルと多くの違いがある可能性があるため、例を参考にして必要な部分だけ修正してから使用してください。 ハイライトされたラインが追加された環境変数です。
apiVersion: "apps/v1"
kind: "DaemonSet"
metadata:
labels:
name: "whatap-node-agent"
name: "whatap-node-agent"
namespace: "whatap-monitoring"
spec:
selector:
matchLabels:
name: "whatap-node-agent"
template:
metadata:
labels:
name: "whatap-node-agent"
spec:
containers:
- command:
- "/data/agent/node/cadvisor_helper"
- "-port"
- "6801"
env:
- name: "NODE_NAME"
valueFrom:
fieldRef:
fieldPath: "spec.nodeName"
image: "whatap/kube_mon_dev:foreign-2"
name: "whatap-node-helper"
ports:
- containerPort: 6801
name: "helperport"
resources:
limits:
cpu: "200m"
memory: "350Mi"
requests:
cpu: "100m"
memory: "100Mi"
volumeMounts:
- mountPath: "/rootfs"
name: "rootfs"
readOnly: true
- mountPath: "/sys"
name: "hostsys"
readOnly: true
- mountPath: "/dev/disk"
name: "hostdiskdevice"
readOnly: true
- mountPath: "/run/containerd/containerd.sock"
name: "containerddomainsocket"
- command:
- "/bin/entrypoint.sh"
env:
- name: "NODE_IP"
valueFrom:
fieldRef:
fieldPath: "status.hostIP"
- name: "NODE_NAME"
valueFrom:
fieldRef:
fieldPath: "spec.nodeName"
- name: "WHATAP_LICENSE"
value: "x6050rs80f4eg-x1g0egm9rjb3mg-z7p9533a2ea87e"
- name: "WHATAP_HOST"
value: "13.124.11.223/13.209.172.35"
- name: "WHATAP_PORT"
value: "6600"
- name: "HOST_PREFIX"
value: "/rootfs"
- name: "WHATP_MEM_LIMIT"
valueFrom:
resourceFieldRef:
containerName: "whatap-node-agent"
resource: "limits.memory"
- name: "collect_foreign_project"
value: "true"
image: "whatap/kube_mon_dev:foreign-2"
name: "whatap-node-agent"
ports:
- containerPort: 6600
name: "nodeport"
resources:
limits:
cpu: "200m"
memory: "350Mi"
requests:
cpu: "100m"
memory: "300Mi"
volumeMounts:
- mountPath: "/rootfs"
name: "rootfs"
readOnly: true
- mountPath: "/bin/entrypoint.sh"
name: "start-script-volume"
readOnly: true
subPath: "entrypoint.sh"
- mountPath: "/whatap_conf"
name: "whatap-config-volume"
initContainers:
- command:
- "/data/agent/tools/whatap_debugger"
- "run"
image: "whatap/kube_mon_dev:foreign-2"
name: "whatap-node-debug"
volumeMounts:
- mountPath: "/rootfs"
name: "rootfs"
readOnly: true
serviceAccount: "whatap"
tolerations:
- effect: "NoSchedule"
key: "node-role.kubernetes.io/master"
- effect: "NoSchedule"
key: "node-role.kubernetes.io/control-plane"
volumes:
- hostPath:
path: "/"
name: "rootfs"
- hostPath:
path: "/sys"
name: "hostsys"
- hostPath:
path: "/dev/disk"
name: "hostdiskdevice"
- configMap:
defaultMode: 448
name: "node-start-script"
name: "start-script-volume"
- emptyDir: {}
name: "whatap-config-volume"
- hostPath:
path: "/run/containerd/containerd.sock"
name: "containerddomainsocket"
連携対象Podの設定
連携しようとするPodの設定を修正します。 例えば、Redis Podを連携させる場合、Redisコンテナのenvセクションに次の環境変数を追加する必要があります。
- name: "license"
value: "here_is_whatap_license"
- name: "whatap_platform"
value: "redis"
-
here_is_whatap_license
:外部プロジェクトのライセンス情報を入力します。 -
whatap_platform
:連携しようとしている外部プロジェクトのプラットフォームを入力します。
現在、外部プロジェクトの連動に対応しているプラットフォームは次のとおりです。 プラットフォーム入力時、大文字と小文字を区別せずに入力できます。
Redis、Java、Node.js、Python、PHP
例
以下は、Redis Pod設定に環境変数を追加したYAMLファイルの例です。 ハイライトされたラインが追加された環境変数です。
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis-cluster
namespace: backend
spec:
serviceName: redis-cluster-svc
replicas: 6
selector:
matchLabels:
app: redis-cluster
template:
metadata:
labels:
app: redis-cluster
spec:
containers:
- name: redis
image: redis:5.0.1-alpine
ports:
- containerPort: 6379
name: client
- containerPort: 16379
name: gossip
command: ["/conf/update-node.sh", "redis-server", "/conf/redis.conf"]
env:
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: license
value: x6050s081i709-z2lhh7gpi3bdr4-x7jovr61kumi5k
- name: whatap_platform
value: redis
volumeMounts:
- name: conf
mountPath: /conf
readOnly: false
- name: data
mountPath: /data
readOnly: false
外部プロジェクトの連携確認
分析 > メトリクス照会
外部プロジェクトの連携設定後、メトリクス照会メニューに移動します。 例の画像のようにカテゴリ選択ボタンをクリックします。
次のカテゴリが表示されたら、連携が正常に適用された状態です。
container_foreign_project_mapping