Help us understand the problem. What is going on with this article?

AWS Sysmtems Manager OpsCenterで増えすぎたOpsItemを一括で解決済みにする

AWSCLI ワンライナー

以下をご使用ください。

$ aws ssm describe-ops-items --ops-item-filters '{"Key":"Status","Values":["Open"],"Operator":"Equal"}' --query 'OpsItemSummaries[*].OpsItemId' --output table | grep "oi-" | awk '{print $2}' | while read line; do echo update item: $line; aws ssm update-ops-item --status Resolved --ops-item-id $line; done

ステータスが未解決(Open)の Item を何も考えずに一括で解決済み(Resolved)に
変更してしまうのでご注意ください。
以降は解説です。

OpsCenter とは

2019年6月に追加された Systems Manager の新しい機能です。
CloudWatch Events と連携して AWS リソースの運用上の問題、イベント、アラート等を
OpsItems として集中管理する機能を提供します。

AWS Systems Manager OpsCenter
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/OpsCenter.html

OpsItem の作成のしくみと蓄積

OpsItem を作成するには大きくわけると2つの方法があります。

  • コンソールや OpsCenter API を通して手動で作成する
  • CloudWatch Events で各種イベントを検知し、自動作成する

後者の CloudWatch Events ルールは自身で作成してもよいのですが、基本的なルールは
AWS 側であらかじめ用意されており、OpsCenter のコンソールから設定することが可能です。

image.png

基本的な運用イベントが網羅されていてとても便利なのですが、アカウントの用途によっては
EC2 の停止または終了は頻繁に発生するため、これがノイズになってしまうこともあります。

実際に開発用の環境で OpsCenter を検証していたところ
未解決イベントが大量に溜まってしまいました。

image.png

各 OpsItem を手動で解決済みにしていってもよいのですが、数が増えてくると大変辛い。

image.png

対策

CloudWatch Events ルールの無効化

基本設定で不要なルールは、CloudWatch Events で個別にルールを無効化すれば
Item の自動登録を止めることができます。

image.png

AWSCLI によるステータス変更

冒頭のコマンドを改行ありで記載すると以下のような感じになります。

$ aws ssm describe-ops-items \
> --ops-item-filters '{"Key":"Status","Values":["Open"],"Operator":"Equal"}' \
> --query 'OpsItemSummaries[*].OpsItemId' --output table |
> grep "oi-" |
> awk '{print $2}' |
> while read line;
> do echo update item: $line; 
> aws ssm update-ops-item --status Resolved --ops-item-id $line;
> done
update item: oi-xxxxxxxxxxxx
update item: oi-yyyyyyyyyyyy
update item: oi-zzzzzzzzzzzz
.
.
以下略

describe-ops-items コマンドでステータスが Open の OpsItemId を抜き出し、
各IDに対して、update-ops-item コマンドでステータスを Resolved に変更しています。

注意点としては describe-ops-items が一度に最大で50件までしかリストできないので
上記のコマンドも50件しか処理できません。
50件以上溜まっている場合、Open状態のアイテムが無くなるまで繰り返し実行する必要があります。

以上です。
参考になれば幸いです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away