はじめに
こんにちは、BFT名古屋支店のマカビです!
AWSクラウド上にあるZabbixとLambdaを連携するために必要なAWSサービスを調査したので、その結果をまとめます。備忘録的な感じになりますが、ご参考になれば幸いです。
サービス一覧
No. | サービス名 | 簡単な説明 |
---|---|---|
1 | VPC | AWS上にプライベートな仮想ネットワークを構築できるサービス |
2 | EC2 | AWS上に仮想サーバを構築できるサービス |
3 | Lambda | サーバレスでコードを実行できるサービス |
4 | CloudWatch | AWS上のサービスやリソースを監視するサービス |
5 | IAM | AWSリソースへのアクセスを安全に制御するためのサービス |
以上が必要なサービスとなります。
より詳細について、それぞれまとめていきます。
1. VPC
Zabbixサーバ(EC2)をVPC内のサブネットに構築します。
パラメータなどの情報についてはこちらをご覧ください。
2. EC2
前述の通り、Zabbixをインストールするために使用します。
今回は、Webサーバ、DBサーバ、APサーバの各機能を1台のEC2インスタンスに詰め込むことを想定してます。
しかしながら、それぞれ別々のインスタンスを用意したり、AWS RDSをDBサーバの代わりに利用することも可能だと思います。
3. Lambda
Lambdaで実行する関数をLambda関数と呼びます。
今回は2種類のLambda関数を用意する予定です。
1つ目が、CloudWatchにログを出力する関数です。
2つ目が、CloudWatchが取得したログをトリガーにZabbixSender.pyを実行し、Zabbixサーバに通知する関数です。
どちらもランタイムはPythonを想定してます。
より詳細な情報については、こちらをご覧ください。
4. CloudWatch
CloudWatchでは、前述の1つ目のLambda関数でログを取得するために使用します。
EC2インスタンスの監視も行うことはできますが、今回は行う想定ではありません。
EC2インスタンスのログをCloudWatchに出力する方法については、以下のどちらかをご参考ください。
Windows編 / Linux編
5. IAM
ユーザ権限や各ロールの管理を行うために使用します。
具体的にはLambda関数の実行権限であったり、EC2インスタンスを構築するための権限などを管理します。
より詳細な情報については、こちらをご覧ください。
まとめ
AWSクラウド上にあるZabbixとLambdaを連携するために必要なAWSサービスをまとめました。
今回は、Zabbixとの連携をLambdaのログを契機として考えていますが、EC2やその他のサービスでも代用可能かと思います。