More Related Content Similar to Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~ (20) More from Daisuke Ikeda (20) Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~2. いけだ だいすけ
池田 大輔
[所属]
TIS株式会社 IT基盤エンジニアリング企画室
日本Zabbixユーザ会運営スタッフ
[興味・関心]
システム運用の効率化・改善
SRE,監視,ジョブ管理,構成管理 等
[技術要素]
Zabbix,JobScheduler,Ansible,fluentd,Neo4j
Elasticsearch,InfluxDB,Python,Golang等々
@ike_dai ikedai
ike-dai ike_dai
2
6. Zabbixの監視の仕組み
6
snmp server
snmp server
SNMP Trap
SNMP
ssh server
ssh server
Zabbix Agent
仮想化HV
Cloud
ODBC
JMX
Java
アプリ
仮想環境API
クラウドAPI
SSH接続による
内部コマンド実行監視
ZabbixAgent
による内部監視
(リソースやログ等)
ODBCによるDB監視
Zabbix Java GatewayによるJava監視
外部チェックスクリプト監視
によるAPI監視
Zabbix Server
エージェントレス監視
(ICMP ping監視やポート監視)
DB
13. 何を監視する?
- 直接的な影響の監視
- レスポンスの正常性監視
- レスポンス速度 等
- 要因推定のために必要な情報の監視
- 出力ログのError情報
- 各種リソースの情報
- 今後の影響を事前推測するために必要な情報の監視
- リソースの推移傾向の情報
- ログのWarning情報
- サービスの利用状況の変化 (アクセス数変動)
13
15. 特徴の違い
15
物理環境
コンテナ仮想化環境
クラウドサービス
責任範囲
ほぼ全て自己責任
ほぼ全て自己責任
IaaS
OSより下はサービス側
PaaS
アプリ基盤以下はサービス側
複雑さ
比較的シンプル
物理・仮想基盤・コンテナと
多層になり複雑化
様々なサービスの組み合わせの
ケースが多くなると複雑化しがち
変化の激しさ
物理的なものは
ある程度固定
コンテナ単位で見ると
非常に激しい
従量課金のケースもあり起動・
停止なども非常に激しい
17. 監視する手段は?
17
物理環境
コンテナ仮想化
クラウド(IaaS)
クラウド(PaaS)
死活監視
icmp ping監視等
コンテナホスト管理情報
の確認
icmp ping監視やクラウド管理
のmetrics確認
クラウド管理のmetrics確
認
外形監視
Zabbix等のWebアクセ
スによる監視
Zabbix等のWebアクセス
による監視
Zabbix等のWebアクセスによる
監視
クラウド管理のヘルスチェック
確認
Zabbix等のWebアクセス
による監視
クラウド管理のヘルス
チェック確認
リソース監視
SNMP、ZabbixAgent
等による監視
コンテナホスト管理情報
の確認
ホスト自体をSNMP、
ZabbixAgent等で監視
Zabbix Agent等による監視
クラウド管理のmetrics確認
クラウド管理のmetrics確
認
ログ監視
Zabbix Agent等による
監視
コンテナのロギング機能
でログを抽出して監視
クラウド側で管理されているロ
グ情報の確認
ZabbixAgent等による監視
クラウド側で管理されて
いるログ情報の確認
23. 使用例) Docker Remote API
23
HTTPエージェント
アイテム
URL: http://<DockerRemoteAPI URL>/containers/{id}/stats?stream=0
METHOD: GET
KEY: docker.containers.stats
{
"read": "2019-05-27T14:52:32.281222746Z",
"preread": "2019-05-27T14:52:31.273499151Z",
"pids_stats": {
"current": 124
},
"blkio_stats": {
・・・
"cpu_stats": {
"cpu_usage": {
"total_usage":59549976487,
"percpu_usage": [
16456996509,
・・・
}
監視結果
依存アイテム
マスターアイテムキー: docker.containers.stats
KEY: container.cpu.usage
保存前処理: JSON
=> $.cpu_stats.cpu_usage.total_usage
59549976487
監視結果
24. Zabbixで行うには?
・アグリゲーションアイテム
24
ホストグループ: Docker Host A
ホスト: Container1
アイテム: container.cpu.usage
ホスト: Container2
アイテム: container.cpu.usage
ホスト: ContainerN
アイテム: container.cpu.usage
アグリゲーション
アイテム
KEY: grpsum[“Docker Host A”, “container.cpu.usage”, last]
Docker Host Aに所属するホストのcontainer.cpu.usageキーの
最新の監視結果のデータを合算した値を監視する
25. Zabbixで行うには?
・イベント相関
25
docker eventsの情報を監視
{“image”: “zabbix”, “Action”: “create”}
{“image”: “zabbix”, “Action”: “start”}
{“image”: “redmine”, “Action”: “stop”}
{“image”: “zabbix”, “Action”: “die”}
{“image”: “zabbix”, “Action”: “stop”}
{“image”: “redmine”, “Action”: “start”}
Image:
zabbix
Action:
create
監視結果から動的に自動タグ付け可能
Image:
zabbix
Action:
start
Image:
redmine
Action:
stop
Image:
zabbix
Action:
die
Image:
redmine
Action:
start
Image:
zabbix
Action:
stop
26. Zabbixで行うには?
・イベント相関
26
docker eventsの情報を監視
{“image”: “zabbix”, “Action”: “create”}
{“image”: “zabbix”, “Action”: “start”}
{“image”: “redmine”, “Action”: “stop”}
{“image”: “zabbix”, “Action”: “die”}
{“image”: “zabbix”, “Action”: “stop”}
{“image”: “redmine”, “Action”: “start”}
Image:
zabbix
Action:
create
監視結果から動的に自動タグ付け可能
Image:
zabbix
Action:
start
Image:
redmine
Action:
stop
Image:
zabbix
Action:
die
Image:
redmine
Action:
start
Image:
zabbix
Action:
stop
古いイベントのタグ
Image=redmine and Action=stop
新しいイベントのタグ
Image=redmine and Action=start
復旧
36. 活用例) コンテナの監視登録をLLDとJavaScript前処理で
36
① Docker APIを呼び出すHTTPエージェントアイテムを登録
[
{
"Id": "3923672cd02...b8d8e6b4d3",
"Names": [
"/zabbix-appliance"
],
"Image": "zabbix/zabbix-appliance:alpine-4.2.0",
・・・略
},
{
"Id": "ba19906f1cbc48...95b629f60c",
"Names": [
"/opsbear_influxdb_1"
],
"Image": "opsbear_influxdb",
・・・略
}
]
44. TimescaleDBとは?
● PostgreSQLの拡張
● ハイパーテーブルとチャンクという形式で時系列データ管理
○ パーティショニングをよろしくやってくれるような感じ
● 集計用の関数とかも高機能
44
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
chunk
hypertable
例) 2019/05/01 00:00
-2019/05/01 23:59:59
の1日分