Zabbix Summit 2023から、Kubernetes配下でのインフラモニタリングを解説するセッションを紹介
モニタリングソリューションのZabbixが開催したZabbix Summit 2023から、ドイツテレコムでの経験をベースに仮想マシンではなくKubernetes環境下でのZabbixの導入について解説したセッションを紹介する。
●動画:Intelligent Provisioning of Multiple Zabbix Instances in Kubernetes
セッションを行ったのはカンファレンスのスポンサーとしても名を連ねているドイツのITサービス企業IntelliTrend GmbHのCEOであるWolfgang Alper氏だ。
タイトルは「Zabbix meets cloud-deploy - Intelligent Provisioning of Multiple Zabbix Instances in Kubernetes」でZabbixをKubernetes環境に導入する際の概要を解説するものとなっている。
最初にAlper氏はDockerを使ってZabbixを導入する例を紹介。その後にKubernetesでの導入について解説を行うが、そこではkubectlというコマンドラインツールを使う方法とHelmを使って導入する方法の2種類を紹介した。この辺りから、Zabbixには詳しいがKubernetesには詳しくない参加者のために解説を行う内容となった。
ここでHelmといきなり言われても基礎知識がないと理解できないという想定の元、Helmの簡単な紹介を行い、なるべく横道に逸れないように丁寧に解説を行っていた。
そしてHelmのテンプレートを使ったZabbixのサーバー導入の解説では、PostgreSQLの例を使って解説。ここでは敢えてユーザーネーム、パスワードに平文のテキストを使っている例を示しているが、これは後半でより実際的な例としてパスワードの暗号化を行うツールを紹介する前振りと言ったところだろう。エンジニアであれば「パスワード平文は危ない」ことはわかるはずだ。
結果としてPodの中でZabbixのサーバー、エージェント、プロキシーが動いていることを示した。
ここからはパブリッククラウドのマネージドサービスではなく、オンプレミスで動いているKubernetesにおける運用の勘所を解説する内容となった。
そしてロードバランサーのMetalLBを使った例がこの場合の選択肢であったと語り、MetalLBをHelmで導入するチャートを使って説明した。
この例からもわかるように、Kubernetesに慣れていないデベロッパー、運用担当者がオンプレミスのクラスターにアプリケーションを導入する際に必要な手順をビルディングブロックとして、ここからは順に解説を行った。
ここではkubectlやHelmというツールを知らない運用系エンジニアにFlux、GitOps、SOPS、Cloud Deployなどのツールについて、順を追って解説していく内容となった。
最初のビルディングブロックとしてGitOpsという新しい方法でKubernetesの構成を管理するFluxを紹介。Gitで管理された構成情報に従って、実際に稼働しているクラスターとの差異を解消するように構成を変更するというGitOpsのコンセプトと合わせて解説を行った。
ここでは先に紹介したkubectlやHelmを直接操作しなくてもKubernetesの構成が変更されることを示している。
前提としてデータベースやAPIの利用には必ずユーザークレデンシャルが必要となり、そのために平文でユーザーネーム、パスワードなどをGit上に保存するのは危険であるのは常識だ。GitHubであれば速攻でウォーニングが管理者に飛んでくるのが現代の仕様だ。そのための暗号化のツールとしてAlper氏が紹介した2つ目のビルディングブロックは、Mozillaが開発するオープンソースソフトウェア、SOPS(Secrets OPerationS)だ。
コマンドラインで使うSOPSの概要を紹介しつつ、パブリッククラウドでも利用可能であると紹介した。
そして最後のビルディングブロックとしてCloud Deployを紹介。
ここはCloud Deploy、Ansible、Git、Fluxなどが連携してKubernetesクラスターにZabbixを導入するフローが示されている。そしてビルディングブロックとしてはFlux、SOPSなどを組み合わせることで、Kubernetes上の監視環境が作られるという内容となっている。
また認証やAPIの利用についてはKeycloakを使ってシングルサインオンする例を紹介。Terraformという名前もスライドでは確認できる。またアクセス制御とロールについてのマッピングについても記載されているが、詳しい説明を省いて解説している。
Gitに保存された構成情報にZabbix用のリポジトリが作成され、GitLabのAPIを通じて構成情報がリポジトリに伝搬していくフローを見せて直接、コマンドを叩かなくても構成を変更できることを強調した。
また外部にIPアドレスなどを公開する仕組みとして紹介されたMetalLBやNGINXなどのネットワークスタックも紹介され、「そもそもIPアドレス固定のサービスはどうやってKubernetesで構成するのか?」という問いに対して再度確認するように解説を行った。
次にZabbixのフロントエンドでモニタリングができていること、KubernetesのPodとして実行されていることなどについて例を使って説明した。
Zabbix主体の視点からはマスターサーバーがZabbixのインスタンスからの情報を受けて管理が行えること、そしてすべてのインスタンスがそれぞれダッシュボードを通じて可視化できることなどを説明した。
最後にZabbixのダッシュボードからモニタリングサービスの関係が可視化できることを紹介した。
約30分というセッションの中で、多数の選択肢があるKubernetesモニタリングをZabbix主体にしてなるべく簡略して解説した内容となった。ZabbixのエンジニアにとってもGitOps、Cloud Deployを使えばKubernetesのスタイルに沿った運用監視ができるのではという気にさせられたと言えるだろう。これまで余り語られることのなかったZabbix on Kubernetesについて、Zabbix Summitで語られるようになったことは素直に歓迎したい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CNDT2020シリーズ:オススメのGitOpsツールをCAのインフラエンジニアが解説
- KubeCon+CloudNativeCon NA開催 Kubernetesのクラスター管理を進化させる方法論をKatie Gamanji氏が解説
- 「GitOps」を活用して、アプリケーションを効率的かつ自動的にデプロイする
- Kubernetesアプリケーションの快適リリースとGitOps
- Kubernetesをサービスメッシュ化するIstioとは?
- コマンドラインツールを用いずにCI/CDを行うGitOpsとは?
- CNCFのWebinarからKubernetesのデプロイメントに冪等性を実現するwerfを紹介
- CNDT2020シリーズ:ヤフージャパンのインフラを支えるゼットラボが語るKubernetesストレージの深い話
- KubernetesのパッケージマネージャーHelmとは?
- KubeCon+CloudNativeCon NA 2020 IntuitとMayaDataによるカオスエンジニアリングのセッション