連載 [第2回] :
  Zabbix Summit 2023レポート

Zabbix Summit 2023から、Kubernetes配下でのインフラモニタリングを解説するセッションを紹介

2023年12月19日(火)
松下 康之 - Yasuyuki Matsushita
Zabbix Summit 2023から、Kubernetes配下でのインフラモニタリングを解説するセッションを紹介する。

モニタリングソリューションのZabbixが開催したZabbix Summit 2023から、ドイツテレコムでの経験をベースに仮想マシンではなくKubernetes環境下でのZabbixの導入について解説したセッションを紹介する。

●動画:Intelligent Provisioning of Multiple Zabbix Instances in Kubernetes

セッションを行ったのはカンファレンスのスポンサーとしても名を連ねているドイツのITサービス企業IntelliTrend GmbHのCEOであるWolfgang Alper氏だ。

セッションを行うAlper氏

セッションを行うAlper氏

タイトルは「Zabbix meets cloud-deploy - Intelligent Provisioning of Multiple Zabbix Instances in Kubernetes」でZabbixをKubernetes環境に導入する際の概要を解説するものとなっている。

最初にAlper氏はDockerを使ってZabbixを導入する例を紹介。その後にKubernetesでの導入について解説を行うが、そこではkubectlというコマンドラインツールを使う方法とHelmを使って導入する方法の2種類を紹介した。この辺りから、Zabbixには詳しいがKubernetesには詳しくない参加者のために解説を行う内容となった。

kubectlとHelmを使ってZabbixをデプロイする方法を紹介

kubectlとHelmを使ってZabbixをデプロイする方法を紹介

ここでHelmといきなり言われても基礎知識がないと理解できないという想定の元、Helmの簡単な紹介を行い、なるべく横道に逸れないように丁寧に解説を行っていた。

Helmの紹介。Zabbix公式のHelmとコミュニティによるHelmチャートがある

Helmの紹介。Zabbix公式のHelmとコミュニティによるHelmチャートがある

そしてHelmのテンプレートを使ったZabbixのサーバー導入の解説では、PostgreSQLの例を使って解説。ここでは敢えてユーザーネーム、パスワードに平文のテキストを使っている例を示しているが、これは後半でより実際的な例としてパスワードの暗号化を行うツールを紹介する前振りと言ったところだろう。エンジニアであれば「パスワード平文は危ない」ことはわかるはずだ。

Helmを使って導入する例を紹介

Helmを使って導入する例を紹介

結果としてPodの中でZabbixのサーバー、エージェント、プロキシーが動いていることを示した。

Podの中でZabbixのサーバー、エージェント、プロキシーが動いていることを確認

Podの中でZabbixのサーバー、エージェント、プロキシーが動いていることを確認

ここからはパブリッククラウドのマネージドサービスではなく、オンプレミスで動いているKubernetesにおける運用の勘所を解説する内容となった。

Kubernetesにおいてサービスを外部に公開する際のポイントを解説

Kubernetesにおいてサービスを外部に公開する際のポイントを解説

そしてロードバランサーのMetalLBを使った例がこの場合の選択肢であったと語り、MetalLBをHelmで導入するチャートを使って説明した。

この例からもわかるように、Kubernetesに慣れていないデベロッパー、運用担当者がオンプレミスのクラスターにアプリケーションを導入する際に必要な手順をビルディングブロックとして、ここからは順に解説を行った。

ビルディングブロックをひとつずつ解説することでKubernetesでの実装を説明

ビルディングブロックをひとつずつ解説することでKubernetesでの実装を説明

ここではkubectlやHelmというツールを知らない運用系エンジニアにFlux、GitOps、SOPS、Cloud Deployなどのツールについて、順を追って解説していく内容となった。

GitOpsの観点から構成ファイルを一元管理しつつKubernetesの管理を行うFluxを解説

GitOpsの観点から構成ファイルを一元管理しつつKubernetesの管理を行うFluxを解説

最初のビルディングブロックとしてGitOpsという新しい方法でKubernetesの構成を管理するFluxを紹介。Gitで管理された構成情報に従って、実際に稼働しているクラスターとの差異を解消するように構成を変更するというGitOpsのコンセプトと合わせて解説を行った。

FluxとGitを組み合わせてKubernetes上にZabbixを導入するフローを紹介

FluxとGitを組み合わせてKubernetes上にZabbixを導入するフローを紹介

ここでは先に紹介したkubectlやHelmを直接操作しなくてもKubernetesの構成が変更されることを示している。

平文のユーザーネーム、パスワードを使う問題点を整理

平文のユーザーネーム、パスワードを使う問題点を整理

前提としてデータベースやAPIの利用には必ずユーザークレデンシャルが必要となり、そのために平文でユーザーネーム、パスワードなどをGit上に保存するのは危険であるのは常識だ。GitHubであれば速攻でウォーニングが管理者に飛んでくるのが現代の仕様だ。そのための暗号化のツールとしてAlper氏が紹介した2つ目のビルディングブロックは、Mozillaが開発するオープンソースソフトウェア、SOPS(Secrets OPerationS)だ。

Mozilla SOPSの概要を紹介

Mozilla SOPSの概要を紹介

コマンドラインで使うSOPSの概要を紹介しつつ、パブリッククラウドでも利用可能であると紹介した。

暗号化のサンプルを紹介。平文のクレデンシャルが暗号化されている

暗号化のサンプルを紹介。平文のクレデンシャルが暗号化されている

そして最後のビルディングブロックとしてCloud Deployを紹介。

ChatGPTに「Cloud Deployとは何か?」と質問して得られた回答を紹介

ChatGPTに「Cloud Deployとは何か?」と質問して得られた回答を紹介

ここはCloud Deploy、Ansible、Git、Fluxなどが連携してKubernetesクラスターにZabbixを導入するフローが示されている。そしてビルディングブロックとしてはFlux、SOPSなどを組み合わせることで、Kubernetes上の監視環境が作られるという内容となっている。

Flux、Git、Ansibleなどを使ってZabbixを導入する構成図

Flux、Git、Ansibleなどを使ってZabbixを導入する構成図

また認証やAPIの利用についてはKeycloakを使ってシングルサインオンする例を紹介。Terraformという名前もスライドでは確認できる。またアクセス制御とロールについてのマッピングについても記載されているが、詳しい説明を省いて解説している。

認証についてはKeycloakを使ってシングルサインオンする構成を紹介

認証についてはKeycloakを使ってシングルサインオンする構成を紹介

Gitに保存された構成情報にZabbix用のリポジトリが作成され、GitLabのAPIを通じて構成情報がリポジトリに伝搬していくフローを見せて直接、コマンドを叩かなくても構成を変更できることを強調した。

Gitのフローを利用してZabbixの構成変更を実施

Gitのフローを利用してZabbixの構成変更を実施

また外部にIPアドレスなどを公開する仕組みとして紹介されたMetalLBやNGINXなどのネットワークスタックも紹介され、「そもそもIPアドレス固定のサービスはどうやってKubernetesで構成するのか?」という問いに対して再度確認するように解説を行った。

Zabbixに必要なフロントエンド、サーバー、エージェント、Proxyなどの構成を解説

Zabbixに必要なフロントエンド、サーバー、エージェント、Proxyなどの構成を解説

次にZabbixのフロントエンドでモニタリングができていること、KubernetesのPodとして実行されていることなどについて例を使って説明した。

導入が終わった構成を確認

導入が終わった構成を確認

Zabbix主体の視点からはマスターサーバーがZabbixのインスタンスからの情報を受けて管理が行えること、そしてすべてのインスタンスがそれぞれダッシュボードを通じて可視化できることなどを説明した。

Zabbixのインスタンスはマスターサーバーを通じて可視化可能

Zabbixのインスタンスはマスターサーバーを通じて可視化可能

最後にZabbixのダッシュボードからモニタリングサービスの関係が可視化できることを紹介した。

約30分というセッションの中で、多数の選択肢があるKubernetesモニタリングをZabbix主体にしてなるべく簡略して解説した内容となった。ZabbixのエンジニアにとってもGitOps、Cloud Deployを使えばKubernetesのスタイルに沿った運用監視ができるのではという気にさせられたと言えるだろう。これまで余り語られることのなかったZabbix on Kubernetesについて、Zabbix Summitで語られるようになったことは素直に歓迎したい。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

働き方インタビュー
第4回

Zabbix Summit番外編:Zabbixで働く女性エンジニアにインタビュー

2023/12/27
Zabbix Summit 2023の番外編としてZabbixで働く女性エンジニアにインタビューを行った。
運用・管理インタビュー
第3回

Zabbix Summit 2023に日本から参加したスピーカーにインタビュー

2023/12/21
Zabbix Summit 2023にスピーカーとして参加したトヨタ、NTTコム エンジニアリングのエンジニアにインタビューを行った。
運用・管理イベント
第2回

Zabbix Summit 2023から、Kubernetes配下でのインフラモニタリングを解説するセッションを紹介

2023/12/19
Zabbix Summit 2023から、Kubernetes配下でのインフラモニタリングを解説するセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています