やりたかったこと EC2の監視を外部サービスに依存せず、AWSの機能だけで行いたかったのと通知先はSlackにしたかったので下記を利用して設定した際のメモです。
CloudWatch(アラーム、エージェント、メトリクス) SNS AWS Chatbot 結論 先に結論を書くと、今のところ、監視はAWSの仕組みを使わずに外部サービスを使った方が良いかもな〜というのが私の感想です。
CloudWatchで取得できるメトリクスをモニタリング対象にして閾値をこえたら通知させることができるのですが、私が単にやりたかったことはディスクの容量やCPU使用率、メモリ使用率だけのシンプルなものに対して、かなり複数の要素が出てきて中々大変でした。
上記をやるだけならMackerelとかの方が圧倒的に楽です。
もしかしたらもっと良い方法があったのかもしれないですが、とりあえず私がやったことをメモしていきます。
まずはじめにCloudWatchAgentのインストール 設定の流れとしては、EC2にCloudwatchAgentをインストールして、メトリクスを取得する必要があります。
CloudWatchAgentの設定はSSM Managerを使うことでコンソールからエージェントをインストールしたり、共通設定を適用できるようです。
構成管理を行うためコンソールでポチポチではなくAnsibleでやりたいので、最低限の共通設定を下記のように作成して適用するようにしました。
main.yaml
- name: install cloudwatch_agent repo tags: cwagent yum: name: https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm state: present - name: install cloudwatch_agent tags: cwagent yum: name: amazon-cloudwatch-agent state: latest - name: remove default file tags: cwagent file: state: absent path: /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.d/default notify: restart cwagent - name: copy common file tags: cwagent copy: src: files/common dest: /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.d/common owner: cwagent group: cwagent mode: '0755' notify: restart cwagent commonファイル
Created
Thu, 17 Oct 2019 13:32:53 +0000