Mais conteúdo relacionado
Semelhante a zabbixを使ったクラウド環境の監視とツール連携 (20)
Mais de NHN テコラス株式会社 (20)
zabbixを使ったクラウド環境の監視とツール連携
- 2. Page 2
自己紹介
名前
大久保 智之(おおくぼ ともゆき)
所属
テコラス株式会社 SE部
経歴
SI系会社で顧客先に常駐して運用管理業務を中心に関わった後、
フォースクーナ(現テコラス)でMSP業務に携わる
現在はクラウドを中心とした運用サービスの導入・運用を担当
- 3. Page 3
社 名 テコラス株式会社
事業開始 2000年よりデータセンター事業開始
事業内容
データセンター事業 クラウド事業
マネージド事業 セキュリティ事業
EC支援事業 広告支援事業
管理稼動
サーバ数
10,000台以上(2015年1月現在)
所 在 地 新宿 大阪 浜松 福岡
会社概要
インターネット黎明期からの長い経験と
管理稼働サーバ数10,000台以上を誇る豊富な実績
- 11. Page 11
HyClops for Zabbix
HyClopsの機能概要
EC2インスタンスやvSphere仮想マシン情報をZabbixに自動登録
Zabbixエージェントレスでインスタンスの情報を自動監視(AWS APIおよびvSphere APIを利用)
Zabbixグローバルスクリプトを用いてインスタンスの起動/停止処理を実行
Zabbixダッシュボード拡張によるEC2インスタンス、vSphere仮想マシン情報の一覧表示
(オプション機能) GateOne-Zabbix連携によるZabbixダッシュボードからのSSHコンソール接続
HyClops for Zabbix とは
TIS社が開発しているZabbixの拡張ツール
http://tech-sketch.github.io/hyclops/jp/
- 12. Page 12
Hyclops for Zabbixの構築例
構築環境
■仮想マシン:
AWS上にCentOS6(64bit版/HVM)のインスタンスを作成
※後述するHyclops JobMonitoringを構築した環境を利用
■ミドルウェア:
Zabbix(2.2.9)
PostgreSQL(9.3.9)
Hyclops for Zabbix(0.2.0)
- 13. Page 13
Hyclops for Zabbixのセットアップ(1)
1. Zabbix管理画面の”管理 > 一般 > 値のマッピング”から値の設定
「Script Return Code」と「LibCloud Node Status」
Script Return Code LibCloud Node Status
受信データ マッピング文字列
0 success
1 failure
受信データ マッピング文字列
0 running
1 rebooting
2 terminated
3 pending
4 stopped
- 14. Page 14
Hyclops for Zabbixのセットアップ(2)
2. ZeroMQと関連RPMパッケージのインストール
$ sudo curl http://download.opensuse.org/repositories/home:/fengshuo:/zeromq/ ¥
CentOS_CentOS-6/home:fengshuo:zeromq.repo > /etc /yum.repos.d/zeromq.repo
$ sudo yum install gcc gcc-c++ zeromq zeromq-devel python-devel python-setuptools
ipmitool
3. Pythonモジュールのインストール
$ sudo pip install apache-libcloud==0.13.2 zabbix-api pyzmq psphere python-
daemon==1.6 configobj
$ sudo pip install ordereddict argparse
$ sudo pip install boto
- 15. Page 15
Hyclops for Zabbixのセットアップ(3)
4. Hyclopsのインストール
$ sudo git clone https://github.com/tech-sketch/hyclops.git
$ cd hyclops
$ sudo python setup.py install
5. 起動スクリプト、外部チェックスクリプトの配置
$ sudo cp -a ./misc /init.d/redhat/hyclops /etc /init.d/
$ sudo cp -a ./misc /externalscripts/* /usr/lib/zabbix/externalscripts/
$ sudo chown zabbix:zabbix /usr/lib/zabbix/externalscripts/*
$ sudo chmod 755 /usr/lib/zabbix/externalscripts/*
- 16. Page 16
Hyclops for Zabbixのセットアップ(4)
6. Hyclopsの設定ファイル編集
$ sudo vi /opt/hyclops/hyclops.conf
# ============================
# User settings
# ============================
[hyclops]
# listen_address = * # listen on all network interface
# listen_address = 127.0.0.1 # listen on specific network interface
listen_address = 127.0.0.1
listen_port = 5555
[zabbix]
zabbix_server = 127.0.0.1
zabbix_port = 10051
frontend_url = http://127.0.0.1/zabbix
zabbix_user = Admin
zabbix_password = zabbix
zabbix_sender = /usr/bin /zabbix_sender
[ipmi]
ipmitool = /usr/bin /ipmitool
[logging]
log_level = WARNING
log_file = /opt /hyclops /logs /hyclops_server.log
[environments]
# http_proxy = http://proxy.example.com:8080/
# https_proxy = http://proxy.example.com:8080/
# no_proxy = "localhost,127.0.0.1"
- 17. Page 17
Hyclops for Zabbixのセットアップ(5)
7. Hyclopsサーバの起動設定と起動
$ chkconfig --add hyclops
$ chkconfig hyclops on
$ service hyclops start
8. Zabbixのダッシュボード画面関連ファイルの置換
$ python setup.py replace -d /usr/share/zabbix/ --zabbix-version=2.2
9. Zabbix templates,scripts,globalmacroデータのインポート
※以下3つのデータがインポートされる
misc/import_data/templates.xml
misc/import_data/globalscripts.xml
misc/import_data/globalmacros.xml
$ python setup.py import -f http://127.0.0.1/zabbix -u Admin -p zabbix
- 18. Page 18
Hyclops for Zabbixのセットアップ(6)
10. cronスクリプトの登録
※HyclopsはAWS上やvSphere ESXi上から存在しなくなった仮想マシン用Zabbixホストを
自動的に「Not exist hosts」ホストグループに移動させる。
この移動された存在しないホスト情報を一定期間経過後に自動削除するためのcronスクリプト
を登録する。
$ sudo crontab -u hyclops -e
*/5 * * * * python /opt/hyclops/cron_scripts/delete_not_exist_hosts.py
- 19. Page 19
Hyclops for Zabbixのセットアップ(7)
11. Zabbixの設定
「AWSAccount」のテンプレートにマクロを設定する
キー 値
{$KEY} AWS Access Key
{$SECRET} AWS Secret Key
{$VM_GROUPS}
全インスタンスに共通で割り当てたいテンプレート名
(カンマ区切りで複数指定可)
{$VM_TEMPLATES_LINUX}
Windows以外のインスタンスに共通で割り当てたいテンプレート名
(カンマ区切りで複数指定可)
{$VM_TEMPLATES_WINDOWS}
Windowsインスタンスに共通で割り当てたいテンプレート名
(カンマ区切りで複数指定可)
「AWSAccount」のテンプレートに「Hyclops Templates」のテンプレートをグループとして含める
- 25. Page 25
CloudWatchとFluentd + Zabbixの連携
AWSサービスの監視メトリクスをCloudwatchから
Fluentdを使ってZabbixに流し込む
Cloudwatch Fluentd Zabbix
zabbix-trapperfluent-plugin-cloudwatch
fluentd-plugin-zabbix
- 26. Page 26
Fluentd環境のセットアップ(1)
1.Fluentdのインストール
$ sudo wget http://toolbelt.treasuredata.com/sh/install-redhat.sh
$ sudo sh -x install-redhat.sh
2.fluentdのプラグインインストール
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-zabbix
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-cloudwatch
- 27. Page 27
Fluentd環境のセットアップ(td-agent.conf)(2)
<source>
type cloudwatch
tag cloudwatch-rds
cw_endpoint monitoring.ap-northeast-1.amazonaws.com
namespace AWS/RDS
metric_name CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory, ¥
SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
dimensions_name DBInstanceIdentifier
dimensions_value test
</source>
<match cloudwatch-rds>
type copy
<store>
type zabbix
zabbix_server 127.0.0.1
host test
name_keys CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory, ¥
SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
add_key_prefix cloudwatch
</store>
</match>
- 35. Page 35
Jobscheduler
Jobscheduler とは
Software und Organisations-Service GmbH(SOS社)が
開発しているジョブ管理システム
http://www.sos-berlin.com/jobscheduler
Jobschedulerの機能概要
• 高度なジョブ制御とジョブ定義機能
• エージェント/エージェントレスのジョブ実行が可能
• APIを用いた高度なジョブ連携が可能
- 37. Page 37
HyClops JobMonitoring
HyClops JobMonitoringの機能概要
• ジョブ監視設定をZabbixに自動登録
• ジョブの実行時間をZabbixで監視し、時間推移を取得
• ジョブの異常終了や遅延情報をZabbixに連携し、
Zabbixのアクションに基づいた対応を実施
• ジョブの稼働に合わせた自動トリガー設定変更
HyClops JobMonitoring とは
TIS社が開発しているZabbixの拡張ツール
http://tech-sketch.github.io/hyclops_jm/jp/
- 39. Page 39
Hyclops JobMonitoringのセットアップ(1)
1.chef-soloによる初期構築
$ git clone https://github.com/tech-sketch/hyclops_jm-chef-repo.git
$ cd hyclops_jm-chef-repo
$ sudo bash install_middleware.sh
2.Fablicによるセットアップ
$ git clone https://github.com/tech-sketch/hyclops_jm.git
$ cd hyclops_jm
$ fab -c hyclops_jm.conf install
※rootユーザでsshログインできることが必要なため、AWS上の仮想サーバでの構築は注意