AWS環境での監視について調べる CloudWatchとZabbixの比較

CloudWatch
362件のシェア(そこそこ話題の記事)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

オンプレからAWSへのシステムの移行をお考えのお客様にところに伺うと
「AWSのCloudWatchがあれば監視用のツールは必要ありませんか?」
と質問されることがよくあります。簡単にですがお客様がよく使われているZabbixとAWS標準のCloudWatchと機能比較してみたいと思います。

機能比較

AWS CloudWatch Zabbix
リソース監視(※1) EC2
RDS、ELBなど ×(※2)
インスタンス死活監視 ○(ステータスを監視) ○(ping監視)
プロセス監視 ×(※3)
Web監視 ×(※3)
ログの監視 ○(※4)
データの保存期間 2週間 DBに保存するので特に制約なし
利用料金 条件付きで有料(※5) EC2の利用料金
イベント通知方法 Amazon SNS メール、SMS、Jabberチャットメッセージ
イベント通知時のコマンド実行 ×(※6)

○:標準で使えます ×:標準で使えません

補足

1.リソース監視の監視項目
CloudWatchはデフォルトでメモリー使用率やディスク使用量、ロードアベレージがないので必要であればカスタムメトリクスとして追加する必要があります。監視項目は以下のページをご覧ください。
[CloudWatch]グラフの確認方法と確認できるグラフ一覧(EC2/ELB/RDS)
Zabbixエージェント - Zabbixオフィシャル日本語サイト
2.Zabbixからフルマネージドサービスを監視
ZabbixではRDSやELBのリソースを監視する機能はありません。Zabbixでフルマネージドサービスを監視したい場合はCloudWatchから値を取得するスクリプトを実装する必要があります。
ZabbixでAWS/CloudWatchの値を取得してみた
3.カスタムメトリクスを使えば可能
カスタムメトリクスの追加方法は以下のページをご覧ください。
カスタムメトリックスをパブリッシュする
4.CloudWatchでログの監視
CloudWatchでログの監視する方法に関しては以下のページをご覧ください。
Amazon CloudWatch Logsでログファイルを監視する
5.CloudWatchの料金
料金表のリンクを張っておきます。
Amazon CloudWatch 料金表
6.CloudWatchがイベント発生時にできること

イベント発生時にAutoScalingのスケールアウト/イン、EC2をstopやterminateすることは可能です。

Auto Scaling、CloudWatch、Elastic Load Balancing、カスタムAMIの組み合わせ

まとめ

一通り調べてみたところCloudWatchはカスタムメトリクスを使えば結構何でもできる印象がありました。またZabbixもスクリプトを書けばCloudWatchの値を取得できるので、あまり機能的な違いは感じられませんでした。CloudWatchは保存期間が2週間と短いですが、この点が問題ないようであればCloudWatchで大体の要件は満たせそうですね。