Upload
daisuke-ikeda
View
481
Download
6
Embed Size (px)
Citation preview
Mackerel と Zabbix
TIS 戦略技術センター池田 大輔(@ike_dai)
2014/12/15 第4回TIS Matsuri LT
自己紹介
池田 大輔
TIS株式会社 戦略技術センター
@ike_dai https://www.facebook.com/ikedai Zabbix,AWS,fluentd,Chef,JobScheduler...
名前
所属
興味
AWS、VMware監視用プラグイン『HyClops for Zabbix』開発(http://tech-sketch.github.io/hyclops/jp/)
技術評論社HP : http://gihyo.jp/book/2014/978-4-7741-6288-1Amazon : http://www.amazon.co.jp/dp/4774162884
Zabbix-JobScheduler連携用プラグイン『HyClopsJM』開発(http://tech-sketch.github.io/hyclops_jm/jp/)
今日言いたいこと
監視システムもTPOをわきまえて
Time 監視をどれぐらいの頻度ですべきなのか?Place どこから監視するのか?Occasion どういった場合を監視したいのか?
Mackerel
Mackerel
監視のSaaS※https://mackerel.io/より引用
Zabbix
Zabbix
監視のソフトウェア
監視の仕組み
いずれもAgentベースの監視
Mackerel ZabbixGo言語で実装OSSとして公開https://github.com/mackerelio/mackerel-agent
対応しているOS Linux Windows MacOSX注意:For now, mackerel-agent is guaranteed to run only onCentOS 5/6 and Debian 6/7.
C言語で実装OSSとして公開svn://svn.zabbix.com
対応しているOS Linux Windows MacOSX HP-UX Solaris AIX FreeBSD OpenBSD
Mackerel
https://mackerel.iomackerel-agent
内部情報収集
Mackerel API(WebAPI)
・ホスト登録・メトリックの投稿などなど
構成情報は1時間に1回監視メトリクス情報は1分に1回
Zabbix
zabbix-agent
内部情報収集
Zabbix独自プロコトル
アクティブ型通信or
パッシブ型通信
zabbix-server
構成情報はローレベルディスカバリで自動検知各監視間隔はそれぞれ自由に指定可能
内部情報収集
例えば
LinuxサーバのCPU使用率なら
/proc/statの中身の情報を監視
MackerelもZabbixもよく似てる
Mackrel標準監視CPU、Memory、Disc I/O、NW I/O
Zabbix標準監視
CPU、Memory、Disc I/O、NW I/O、ログ、サービス、プロセス、ファイルなどなど
テンプレートとして定義可能
監視の仕組み
どっちもいい感じ
監視の管理体系
MackrelOrganization->Service->Role->Host
Organization
Service Service
Role Role Role Role
MackrelOrganization->Service->Role->Host
Roleの情報をまとめて一括で確認
ホストのRoleへの割り当てはダッシュボード上からも可能mackerel-agent.confに定義して自動割り振りも可能
ZabbixHostGroup->Host
HostGroup HostGroup
Zabbix Server
ZabbixHostGroup->Host
Screen機能で必要な情報を一覧表示
監視の管理体系
Zabbixはちょっと弱い
拡張性
MackrelPluginを使えばどんな監視も可能
mackerel-plugin-apache2mackerel-plugin-aws-ec2-cpucreditmackerel-plugin-aws-elbmackerel-plugin-aws-rdsmackerel-plugin-elasticsearchmackerel-plugin-haproxymackerel-plugin-jvmmackerel-plugin-linuxmackerel-plugin-memcachedmackerel-plugin-mongodbmackerel-plugin-muninmackerel-plugin-mysql
mackerel-plugin-nginxmackerel-plugin-php-apcmackerel-plugin-plackmackerel-plugin-postgresmackerel-plugin-redismackerel-plugin-snmpmackerel-plugin-squidmackerel-plugin-varnish
「キー\tバリュー\tタイムスタンプ」形式で
メトリクス値を出力するプログラムを組むだけ
Goならヘルパーライブラリがあり簡単に実装可
Mackrel
curlコマンドでメトリクスを追加
リクエスト
# curl -X POST -H "Content-Type: application/json"\ -H "X-Api-Key:APIキー"\ https://mackerel.io/api/v0/tsdb\ -d '[{"hostId":"2fP8G6bXrzJ","name":"api.test.sample","time":1418614973,"value":150}]'
レスポンス
{"success":true}
※ログ監視のような文字列の登録は無理っぽい
Mackrel
Zabbixいろんな方法で拡張可能
Zabbix Serverからスクリプト実行して監視
Zabbix Agentからスクリプト実行して監視
Zabbix Senderで外部からプッシュ型で監視
ローダブルモジュールで監視機能を追加
拡張性
Zabbixの方が幅広いけどちょっと複雑
外部連携
Mackrel
Email,Slack,HipChat,ChatWork等への通知、Webhookは標準で対応
Zabbix
障害発生時に実行させるスクリプトを組めばどんなとこでも連携OK
外部連携
Mackerelの方がお手軽
いろいろ並べて比較しましたがどっちがいい悪いではなく
TPOをわきまえて
MackerelもZabbixも監視のエンジンとして活用可能やりようによってはどんな風にもアレンジ可能
運用がよくなるか悪くなるかは
使い方次第!
告知!!!
Tech-Circleって知ってますか?
TechCircle@Nishi-Shinjuku http://techcircle.connpass.com/
TechCircle@Nishi-Shinjuku
一緒に技術的なこと勉強してみたい方運用スタッフにぜひご参加下さい!!!
興味ある人は池田まで
http://techcircle.connpass.com/