OSC 2019 TOKYO/FALL 2019年11月23日日本ZABBIXユーザー会田中敦名前:田中敦(たなかあつし)所属: 日本Zabbixユーザー会副代表主な活動: 。コミュニティサイト(http://www.zabbix.jp/)でのQ&A対応॰ ZabbixのWebインターフェースの日本語翻訳。雑誌やWebサイトにZabbixに関する寄稿2直近公式イベントの情報Zabbix 4.4の紹介。主な新機能一覧。新機能ピックアップ今後のZabbix Zabbixとは
ヨーロッパのラトビアという国で開発されたオープンソースの統合監視ソフトウェア。専用のエージェントを使用してサーバーの各種メトリクス情報を収集して監視することが可能。専用のエージェントを使用しなくてもSNMPやIPMIなどのプロトコルを使用しての監視も可能。対応しているプラットフォームは、LinuxなどのUNIX系OS、Windowsなどに対応している(監視の設定や監視データを収集するZabbixサーバーは、Windows不可)。 S
監視の設定や状態の把握は、Webブラウザを使用して行うことができる。監視のために取得した値(数値)を簡単にグラフ化して表示できるので、値の変化を把握しやすい。取得した数値や文字列(アイテム)の値に対して、閾値やパターンマッチングなどの条件式を設定(トリガー)して、障害かどうかを判定することができる。障害を検知した場合、メールなどを使用した障害通知を行ったり、スクリプトなどを実行(アクション)することもできる。直近公式イベント情報
日付: 2019年10月11日～12日場所:ラディソンブルホテル(ラトビアリガ)参加者規模:約500人、45以上の国や地域、60人以上の社員イベント情報及び発表資料: https://www.zabbix.com/jp/events/zabbix_summit_2019 https://www.zabbix.com/jp/events/zabbix_summit_2019_agenda Zabbix社があるラトビアのリガという都市で毎年開催されている、世界規模のZabbixイベント。 Zabbixの最新情報や導入事例などが紹介された。教育コース開催やハンズオンなども実施された。 20
※ Gooogle Mapより
日付: 2019年11月15日場所:品川フロントビル会議室(日本東京都)参加者規模約330人イベント情報: https://www.zabbix.com/jp/events/conference_japan_2019 https://www.zabbix.com/jp/events/conference_japan_2019_agenda日本国内で毎年開催されているイベント。今年は、Zabbix 4.4の新機能の紹介や他のツールを連携させた導入事例、よくある問い合わせとチューニング方法などが紹介された。
10

大量の障害発生時の対応策として、メッセージを集約できるツールを挟んで対応する方法が考えられる。メール送信集約に応用可能なツール例: 。PagerDuty 。ShowNetでも実績あり。 。AlertManager 。 Prometheus全体を使わずに、AlertManagerのみを使うという方法もある。
※詳細はおググりください。
Zabbix 4.4
Zabbix 4.4の主な新機能を列挙する
▷ Kerberos認証対応▷障害に対する値の表示

13
Zabbix 4.4新機能ピックアップ
これまでのZabbixエージェントにあった課題を解決すべく新規に開発された。特徴徴別名:  Zabbix Agent Go Edition 。Go言語で記述されている。プラグイン形式で機能の拡張が可能。プラグイン単位でタイムアウト時間の設定が可能
リリース状況
。 Zabbix 4.4で実験的な実装がされリリースされた。現時点では、UNIX系OSのみ対応。パッケージもリリースされているプラットフォームは限定的。 Zabbix 5.0で正式リリースされWindows版もリリースされる予定
これまでのZabbixエージェントでは、以下のような拡張方法があった。拡張方法： 。 UserParameterの使用。system.run[]の使用。動的モジュールの作成(C言語、LoadModule)課題： 。UserParameterを使用する場合はプロセスをfork()して実行するので処理速度が遅い。セキュリティ的に問題が発生する可能性がある。C言語をマスターするにはハードルが高い
16

EnableRemoteCommandsを設定すると何でもできるのだが、何でもできてしまうことに注意。 With great power comes great responsibility大いなる力には大いなる責任が伴う(映画:スパイダーマンより)例えば？ Server=0.0.0.0/0 EnableRemoteCommands=1 LogRemoteCommands=0 User=root AllowRoot=1 shell> iptables -F shell> systemctl stop firewalld shell> setenforce 0
17

より高速に処理することができるのだが、C言語の知識が必要。 main { printf("How to C learn, young padawan!")若者よ、いかにしてc言語を学ぶのじゃZabbixエージェント2の更なる改善点他にも以下のような改善が考慮されている。 。1つの実行ファイルで配備可能° 3rdパーティのツールからのトラップ受信。アクティブチェックの監視間隔力スタマイズ。アクティブチェック用サーバーごとにプロセス起動(並列処理化)注:プラグインを追加変更したらコンパイルしなおしが必要
19

例えば、RHEL 7(CentOS 7)用のパッケージははリリースされていないので、使用する場合は、自分でソースからビルドすることが必要。 4.4の時点では、C言語のライブラリも多用しているため、Go言語だけではなくC言語の開発用ツールやライブラリも必要。 $$ export GOROOT=$HOME/go $ export PATH=$PATH:$GOROOT/bin $$ export GOPATH= $ tar zxvf zabbix-4.4.1.tar.gz $ cd zabbix-4.4.1/ $$ ./configure --enable-agent2 $ make
Zabbixエージェント2にプラグインを追加するためのフレームワーク。Exporter 。ポーリングして値を取得する。単一だけではなく複数の値の返却も可。Watcher 。特定のポート番号で呼び出しを受け付ける。トラップを受け付けるような処理に使用° Collecter 。定期的にデータを収集。例えばCPUなどのメトリクスを取得する。Runner 。インターフェースを使用してルーチンの開始と停止を行う
21

go/ L src/ └ zabbix/ - cmd/ - conf/ - internal/ nkg/
system/ systemd/ systemrun/ - vfs/ └ zabbix/ package plugins
_ "zabbix/plugins/zabbix/sync"ソースのディレクトリ構成:

22

これまでのバージョンのZabbixでは、障害発生時にEmailでの通知やスクリプトの実行が可能であった。これにWebhookの呼び出しの機能が追加されて、より多くの方法による通知や他のツールとの連携がしやすくなった。
23

Messaging 24
単純に呼び出すだけではなく、呼び出して受け取ったレスポンスを処理して障害と情報を連携させることができる。 JIRAなどとの連携例が、マニュアルに実装例として掲載されている。例: JIRAと連携してチケットを登録後にZabbixからJIRAを参照するURLを生成。 https://www.zabbix.com/documentation/4.4/manual/config/notifications/medi a/webhook https://www.zabbix.com/documentation/4.4/manual/web_interface/frontend sections/monitoring/problems#event menu
* Name ServiceDesk Webhookを選択URLを設定TicketBody Add *. Script req.AddHeader ( 'Content-Type: application/json' ); Timeout 30s Process tags Include event menu entry > * Menu entry name Servicedesk issue {EVENT.TAGS.Ticket} * Menu entry URL https://sd.example.com/browse/{EVENT.TAGS.Ticket} JavaScriptで呼び出しと応答処理を記述処理結果をタグとして処理するタグを使用して障害に対するリンクを生成26
これまでのZabbixでは、テンプレートの設定をエクスポートしてXML化しても、フラグがが数値になっていたりして、テンプレートの内容を把握してカスタマイズすることが困難であつた。 XMLフォーマットを見直し、gitなどのバージョン管理システムでの差分管理を行うことも容易となるようにした。 Linux、Windows、Cisco UCS server、Nginx、Apache、RabbitMQ、MySQL/MariaDB、 PostgreSQLなどのテンプレートの見直しや新規追加が行われた。(一部のテンプレートは不具合が確認されているので注意)ガイドライン： https://www.zabbix.com/documentation/guidelines
Zabbixでは、ZabbixサーバーとZabbixエージェントやZabbixプロキシとの間の通信暗号化の機能が用意されている。しかし、4.4よりも前のバージョンでは、自動登録時には暗号化なしの選択肢しかなかった。 Zabbix 4.4では、自動登録の機能を使用する際に、事前にPSKを設定しておいて、自動登録時から通信の暗号化に対応させることができるようになった。 ※ PSK : Pre-Shared Keyの略。事前に鍵情報を共有しておく方式。
ZABBIX 監視データインベントリエレポート設定管理のサポート　 of d ー般設定　プロキシ　認証　ユーザーグループ　ユーザー　メディアタイプ　スクリプト　キュー Zabbix 4:4 Work:自動登録自動登録>暗号化レベル   暗号なし＼ PSK * PSKアイデンティティpsk001 s PSK 14d97461a7c1045b91c963065002c5473194952 923f
29

現在、Zabbix 3.0、4.0、4.4のRHEL 8(CentOS 8)用のパッケージがリリースされている。 PHP-FPMに対応し、Webサーバーとしては、Apache HTTP Server(httpd)とnginxのどちらかを選択できる。
RHEL 8(CentOS 8)では、Webサーバーの選択が可能であるため、使用するWebサーバーに合わせて設定ファイルのパッケージをインストールする。 ° Apache HTTP Server(httpd)用: zabbix-apache-conf ° nginx用： zabbix-nginx-conf Zabbixエージェント2のパッケージはRHEL 7(CentOS 7)用には用意されていない。 (CentOS 7上でビルドは可)
31

# dnf update # reboot # firewall-cmd --add-port=10051/tcp --zone=public --permanent # firewall-cmd --add-service=http --zone=public --permanent # firewall-cmd --reload # dnf install http://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm # dnf install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-apache-conf zabbix-agent # dnf install mysql-server # systemctl start mysqld # mysql_secure_installation # vi /etc/my.cnf.d/mysql-server.cnf # systemctl restart mysqld # systemctl enable mysqld # mysql -uroot -p mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user 'zabbix'@'localhost' identified with mysql_native_password by 'password'; mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost'; mysql> exit # zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix # vi /etc/zabbix/zabbix  server.conf # vi /etc/php-fpm.d/zabbix.conf ※ SELinux関連の手順は別途必要# systemctl start zabbix-agent zabbix-server php-fpm httpd # systemctl enable zabbix-agent zabbix-server php-fpm httpd
32

Zabbix 4.0: Zabbix 4.4 :
保存前処理でJavaScript記述可能: ° JacaScriptでロジックを書けるのでより複雑な値の加工が可能保存前処理のJSON Path対応改善(4.0.11、4.2.5、4.4.0) : ° 4.0初期のJSON Pathの実装は限定的であったが、4.0.11、4.2.5、4.4.0でより多くの記述方式に対応Prometheus対応: ° Prometheusのexporterの出力を受け取って、LLDなども組み合わせて監視することが可能(4.4には「Template OS Linux by Prom」というテンプレートあり)
実装予定機能。ユーザビリティの向上。メインメニューを左側に。独自拡張UIモジュールを組みこみ可に。クラウドやKubernetesの監視。ベースラインでの監視。セキュリティ機能の強化。可視化機能の強化。パフォーマンスの改善。Zabbixエージェント2のWindows対応ロードマップ近日公開予定(https://www.zabbix.com/roadmap#v5_0) 2020年3月にリリース予定
36

これまでは、Zabbixのソースを変更するのはZabbix社の社員に限定されていた。コードコントリビューターとして契約を行うことで、コードコントリビュータから提供された各種プラグインや各種メディア用のソースを、Zabbixのソースに取り込むことができるようにする予定。各種ガイドラインの整備と合わせて、取り込んだソースに関しては、継続してZabbixの機能として使用できるようになる予定。 Zabbix 4.4がリリースされ、さらに機能拡張が行われて特に他のシステムとの連携が強化されている。ただし、4.4はLTSではないため、長期間サポートされないことに注意。 Zabbix 5.0 LTSによって、さらに標準の機能で監視できる対象の増加や設定の自動化が期待できる。コードコントリビューターとして契約することで、Zabbixの機能追加や拡張に参加することができるようになることに期待。
ご清聴いただき
ありがとうございました。
本資料内で利用させて頂いた各プロダクト名やサービス名などは、各
社もしくは各団体の商標または登録商標です。