Zabbix監視テンプレート（Scality 6 RING）

Zabbix監視テンプレート（Scality 6 RING）を作成しました。
Zabbix 3.0、Scality RING 6.4.5.4（Mithrandir）で検証しています。

# 前提条件
- /etc/logrotate.dの設定がrestartではなく、reloadを使用している事。
- Zabbixエージェントの設定ファイルにパラメータ"Include=/etc/zabbix/zabbix_agentd.d/"を設定している事。

# Scality 6 RING

## テンプレート
- Template App Scality 6 RING Nodes Service（テンプレートとのリンク: なし）

## アプリケーション
- Scality 6 RING Nodes service

## アイテム
| # | アイテム名 | トリガー | キー | データ型 | 単位 | 乗数の使用 | 更新間隔（秒） | ヒストリ | トレンド | タイプ | アプリケーション | 内容 | 備考 |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| 1 | httpd service is running | 1 | net.tcp.listen[81] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | TCP81ポート（httpd）のステータス取得 | TCP81ポート（httpd）を使用しない場合は不要
| 2 | sagentd service is running | 1 | net.tcp.listen[7084] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | TCP7084ポート（sagentd）のステータス取得 | TCP7084ポート（sagentd）を使用しない場合は不要
| 3 | srebuildd service is running | 1 | net.tcp.listen[10002] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | TCP10002ポート（srebuildd）のステータス取得 | TCP10002ポート（srebuildd）を使用しない場合は不要
| 4 | elasticsearch/cluster service is running | 1 | net.tcp.listen[9200] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | TCP9200ポート（elasticsearch/cluster）のステータス取得 | TCP9200ポート（elasticsearch/cluster）を使用しない場合は不要
| 5 | elasticsearch/instances service is running | 1 | net.tcp.listen[9300] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | TCP9300ポート（elasticsearch/instances）のステータス取得 | TCP9300ポート（elasticsearch/instances）を使用しない場合は不要
| 6 | Number of running httpd processes | 1 | proc.num[httpd,root,,"-DFOREGROUND"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | httpdプロセスの個数取得 | 
| 7 | Number of running biziod processes | 1 | proc.num[,root,,"biziod"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | biziodプロセスの個数取得 | 
| 8 | Number of running salt-minion processes | 1 | proc.num[,root,,"salt-minion"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | salt-minionプロセスの個数取得 | 
| 9 | Number of running sagentd processes | 1 | proc.num[,root,,"/usr/bin/sagentd"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | sagentdプロセスの個数取得 | 
| 10 | Number of running sagentd/core processes | 1 | proc.num[,root,,"sagentd/core"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | sagentd/coreプロセスの個数取得 | 
| 11 | Number of running sagentd/heartbeat processes | 1 | proc.num[,root,,"sagentd/heartbeat"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | sagentd/heartbeatプロセスの個数取得 | 
| 12 | Number of running sagentd/poll processes | 1 | proc.num[,root,,"sagentd/poll"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | sagentd/pollプロセスの個数取得 | 
| 13 | Number of running sagentd/scheduler processes | 1 | proc.num[,root,,"sagentd/scheduler"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | sagentd/schedulerプロセスの個数取得 | 
| 14 | Number of running sagentd/webclient processes | 1 | proc.num[,root,,"sagentd/webclient"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | sagentd/webclientプロセスの個数取得 | 
| 15 | Number of running sagentd/webserver processes | 1 | proc.num[,root,,"sagentd/webserver"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | sagentd/webserverプロセスの個数取得 | 
| 16 | Number of running srebuildd processes | 1 | proc.num[,root,,"srebuildd"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | srebuilddプロセスの個数取得 | 
| 17 | Number of running bizstorenode processes | 1 | proc.num[,root,,"bizstorenode"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | bizstorenodeプロセスの個数取得 | 
| 18 | Number of running elasticsearch processes | 1 | proc.num[java,elasticsearch,,"elasticsearch"] | 数値 | - | - | 30 | 90 | 365 | Zabbixエージェント | Scality 6 RING Nodes service | bizstorenodeプロセスの個数取得 | 
- ヒストリとは各収集値の保持期間
- トレンドとは数値データタイプの1時間あたりの最低値、最高値、平均値および合計値の保持期間
- Zabbixにリトライ回数、リトライ間隔、タイムアウト時間は存在しない

## トリガー
| # | 深刻度 | トリガー | 条件式 | 種別 | 内容 | 備考 |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:| 
| 1 | 軽度の障害 | httpd service is down on {HOST.NAME} | net.tcp.listen[81].max(#3)=0 | ポート | 直近3回のTCP81ポート（httpd）のステータス取得時の戻り値（最大値）が0（Close）だった場合 | TCP81ポート（httpd）を使用しない場合は不要
| 2 | 軽度の障害 | sagentd service is down on {HOST.NAME} | net.tcp.listen[7084].max(#3)=0 | ポート | 直近3回のTCP7084ポート（sagentd）のステータス取得時の戻り値（最大値）が0（Close）だった場合 | TCP7084ポート（sagentd）を使用しない場合は不要
| 3 | 軽度の障害 | srebuildd service is down on {HOST.NAME} | net.tcp.listen[10002].max(#3)=0 | ポート | 直近3回のTCP10002ポート（srebuildd）のステータス取得時の戻り値（最大値）が0（Close）だった場合 | TCP10002ポート（srebuildd）を使用しない場合は不要
| 4 | 軽度の障害 | elasticsearch/cluster service is down on {HOST.NAME} | net.tcp.listen[9200].max(#3)=0 | ポート | 直近3回のTCP9200ポート（elasticsearch/cluster）のステータス取得時の戻り値（最大値）が0（Close）だった場合 | TCP9200ポート（elasticsearch/cluster）を使用しない場合は不要
| 5 | 軽度の障害 | elasticsearch/instances service is down on {HOST.NAME} | net.tcp.listen[9300].max(#3)=0 | ポート | 直近3回のTCP9300ポート（elasticsearch/instances）のステータス取得時の戻り値（最大値）が0（Close）だった場合 | TCP9300ポート（elasticsearch/instances）を使用しない場合は不要
| 6 | 重度の障害 | httpd process is not running on {HOST.NAME} | proc.num[httpd,root,,"-DFOREGROUND"].last(0)<1 | プロセス | 稼働中のhttpdプロセスの最新個数が1未満だった場合 | 
| 7 | 重度の障害 | biziod process is not running on {HOST.NAME} | proc.num[,root,,"biziod"].last(0)<***ディスクの総数 × 2*** | プロセス | 稼働中のbiziodプロセスの最新個数が***ディスクの総数 × 2***未満だった場合 | サーバーが管理するディスクの総数の2倍
| 8 | 重度の障害 | salt-minion process is not running on {HOST.NAME} | proc.num[,root,,"salt-minion"].last(0)<3 | プロセス | 稼働中のsalt-minionプロセスの最新個数が3未満だった場合 | 
| 9 | 重度の障害 | sagentd process is not running on {HOST.NAME} | proc.num[,root,,"/usr/bin/sagentd"].last(0)<1 | プロセス | 稼働中のsagentdプロセスの最新個数が1未満だった場合 | 
| 10 | 重度の障害 | sagentd/core process is not running on {HOST.NAME} | proc.num[,root,,"sagentd/core"].last(0)<1 | プロセス | 稼働中のsagentd/coreプロセスの最新個数が1未満だった場合 | 
| 11 | 重度の障害 | sagentd/heartbeat process is not running on {HOST.NAME} | proc.num[,root,,"sagentd/heartbeat"].last(0)<1 | プロセス | 稼働中のsagentd/heartbeatプロセスの最新個数が1未満だった場合 | 
| 12 | 重度の障害 | sagentd/poll process is not running on {HOST.NAME} | proc.num[,root,,"sagentd/poll"].last(0)<1 | プロセス | 稼働中のsagentd/pollプロセスの最新個数が1未満だった場合 | 
| 13 | 重度の障害 | sagentd/scheduler process is not running on {HOST.NAME} | proc.num[,root,,"sagentd/scheduler"].last(0)<1 | プロセス | 稼働中のsagentd/schedulerプロセスの最新個数が1未満だった場合 | 
| 14 | 重度の障害 | sagentd/webclient process is not running on {HOST.NAME} | proc.num[,root,,"sagentd/webclient"].last(0)<1 | プロセス | 稼働中のsagentd/webclientプロセスの最新個数が1未満だった場合 |
| 15 | 重度の障害 | sagentd/webserver process is not running on {HOST.NAME} | proc.num[,root,,"sagentd/webserver"].last(0)<1 | プロセス | 稼働中のsagentd/webserverプロセスの最新個数が1未満だった場合 |
| 16 | 重度の障害 | srebuildd process is not running on {HOST.NAME} | proc.num[,root,,"srebuildd"].last(0)<2 | プロセス | 稼働中のsrebuilddプロセスの最新個数が2未満だった場合 | 
| 17 | 重度の障害 | bizstorenode process is not running on {HOST.NAME} | proc.num[,root,,"bizstorenode"].last(0)<***12*** or ***24*** | プロセス | 稼働中のbizstorenodeプロセスの最新個数が***12*** or ***24***未満だった場合 | サーバーが1つのRINGをサポートする場合は12個、2つのRINGをサポートする場合は24個
| 18 | 重度の障害 | elasticsearch process is not running on {HOST.NAME} | proc.num[java,elasticsearch,,"elasticsearch"].last(0)<2 | プロセス | 稼働中のelasticsearchプロセスの最新個数が2未満だった場合 | 

# 関連記事
[Zabbix監視テンプレート（Scality 6 Supervisor）](https://qiita.com/bloodia/items/0d650bf2a6b2daf90eb4)
[Zabbix監視テンプレート（Scality 6 SOFS Connector）](https://qiita.com/bloodia/items/e1900d4e25c210682cee)