Help us understand the problem. 4. https://github.com/na0AaooQ/aws-cloudwatch-put-ec2-metric, 最後に、CloudWatchでEC2インスタンスのnginxプロセスが停止した場合に、アラートメールを送信する設定例について記します。, EC2インスタンス(Amazon Linux)は以下で作成したものを使用しました。, http://qiita.com/na0AaooQ/items/1fedb1d0136cd78c6aa1, crontabコマンドで以下のようなcronを登録すると、5分おきにCloudWatchへEC2インスタンスのnginxプロセス数、ディスク使用率、iノード使用率を追加する事が可能です。, 以下のように設定すると、CloudWatchメトリックスに追加しているnginxプロセス数が監視閾値を下回った場合、アラートメールを送信する事が出来ます。これにより、EC2インスタンスのnginxの停止を監視出来ます。, AWSマネジメントコンソールの「CloudWatch」->「メトリックス」->「AmazonLinux/ProcessCount/nginx」->「cloudwatch-example-server/nginx」の「アラームの作成」をクリックします。, 以下の例では、EC2インスタンスのnginxプロセス数が1未満になった場合、アラートメールを送信します。 ClowdWatchにはあらかじめEC2用のメトリクス(チェックできる値)が用意されていますが、残念ながらディスク使用率のメトリクスはありません。EC2のディスク使用率をCloudWatchで監視するには、EC2インスタンスにCloudWatchエージェントをインストールする必要があります。 最後に, 統合 CloudWatch エージェントとは、サーバにインストールする CloudWatch のエージェント (パッケージ) のことです。, これをインストールすることでカスタムメトリクスが取得できるようになったり、CloudWatch Logs にログを送信できるようになります。, 統合 CloudWatch エージェント をインストールすると、対象サーバから CloudWatch Logs に対してログを送信できるようになります。, CloudWatch Logs についてはまた別の機会に紹介できればと思いますが、システムログや Webサーバ (Apache・Nginx) のログも監視できる強力な監視ツールです。, まず CloudWatch エージェントをインストールするには、以下の3種類の方法があります。, またサポートされる OS などは以下に記載されているため、実施する前にご確認いただけると混乱せずに進められると思います。, 参考 : CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する, EC2 (ホスト名 : cloudwatch-test) EC2インスタンスの各種情報をCloudWatchカスタムメトリックスへ追加する事で、CloudWatchからEC2インスタンスの各種情報を監視出来ます。, ・EC2インスタンス上で稼動するプロセス数 (例えばnginxのプロセス数) デフォルトの「1」にします。, これは AWS 側で事前定義された「メトリクスセット」を選択します。 See the Alerting documentation for more on Grafana alerts. 事前に以下をチェックして頂けると宜しいかと思います。, 今までの設定が出力され、問題ないかと聞かれますので “yes” の「1」を指定します。, 次は “CloudWatch Log Agent の設定ファイルはあるか” です。, 対象サーバに “CloudWatch Logs エージェント” をインストールしている状態であれば、 CloudWatch エージェントのインストール その分メトリクス数が多くなるからということでしょうか?, EC2 の イメージID や インスタンスID なども項目に追加したいかです。 アラームの作成. 「CloudWatch で監視したいけどメモリ・ディスク使用率の監視項目がないじゃない、、」 と悩まれた方もいらっしゃるのではないでしょうか? そこで今回は CloudWatch で EC2 のメモリ・ディスク使用率を監視する、ということをやってみたいと思います。 手順の画像を殆ど掲載出来なかったので、分かりづらい手順で済みません。, インフラエンジニアとして、データベースやインフラ構築、オンプレミスからAWSへの移行等を担当。現在はビジネスを加速させるDBやCRM実現に向けて、Salesforce等のシステム開発に取り組んでいます。
2.2.2. Curated dashboards. 5. セキュリティ強化のため 「CloudWatchAgentServerRole」 に変更しておきましょう。, CloudWatch エージェントの設定ファイル作成が完了したので、 – AWS Systems Manager のパラメータストアに書き込みを行うためのロールを作成, AWS Systems Manager タダです. 今回はデフォルトの root にするため、「1」 にします。, 尚、StatsD デーモンはデータ収集用のツールで、 EC2やEBSなど、CloudWatchでAWSリソース(以外も可?)を監視し、メトリクス(設定値)が規定の上限を上回った場合にメール通知などを行うことができる . //docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html) configuration file to import for migration? エージェントの起動 CloudWatch エージェントの設定ファイル作成 EC2 インスタンスからインターネットゲートウェイを経由して CloudWatch にログをプッシュします。 なお、EC2 インスタンスから CloudWatch にログをプッシュするためにはアウトバウンドのインターネット接続が必要になります。 エラーを引いたので共有させていただきます。, Systems Manager の 「Run Command」 から「CloudWatch エージェントの開始」を行った所、 メモリ使用量、稼働時間の統計などを取得しているようです。, CPU のコアごとに監視するかです。 1.2. 先ほどパラメータストアに保存したファイル名を入力します。, ・Optional Configuration Location : AmazonCloudWatch-linux, これまでの作業で対象サーバの “メモリ・ディスク使用率” が CloudWatchのログを確認します。 「CloudWatch」→「ログ」→「ロググループ」 awslogs.confのlog_stream_nameの値をインスタンスIDにしているので、「ロググループ」→「インスタンスID」配下にEC2のログが出力されています。 と悩まれた方もいらっしゃるのではないでしょうか?, そこで今回は CloudWatch で EC2 のメモリ・ディスク使用率を監視する、ということをやってみたいと思います。, また以下をご参考にいただければ、アラームも Slack に飛ばせるので、一緒に見て頂けると嬉しいです。, 参考 : Amazon CloudWatch + Amazon SNS + AWS Chatbot を使ってアラームを Slack に通知してみる, 1. Amazon CloudWatch + Amazon SNS + AWS Chatbot を使ってアラームを Slack に通知してみる, CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する, CloudWatch エージェントで使用する IAM ロールおよびユーザーを作成する, Linux の EC2 インスタンスで SSM エージェント をインストールして設定する, オンプレミスなどのAWS によって管理されていないサーバからもメトリクスを収集できる. 2.1.1. IAM ロールを作成する アラームを色々設定した後にアラーム名を変更しようとしたら、マネコンのどこを触っても変更箇所が出てきませんでした。 Amazon CloudWatchではなく、Zabbixを利用する理由. CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する - Amazon CloudWatch. 通知の送信先: CloudWatch-Monitoring-Alert Amazon CloudWatch Logs のロググループ. メールリスト: CloudWatchによるプロセス死活監視でアラートメールを送信したいメールアドレス, アラームが次の時: 状態: 不足 2.2.1. https://www.lifull.blog/entry/2019/06/21/190753, 日本最大級の不動産・住宅情報サイト「LIFULL HOME'S」を始め、人々の生活に寄り添う様々な情報サービス事業を展開しています。. EC2インスタンスの各種情報をCloudWatchカスタムメトリックスへ追加する事で、CloudWatchからEC2インスタンスの各種情報を監視出来ます。 ・EC2インスタンス上で稼動するプロセス数 (例えばnginxのプロセス数) ・EC2インスタンスのディスク使用率 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. アラーム・ダッシュボードの設定もやっていきたいです。, Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。 – CloudWatch エージェントをインストールするサーバ, IAM Amazon Kinesis Data Firehose の配信ストリーム. CloudWatchでEC2のリソースを監視する手順。メモリやディスクの使用率を可視化しよう! メモリやディスクの使用率を可視化しよう! Posted on 2020-10-22 2020-11-17 by Miya AWS Batch … 2. – Run Command により CloudWatch エージェントのインストール・起動を実施 Amazon ECS タスク. What is going on with this article? 1.1. CloudWatch Logsとは? CloudWatch Logsとは、EC2やRDS等の ログデータをリアルタイムで収集、保管、管理を簡単に行うことができるAWS CloudWatchの機能の一つ です。. ## パラメータとして --help を指定した場合、スクリプトの実行方法を表示する, ## パラメータとして --debug を指定した場合、実行するawsコマンド自体も表示する, /home/ec2-user/cloudwatch_put_disk_use.sh, ## AWS CloudWatchのカスタムメトリックスにディスク使用率を追加する, /home/ec2-user/cloudwatch_put_disk_inode_use.sh, ## AWS CloudWatchのカスタムメトリックスにiノード使用率を追加する, https://github.com/na0AaooQ/aws-cloudwatch-put-ec2-metric, https://www.lifull.blog/entry/2019/06/21/190753, you can read useful information later efficiently. 表示された項目にチェックをつけます。, そのまま下に移動し 「コマンドのパラメータ」 の項目で、 カスタムメトリクス用のデータを収集するために使われているようです。, StatsD デーモンによって収集されるデータの集約間隔です。 CloudWatch エージェント について Systems Manager コマンドを実行. 2.2.3. AWS CloudWatchでEC2の死活監視. EC2で消費しているリソースのチェック。EBSは別サービスのため、監視対象外。 CPUCreditUsage : (T2 インスタンスにのみ有効)指定した期間内に消費される CPU クレジット数。 インスタンスに割り当てられた仮想 CPU による命令を処理するために使用される、物理 CPU の時間を識 … ・Name : AmazonCloudWatchAgent, 次に 「ターゲット」 の項目にて 「インスタンスを手動で選択する」 を選択し、 CloudWatch Logs にログを送りたい場合はこちらで設定します。, また設定内容が出力され、本設定ファイルを SSM パラメータストアに保存するかの問いです。 – CloudWatch エージェントの設定ファイルをパラメータストアに保存, まずは以下のマニュアルに沿って EC2 にアタッチする IAM ロールを作成していきます。, 参考 : CloudWatch エージェントで使用する IAM ロールおよびユーザーを作成する, どちらのロールも EC2 にアタッチする CloudWatch に書き込み許可を与えるためのロールですが、2つ目の CloudWatchAgentAdminRole に関しては、 CloudWatch エージェントの設定ファイルをパラメータストアに書き込む権限を持っています。, 使い分けとしては基本は1つ目の CloudWatchAgentServerRole をアタッチしておくが、パラメータストアへの書き込みが必要な時は2つ目の CloudWatchAgentAdminRole を使用するといった形です。, 1台管理用のサーバをたてて、それだけ CloudWatchAgentAdminRole を付与するというやり方も良いかと思います。, まずは1つ目の CloudWatchAgentServerRole から作成していきます。, マネジメントコンソールから IAM を選択し、ロールを選択した後、 「ロールの作成」 を押下します。, 「信頼されたエンティティの種類を選択」 にて 「AWS サービス」 を選択、「ユースケースの選択」 にて 「EC2」 を選択して 「次のステップ: アクセス権限」 を押下します。, 次にポリシーの選択ですが、以下を選択し、 「次のステップ: タグ」 を押下します。, ロール名はユーザーガイドに沿って 「CloudWatchAgentServerRole」 にします。, 作成の仕方は1つ目とほぼ変わらないので上記を参考作っていただきたいのですが、ポリシーの 「CloudWatchAgentServerPolicy」 を 「CloudWatchAgentAdminPolicy」 に変更します。, CloudWatchAgentAdminRole のポリシーとしては以下になります。, 今回は前述した通りパラメータストアに書き込みを行うため 「CloudWatchAgentAdminRole」 をアタッチします。, EC2 のコンソール画面を開き、対象のインスタンスのチェックボックスを選択、 「アクション」 → 「インスタンスの設定」 → 「IAM ロールの割り当て/置き換え」 を押下します。, 先ほど作成した 「CloudWatchAgentAdminRole」 を選択し、最後に 「適用」 を押下します。, 前述の通り AWS Systems Manager にて CloudWatch エージェントをインストールするのですが、Systems Manager でインストールするには、対象サーバに SSM エージェントのインストール が必要となります。, SSM エージェント (AWS Systems Manager エージェント) とは、CloudWatch エージェントとは別の、AWS Systems Manager のエージェントのことです。, この SSM エージェントをサーバにインストールすると、EC2・オンプレミスに関わらず AWS Systems Manager の コンソールから、情報を監視したり、リモートでコマンドを実行することが可能になります。, CloudWatch エージェントを使用するには SSM のバージョンが 2.2.93.0 以降である必要があったり、OS によってはデフォルトでインストールされてたりするので、以下から事前に導入されているかご確認いただいた方が宜しいかと思います。, 参考 : Linux の EC2 インスタンスで SSM エージェント をインストールして設定する, それでは SSM エージェントをインストールしていきます。手順としては対象サーバにログインし、“yum” でインストールします。, SSM エージェントをインストールしたので、Systems Manager から操作ができるようになりました。, まずは 「AWS Systems Manager」 から 「Run Command」 を選択します。, 次に 「AWS-ConfigureAWSPackage」 を検索し、表示された項目にチェックをつけます。, ・Action : Install 3. EC2インスタンスにAWS Systems Manager(以降、SSM)のAgentがインストールされている; SSMが動作する条件を満たしている; やってみた ・EC2インスタンスのiノード使用率, まず、EC2インスタンスのプロセス数、ディスク使用率、iノード使用率をCloudWatchカスタムメトリックスへ追加するサンプルスクリプトについて記します。, スクリプトはGitHubにも保存しましたので、よろしければご利用下さい。 AWSのメニューからCloudWatchを選択し、アラーム項目を開く. 2.3. Amazon EC2 インスタンス. 正常に終了すれば AWS Systems Manager のパラメータストアに表示されます。, パラメータストアへの書き込みが完了したので、 EC2 にアタッチしている IAM ロールを Only available in Grafana v6.5+. メールリスト: CloudWatchによるプロセス死活監視でアラートメールを送信したいメールアドレス, 「新しいメールアドレスの確認」ウィンドウが表示され、Amazon SENから前述の「メールリスト」で指定したメールアドレスに「AWS Notification - Subscription Confirmation」というメールが送信されます。, 「AWS Notification - Subscription Confirmation」メール本文中の「Confirm subscription」をクリックして、CloudWatchからのメール受信を許可します。, 試しにEC2インスタンスのnginxを停止して、アラートメールが届くか確認します。, 5分程待つと、前述の「メールリスト」で指定したアドレスに以下のようなアラートメールが届きます。, アラートメール件名: ALARM: "Monitoring-ProcessCount-nginx-cloudwatch-example-server" in Asia Pacific - Tokyo, CloudWatchでEC2インスタンスのロードアベレージも監視したい場合、以下の設定をご参照下さい。, CloudWatchでのメール送信設定手順の画像をQiitaにアップロードしようとしているのですが、画像サイズを1MB未満に縮小しても、以下のようなエラーが出て、新規画像がアップロード出来なくなりました(アップロード可能なサイズ制限に引っかかってしまったようです)。 対象サーバにログインし、以下コマンドを実行します。, 尚、何も入力せずに 「Enter」 を押すと 「default choice」 の設定になりますので – EC2 から CloudWatch にメトリクスの書き込みを行うためのロールを作成 今回は EC2 なので 「1」 にします。, これは CloudWatch エージェントを何のユーザで起動させるかです。 CloudWatch エージェント設定ファイルを手動で作成または編集する, 今回は 1. ここでパラメータストアへの書き込み権限がなければエラーとなります。, 既にパラメータストアへの書き込み権限があるロールを EC2 にアタッチ済みのため、 今回は “Advanced” にしてみようと思いますので、「3」を指定します。, 注意点としては各メトリクスセットで収集されるメトリクスが異なるので、 通知の送信先: CloudWatch-Monitoring-Alert EC2 ではデフォルトで CPU使用率 など様々な項目を監視することができますが、 メモリの使用率 や ディスクの使用率 の項目がありません。 なので、 CloudWatch の カスタムメトリクス を定義する必要があります。 前回のブログと合わせてアラームも設定できるので、より使いやすくはなったと思います。, 今後に関しては、CloudWatch Logs を用いたログ監視をやってみたいのと、 CloudWatch エージェント のできること CloudWatchAgentAdminRole の作成 以下のように失敗しました。, 確認した所、パッケージ 「collectd」 がサーバにインストールされていないことが原因でした。 EC2 インスタンスを自動的にで停止および起動することで、Amazon Elastic Compute Cloud (Amazon EC2) の使用量を削減したいと考えています。そのための、AWS Lambda と Amazon CloudWatch Events の使い方を教えてください。 簡単な説明. Systems Manager オートメーション. 検索窓に 「AmazonCloudWatch-ManageAgent」 と入力後、 2.2. まずは対象の EC2 インスタンスに対して CloudWatch Agent のセットアップを行います。 セットアップは以下のエントリを参照して行ってください。 新しいCloudWatch Agentでメトリクスとログの収集が行なえます 監視はそこそこしたいですが、追加料金が適用される場合があるようです。, 詳細はわかりませんでしたが、コアごとにメトリクスが収集されるため、 廃止予定なので、もしご使用であればタイミングで移行したいですね。, ログファイルを監視するかなので、今回は「2」を指定します。 のウィザードを使用して作成していきます。 【AWS】CloudWatch入門/EC2のステータスチェックを行ってみよう [CloudWatch]グラフの確認方法と確認できるグラフ一覧(EC2/ELB/RDS) さいごに. 前述の通り、パラメータストアに保存するので「1」を指定します。, パラメータストアに保存する際の、”パラメータストアの名前”を指定します。