Más contenido relacionado
La actualidad más candente (20)
Similar a AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~ (20)
Más de Daisuke Ikeda (20)
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
- 12. たとえばこんな機能も - Zabbix API -
● 外部とZabbixとのインタフェース
○ Zabbixに対する操作(設定変更、ホスト追加、グループ作成等)実施
○ Zabbixで管理している監視結果の取得(history,event,IT service情報)
● JSON-RPC形式のAPI
○ URL: http://<zabbix-server>/zabbix/api_jsonrpc.php
○ メソッド: host.create、host.update、item.get、history.getなど
○ パラメータ: メソッド毎に必要なパラメータを渡す
host.getの例
レスポンス
{
"auth": "xxxxxxx",
"method": "host.get",
"params": {
"output": "extend",
"filter": {"host":"Zabbix server"}
},
"jsonrpc": "2.0",
"id": 1
}
{
"jsonrpc":"2.0",
"result":[{
"maintenances":[],
"hostid":"10084",
"host":"Zabbix server",
・・・略
}],
"id":1
}
リクエストパラメータ
- 13. たとえばこんな機能も - Zabbix Sender -
Zabbix Server
DB
監視結果情報
設定情報
Zabbix
Trapper
Zabbix
API
Zabbix
Sender
set
Zabbix
API
library
set
get
● 外部から監視結果をプッシュ型で登録するためのプログラム
○ Zabbix Trapperアイテムに対して値を登録
○ 何らかのトリガーをきっかけに監視結果をプッシュ型で送付したい場合に有効
○ Agentレスでもzabbix_senderコマンドを実行するだけで実現可能
$ zabbix_sender -z <zabbix-server> -s "Zabbix server" -k "sender.test" -o 100
- 23. アーキテクチャ
Zabbix Server
Physical Machine
Zabbix Host
Dashboard page(dashboard.php) SSH Connection page(gateone.php)
vSphere ESXi
Zabbix Host
IPMI
Template
vSphereESXi
Template
vSphereVM
Zabbix Host
vSphereVM
Template
AWS Account
Zabbix Host
AWSAccount
Template
EC2 Instance
Zabbix Host
AmazonEC2
Template
Configure Zabbix host
Extend Zabbix frontend
libcloud
HyClops Server Queue
(ZeroMQ)
vSphere
driver
EC2
driver
Physical Machine
IPMI
VMware ESXi
AWS
vSphere
API
AWS
API
ipmitool
GateOne Server
Auto registration
SSH connection
5555/TCP
443/TCP
push message push message
push message
:HyClopsに
含まれるもの
- 25. CloudWatch logs!?
● 2014/7/14 CloudWatchでインスタンス内のログ
監視ができるCloudWatch logsがリリース
http://aws.typepad.com/aws_japan/2014/07/cloudwatch-log-service.html
- 26. CloudWatch logsの使い方
● 1. API操作に対する権限付与
○ IAMでポリシー設定している場合は以下の権限を付与
・・・
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:*",
"s3:GetObject"
],
"Resource": [
"arn:aws:logs:us-east-1:*:*",
"arn:aws:s3::*"
]
},
・・・
- 27. CloudWatch logsの使い方
● 2. エージェントインストール
○ Amazon Linuxの場合は以下を実行
インストールスクリプト取得
$ wget https://s3.amazonaws.com/aws-cloudwatch/downloads/awslogs-agent-setup-v1.0.py
インストール実行
$ python ./awslogs-agent-setup-v1.0.py --region us-east-1
Step 1 : pipのinstall
Step 2 : Agentダウンロード
Step 3 : AWS CLIの設定(クレデンシャル設定等 )
Step 4 : エージェントの設定(監視対象のログの指定、ログの timestampフォーマットの指定等 )
Step 5 : エージェントの起動
これだけ!とても簡単
- 28. CloudWatch logsの仕組み
● awslogsプロセスはログをpush
● 設定は/var/awslogs/etc/awslogs.conf
aws logs push --config-file /var/awslogs/etc/awslogs.conf
[/var/log/messages]
datetime_format = %Y-%m-%d %H:%M:%S
file = /var/log/messages
push_delay = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/messages
- 29. CloudWatch logsの仕組み
● ログのタイムスタンプはdatetime_formatで指定
○ 一致する部分があればログの作成時刻として連携
○ 一致しない場合はCloudWatchに連携された時刻が登録
例:
awslogs.confのdatetime_formatの指定
『%b %d %H:%M:%S』の場合
正しく作成時刻が連携される出力ログ例
Jul 24 10:00:00 “test log”
[Jul 24 10:00:12] “test log”
正しく作成時刻が連携されない出力ログ例
2014-07-24 10:00:00 “test log”
Jul 24 10:00 “test log”
- 31. CloudWatch logsコマンド例
● ロググループの新規作成
● ログストリームの新規作成
● ログイベントの取得
次に続く
$ aws logs create-log-group --log-group-name "apache log"
$ aws logs create-log-stream --log-group-name "apache log" --log-
stream-name "i-xxxxxx"
$ aws logs get-log-events --log-group-name "apache log" --log-stream-
name "i-xxxxxx"
- 32. CloudWatch logsコマンド例
● ログイベントの登録
● ロググループに対してフィルタ作成
$ aws logs put-log-events --log-group-name "apache log"
--log-stream-name "i-xxxxxx" --log-events
timestamp=1406198339080,message="2014-07-24 10:00:00 test log"
--sequence-token "トークン番号"
$ aws logs put-metric-filter --log-group-name "apache log"
--filter-name "error filter" --filter-pattern "ERROR"
--metric-transformations metricName="filtered_log",
metricNamespace="LogMetrics",metricValue=1
アプリケーションからCloudWatch logsのAPI操作も可能