zabix基礎

#用語
* ホスト
    * 監視対象
* アイテム
    * 監視対象の監視項目
* アイテムタイプ
    * アイテムの取得方式の種類
* ヒストリ
    * アイテムの収集間隔ごとに収集される実データ
* トレンド
    * ヒストリデータを1時間ごとに集計し、最大値、最小値、平均値を保存したサマリデータ。ヒストリデータではプロットできない長期グラフを生成する際に使用される。トレンドデータを直接参照することはできない。
* トリガー
    * イベント
* アクション
    * イベント、Agent新規接続、ディスカバリ、内部イベントに起因して動作する処理、通知やコマンド実行、自動登録等が可能
* LLD
    * ローレベルディスカバリ、独自エージェントからの収集データを元に、自動的にホスト・アイテム・トリガー・グラフ・スクリーンを作成、削除する機能
* ディスカバリ
    * 指定されたネットワーク範囲を指定されたプロトコルで走査し、応答の有無、増減を検知する機能　ディスカバリの結果をもとに監視追加、監視停止、監視削除などを実行することができる
    * 検査行為のこと
* テンプレート
    * アイテム、トリガー、グラフ、スクリーン、WEB監視設定、LLD設定をひとまとめにした設定ひな形、ホストに対してリンクさせることにより同一の設定を適用することが可能
* マクロ
    * Zabbixの各種設定やアクションで使用できる置換設定文字列、テンプレート設定や通知設定をマクロにより記述することにより、動作時に対象に合わせた値が代入され動作する
* アプリケーション
    * アイテムをグループ化する単位、最新データ表示の際に、同一アプリケーション毎にグループ化して表示される。
アクションの際に特定のアプリケーションだけを対象とすることも可能

#Zabbixのシステム構成
![スクリーンショット 2021-02-23 0.16.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/63aad469-903a-d355-834a-3a07c3f88fed.png)

ZabbixのWEBFrontend、Database,Serverプロセスは、相互にIP的に接続されます。
このことは、各コンポーネントを別々のサーバインスタンスに分離して構築できることを意味します。
もちろん、単一のサーバインスタンスに構築することも可能です

Zabbix-ServerはZabbix-DBの設定に基づき、各監視対象やZabbix-Proxyに対して値の収集を行います。

JVMを監視する場合には、別途JAVA-Gatewayを設定する必要があります。

ユーザーはWEBフロントエンドを通じて、Zabbixサーバを操作、設定することができます。
WEBフロントエンドはAPIの処理も受け持ちます。コンポーネントを分離して構成した場合は、APIの投げ先に注意してください。

WEBフロントエンドから設定情報をXMLとしてエクスポートすることができます。

障害を検知した場合には、ユーザに対してZabbixサーバからメール・スクリプトにより通知を行う事ができます。

通知先を監視対象機器や、他のシステムにすることにより、システム連携や、トリガー駆動の自動化を行うことができます。

Zabbix-ProxyはZabbix-Serverから監視対象への通信を代理します。
監視通信のオフロードのほか、IP重複や、FW越しの監視の際に利用できます。

外部スクリプトや、ローダブルモジュールによりZabbixの機能を拡張する事が可能です。

#Zabbixの設定構成
![スクリーンショット 2021-02-23 0.51.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/a2cb49e1-957d-9b93-63bd-0ec8abc1a56b.png)

![スクリーンショット 2021-02-23 0.51.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/a2d4b7c6-bb89-2b21-d0ee-0edf1689d5b3.png)

#Zabbixとテンプレート
![スクリーンショット 2021-02-23 0.53.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/86a5fa4a-b2e6-cc72-c18b-fb3ec1dd8451.png)

![スクリーンショット 2021-02-23 0.53.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/fa90b651-5063-2a73-a416-63b4214d5ce6.png)

#アクション概要
![スクリーンショット 2021-02-23 0.55.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/e74290fa-9f13-1bdc-b55d-cfdc98cf1201.png)

アクションでは、通知やコマンドの実行を行う事ができます。
通知動作は即時動作するのでは無く、zabbix_server.conf内のSenderFrequency=の周期毎にチェックが行われます。

#パッシブ通信とアクティブ通信
Zabbixエージェント、パッシブProxyは
ZabbixServer→ZabbixAgent
ZabbixServer→ZabbixProxy
ZabbixProxy→ZabbixAgent の方向で通信を行います。
監視側がアイテム毎に設定された周期毎に接続を行い、値を収集します
受信側の10050番ポートが空いていれば通信が可能です（ステートフルインスペクションのFWの場合、NACLのようなステートレスな通信制御の場合は戻りパケット用のRuleを開けてください。）

Zabbixエージェント（アクティブ）、アクティブProxyは
ZabbixAgent→ZabbixServer
ZabbixProxy→ZabbixServer
ZabbixAgent→ZabbixProxy の方向で通信を行います。
Agent側がRefreshActiveChecks=に設定された周期毎に監視項目一覧を取得しアイテム毎に設定された周期で値を送信します。
受信側の10051番ポートが空いていれば通信が可能です（ステートフルインスペクションのFWの場合、NACLのようなステートレスな通信制御の場合は戻りパケット用のRuleを開けてください。）

#アイテム設定概要
![スクリーンショット 2021-02-23 0.58.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/a61ba756-2686-ec72-17a7-5a3e1efd40ad.png)

#アイテムキー
アイテムタイプによりアイテムキーの意味が変わります。

![スクリーンショット 2021-02-23 0.59.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/dafe63fd-bd94-02f5-907d-6499dd47fcf9.png)

#ホストインターフェイス
アイテムには、特定のインターフェイスが登録されていなければ設定できない物があります。

![スクリーンショット 2021-02-23 1.01.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/a2c76322-352f-b456-411f-c32c4b27c117.png)

#データ型
取得してきたデータをどういったデータ形式で保存するかを指定します。
アイテムタイプやアイテムキーとは連動しません。

![スクリーンショット 2021-02-23 1.14.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/0114adff-ad94-1842-d456-bb6be32a326c.png)

#単位
アイテムに単位文字列を設定すると取得した値に単位を付けて表示することができます。（表示が変わるだけで、DBに格納されるデータは変化しません）
単位にはUnicode文字列が使用できます。単位設定をした場合、SI接頭辞を付けて表示します。

![スクリーンショット 2021-02-23 1.18.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/e4de8625-bc69-a239-fc65-111e329901ad.png)

#乗数
取得値があらかじめKByteなどのSI接頭辞で表されている場合、単位を正確に付与することができません。
そのようなデータ取り扱うために取得したデータに乗数を掛けることができます。
乗数には 1e+7のような指数表記を使用することもできます。

#保存時の計算
収集したデータをDBに格納する際に計算することができます。

![スクリーンショット 2021-02-23 1.19.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321923/d95d153a-b270-c22f-215b-32d5709e66db.png)


#トリガー設定概要
トリガー設定では、収集したアイテムにを利用して閾値や文字列、データの変化を検知する条件式を設定します。
複数のアイテムのデータを組み合わせてトリガーに利用したり、トリガー自体の状態を判定条件にすることもできます。
Zabbix 3.2 からは障害条件だけでなく、障害からの回復条件を定義することが出来るようになりました。
基本的には正常→障害、障害→正常などの状態変化したときのみアラートが発生するように設定されますが、ログ監視のように障害→障害という変化でも通知が必要な場合は[アラートを継続して生成]にチェックを入れます。

#アクション設定概要

アクション設定では、トリガーや自動登録、ディスカバリの結果に応じてエージェントやユーザに対してメッセージやコマンドを渡すことができます。
エスカレーション設定により、障害の発生直後だけでなく、回復するまで継続的に動作を実行することができます。
ZabbixServer内にスクリプトを用意することで、twilioやSlack等のWEBサービスと連携することも可能です。
ユーザに通知する場合は、アクション設定ではユーザを指定するだけです。メールアドレスや通知時間などはユーザ設定側で行います。

https://blog.serverworks.co.jp/tech/2016/12/24/zabbix_start-basic/