Mackerelでは、アラートの内容のJSONをAmazon EventBridgeで受け取れます。通知を受け取った後の処理をAWS Lambdaなどを用いて自動化したい場合などに重宝するでしょう。
Amazon EventBridgeへの通知を追加する
コンソール画面で設定する
通知の設定は、チャンネルページのAmazon EventBridgeのフォームから、追加ができます。ご利用のAWSのアカウントID、通知を受け取るAWSリージョン、通知を識別するためのイベント名を指定して下さい。

- AWSのアカウントIDの確認方法は、AWS アカウント ID - AWS 全般のリファレンスを参照してください。
- Amazon EventBridgeでのMackerelのイベントソース名は以下のように作られます。
aws.partner/mackerel.io/{オーガニゼーション名}/{お客様が指定したイベント名}
AWSコンソールで連携設定をする
Mackerelでの設定が完了したら、Amazon EventBridgeでイベントバス・ルールを作成し、Mackerelからの通知を受け取れるようにする必要があります。
- AWSコンソールのパートナーイベントソースのページを開きます。
- コンソールの操作するリージョンを、Mackerelで設定した通知を受け取るAWSリージョンに切り替えてください。
- 追加したイベントソースを選択し、右上にある イベントバスと関連付ける ボタンを押してください。
- イベントバスと関連付ける画面で必要なアクセス許可を選択し、 関連付ける ボタンを押してください。
- 左のパネルの、ルールのページを開き、イベントバスのドロップダウンリストから、作成したイベントバスを選択し、下部に表示されている ルールを作成 をクリックします
- ルールを作成画面では、名前、パターン、ターゲットを設定し、イベントバスの選択では、 カスタムイベントまたはパートナーイベントバス を選択し、追加したイベントバスを設定します。
JSONフォーマット
通知されるJSONは以下のような内容を含んでいます。 (項目は任意のタイミングで追加される場合があります)
{ "orgName": "Macker...", "event": "alert", "memo": "memo....", "host": { "id": "22D4...", "name": "app01", "url": "https://mackerel.io/orgs/.../hosts/...", "type": "unknown", "status": "working", "memo": "", "isRetired": false, "roles": [ { "fullname": "Service: Role", "serviceName": "Service", "serviceUrl": "https://mackerel.io/orgs/.../services/...", "roleName": "Role", "roleUrl": "https://mackerel.io/orgs/.../services/..." } ] }, "alert": { "openedAt": 1473129912, "closedAt": 1473130092, "createdAt": 1473129912693, "statusChangedAt": 1473130092, "criticalThreshold": 1.9588528112516932, "duration": 5, "isOpen": true, "metricLabel": "MetricName", "metricValue": 2.255356387321597, "monitorName": "MonitorName", "monitorOperator": ">", "status": "critical", "trigger": "monitor", "id": "2bj...", "url": "https://mackerel.io/orgs/.../alerts/2bj...", "warningThreshold": 1.4665636369580741 }, "resourceInfo": { "service":"ec2", "region":null, "accountId":null, "resourceType":"instance", "resourceId":"i-12345..." } }
JSONの各項目
| KEY | TYPE | DESCRIPTION |
|---|---|---|
| orgName | string | アラートが発生しているオーガニゼーションの名前 |
| event | string | alert固定 |
| memo | string | 監視ルールのメモ |
| host | object | ホスト情報(ホストメトリック時のアラートのみ出力) |
| service | object | サービス情報(サービスメトリック時のアラートのみ出力) |
| alert | object | アラート情報 |
| resourceInfo | object | AWSのリソース情報(対応しているコンポーネントの場合のみ出力) |
JSONの各項目(ホスト情報)
| KEY | TYPE | DESCRIPTION |
|---|---|---|
| id | string | ホストID |
| name | string | ホスト名 |
| url | string | ホスト詳細のURL |
| status | string | ホストステータス(working, standby, poweroff, maintenance) |
| memo | string | ホストに登録されているメモ |
| isRetired | boolean | 退役済みかどうか |
| roles | array[object] | ロール情報(ホストにロールが設定されている場合) |
JSONの各項目(ロール情報)
| KEY | TYPE | DESCRIPTION |
|---|---|---|
| fullname | string | サービス名:ロール名 |
| serviceName | string | サービス名 |
| serviceUrl | string | サービス詳細のURL |
| roleName | string | ロール名 |
| roleUrl | string | サービス詳細中のロールのURL |
JSONの各項目(サービス情報)
| KEY | TYPE | DESCRIPTION |
|---|---|---|
| id | string | サービスID |
| memo | string | サービスに登録されているメモ |
| name | string | サービス名 |
| orgId | string | サービスが登録されているオーガニゼーションのID |
| roles | array[object] | ロール情報(サービスにロールが登録されている場合) |
JSONの各項目(クエリによる監視のメトリック情報)
| KEY | TYPE | DESCRIPTION |
|---|---|---|
| labels | object | メトリックのラベル。例: { "http.method": "GET", "http.status_code": "200" } |
| name | string | メトリック名。例: httpcheck.status |
JSONの各項目(アラート情報)
| KEY | TYPE | DESCRIPTION |
|---|---|---|
| id | string | アラートのID |
| status | string | アラートのステータス(ok, warning, critical, unknown) |
| isOpen | boolean | アラートのオープンの状態 |
| trigger | string | 通知が送信されたトリガー(monitoring(監視), manual(手動操作), monitorDelete(監視ルール削除), hostRetire(ホスト退役)) |
| url | string | アラート詳細のURL |
| openedAt | number | アラートの発生時刻(エポック秒) |
| closedAt | number | アラートの解決時刻(エポック秒) |
| statusChangedAt | number | アラートのステータスが変わった時刻(エポック秒) |
| createdAt | number | アラートの発生時刻(エポックミリ秒)。非推奨で廃止予定。openedAtをご利用ください |
| monitorName | string | アラートを検知した監視項目名 |
| metricLabel | string | 監視対象のメトリックなどの名称 |
| metricValue | number | アラート検知時のメトリックの値 |
| criticalThreshold | number | CRITICALの閾値 |
| warningThreshold | number | WARNINGの閾値 |
| monitorOperator | string | > or < |
| duration | number | 監視間隔 |
※アラート情報の項目は、監視対象の種類(ホストメトリック, サービスメトリック, 外形監視, 式による監視, クエリによる監視)やそれぞれの設定項目によって増減します。たとえば外形監視でURLのみ設定されている場合のアラートではメトリックや閾値などの情報はアラートに含まれません。監視対象の種類と出力される項目は、監視ルール設定画面で入力可能な項目と対応します。
JSONの各項目(AWSのリソース情報)
EC2 の場合
mackerel-agentまたはAWSインテグレーションを導入しているEC2インスタンスで、アラートが発生した場合に、Mackerelですでに取得している情報*1を、ARN形式のフォーマットに従ったフィールドの情報を返却します。
| KEY | TYPE | DESCRIPTION |
|---|---|---|
| service | string | [optional] サービス名 ec2 |
| region | string | [optional] リージョン名 |
| accountId | string | [optional] AWSアカウントID |
| resourceType | string | [optional] リソースの種別 instance |
| resourceId | string | [optional] リソースID(EC2 インスタンスID) i-12345... |
*1 ただし、mackerel-agentの設定で cloud_platform を none としている場合は、これらの情報を取得できません。




