BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS】LambdaとZabbix連携に必要なサービスたち

はじめに

こんにちは、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やその他のサービスでも代用可能かと思います。