Moduleに関するセッションを紹介する。ZabbixはバックエンドをCで、フロントエンドをPHPとJavaScriptで開発している。今風に言えばレガシーなシステムではあるが、レガシーな仮想マシンベースのシステムからKubernetes、IoTデバイスまでカバーするオープンソースのモニタリングシステムだ。Zabbix自体はオープンソースとして公開されており、さまざまなプラットフォームで稼働しているが、ソースコードは公開されているもののソースの変更や追加などはすべてZabbixの社員が行うという通常のオープンソースとしては異なる方式を採用している。そのため自社のニーズに合わせて新しいモジュールを利用するためには、Zabbixにリクエストを送ってそれが採用されるのを待つ必要がある。ModuleはZabbixのユーザーインターフェースを拡張する仕組みであり、いわゆるオープンソース的なユーザーサイドでの開発が可能になるメカニズムである。module」と題されセッションの内容を紹介する。Hermanek氏だ。InitmaxはチェコのITベンダーである。Moduleとは何か?」について、Hermanek氏のプレゼンテーションから紹介したい。このセッションではZabbixのユーザーインターフェースであるWebページにWidgetとして提供されるコードを使ってカスタマイズすることを解説している。既存のWidgetを変更することでコンテキストに沿ったメニューを表示したり、イベントのフィルターを追加したりすることが具体的な用法として挙げられている。5.0で登場した機能であること、導入が容易であること、Zabbixのフロントエンドのコードを変更する必要がないこと、PHPとJavaScriptで書くことができることなどを挙げた。Moduleについて挙げたのが次のスライドだ。これはHermanek氏の背景に映っているスライドを引用している。その上で例を挙げて説明を行った。例として挙げたのはWidgetのスペースを狭くする使い方この例ではパッと見て違いがわかりにくいかもしれないが、2つのアナログ時計の間の灰色のスペースが僅かだが少なくなっている。Widgetの見せ方を変更する例この例ではイベントとして上がっていた問題点の見せ方を変更する拡張を説明している。ここではリスト表示されている行の右端に新しい項目が追加されている。同時に右クリックでコンテキストメニューを表示することやリストの並べ方を変更することなども可能になったと解説した。Moduleにはまだ制限もあることを紹介。ここではModuleを記述するファイル(CWidgetConfig.php)がひとつだけという制限があることで開発の効率が悪くなることを説明して、注意を促した。この制限もバージョン6.4で解決される予定であるという。Moduleの今後の予定。6.4で大幅に変更されるこのスライドではバージョン6.4でWidget専用のフレームワークが採用され、前述の1ファイルという制限がなくなり、さらにCSSファイルやJavaScriptのソースファイルなどの扱いもシンプルになるという。これはZBXNEXT-7469というリクエストが解決され、すでに開発が進んでいることが分かる。サンプルのコードは以下のInitmaxのサイトで確認することが可能だ。Modules」と題されたセッションだ。Moduleと同じ意味ととっても良いだろう。ここではMVC(Model、View、Controller)モデルに当てはめて解説を行っている。スライドの下部に書かれているようにZabbixがMVCを実装するために他のフレームワークを使っているわけではないことに注意したい。メインメニューを拡張する部分を解説するスライドこのスライドではWebユーザーインターフェースのメニューに新しいアイテムを追加する流れを解説しているが、PHPのソースコードとJSONファイルにそれぞれの要素を対応させて説明しており、Zabbixそのものを知らないエンジニアでも理解が進むように配慮している。メニューやURLから遷移するアクションやコントローラーの動き方などを詳しく解説、ビューをどこで定義するべきか、メソッドの動き方などについてもコメントした後で、簡単なサンプルとして紹介したのが、zabbix-module-peaceというコードだ。Moduleを使ってZabbixのファビコンを変更するだけのサンプルを紹介これはWebブラウザーのURLバーの中で使われる小さなアイコン(ファビコン)を変更するというだけのものだが、注目して欲しいのはZabbixのファビコン「Z」の代わりに小さな黄色と青色の旗、つまりウクライナの国旗が表示されていることだ。Yurchenko氏自身はこのサンプルを開発した意図については何も語らなかったが、会場にいた全員がその意味を理解したように思う。「peace」という名称が示すようにウクライナを侵略しているロシアがZを戦車などにペイントして象徴として使っており、ZabbixのファビコンがZであることに注目して敢えて政治的なメッセージを提起したということになる。このサンプルはコントローラーもビューも使っていないということでMVCの例としては最良とは言えないが、敢えてこのタイムで解説したことに意味がある。このモジュールは以下のURLから参照できる。Module:https://github.com/BGmot/zabbix-module-peace2つのセッションは短時間に駆け足とも言うべき調子でWebインターフェースを拡張する方法について解説するものだったが、最新バージョンで大きく変わる予定であることを考えるといわばレガシーな部分にフォーカスした内容となった。これからWebインターフェースの拡張や改造を検討するなら6.4以降を待った方が良いだろう。公式マニュアルは以下を参照されたい。この著者の記事一覧フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。Vladishev氏にインタビューを実施。2022から、Kubernetes対応を解説するセッションを紹介。Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。ITがお届けするポッドキャストです。