fluentd
fluent-plugin-mackerel
fluent-plugin-webhook-mackerel
クライアントライブラリ
mkr
mackerel-client-ruby
mackerel-agentプラグイン集
- mackerel-agent-plugins
chefレシピ
- cookbook-mackerel-agent
fluent-plugin-mackerel
fluent-plugin-webhook-mackerel
mkr
mackerel-client-ruby
Mackerelでは、登録しているホストを監視し、状況に応じてアラートを通知できます。
ステータス | 監視 | 通知 |
---|---|---|
working | される | される |
standby | される | されない |
maintenance | されない | されない |
poweroff | されない | されない |
ホストを退役させた際には、そのホストに関連するアラートは自動的に閉じられます。この自動的に閉じられたアラートの復旧通知は送られません。
ホストステータスの変更時には、アラートに対する自動的な操作は一切おこなわれません。
"standby" 状態時に発生したアラートは、その後ホストステータスを "working" に変更したとしても、アラートの発生通知はおこなわれません。このケースでは、その後アラートの状態が変更された場合か、通知の再送間隔が設定されており、その間隔が過ぎた場合に通知がおこなわれます。
ホストステータスを "maintenance" や "poweroff" に変更した場合、その時既に発生していたアラートについては、その後閾値異常や疎通が回復したとしても自動的には閉じられません。"working" や "standby" にステータスを戻し、異常状態が回復すればアラートは自動的に閉じられます。
監視ルール一覧画面 で監視ルールを一覧できます。画面右上の「監視ルールを追加」から監視ルールを新規作成できます。
mackerel-agentをインストール・起動したホストに対しては、死活監視が自動的に行なわれます。
死活監視はmackerel-agentからのメトリックの定期投稿を監視しています。一定期間この投稿がない場合、Mackerelはそのホストに異常が発生したと判断してアラートを発生させます。
ホストやサービスに投稿されたメトリックに対して、閾値による監視を行えます。閾値にはWarningとCriticalの2段階を設定可能です。
監視ルールには以下の項目が含まれます。
オプション
注意事項
平均値は最新のメトリックから指定した点数分過去に遡ったメトリックの合計値から算出されます。指定した時間(分)ではない点に注意してください。
以下は最新のメトリックのタイムスタンプが 15:10 の場合に、平均値がどのタイムスタンプの値をもとに算出されるかを示した例です。
タイムスタンプ | 値 | 3点平均 | 5点平均 | 10点平均 |
---|---|---|---|---|
15:00 | 1 | ✓ | ||
15:01 | 1 | ✓ | ||
15:02 | 1 | ✓ | ||
15:03 | 1 | ✓ | ||
15:04 | 1 | ✓ | ||
15:05 | 1 | ✓ | ✓ | |
15:06 | null | |||
15:07 | 1 | ✓ | ✓ | |
15:08 | 1 | ✓ | ✓ | ✓ |
15:09 | 1 | ✓ | ✓ | ✓ |
15:10 | 1 | ✓ | ✓ | ✓ |
メトリックのタイムスタンプが1分間隔ではない場合も算出方法は同じですが、24時間以内に指定した点数分のメトリックが存在しない場合は、平均値を算出できません。たとえば、1日に1度しか投稿されないメトリックの場合、2点以上の平均値監視を設定しても動作しません。
クラウドインテグレーションやメトリック投稿の API などによって、タイムスタンプの異なる複数のメトリックが同時に投稿された場合、監視ルールはその時の最新のメトリックの値を監視対象にします。
たとえば以下のように 5 分間のメトリックが同時に投稿された場合、監視ルールは 15:05 の値に対して動作します。もし 15:05 よりも前の値が監視条件の閾値を超えていたとしても、アラートは発生しません。
タイムスタンプ | 値 |
---|---|
15:01 | 1 |
15:02 | 2 |
15:03 | 3 |
15:04 | 4 |
15:05 | 0 |
平均値監視やアラート発生までの最大試行回数に関しても、最新のメトリックの値を基準に動作します。
この仕様により、グラフ上ではアラートが発生する状況に見えても、アラートが発生しないケースがある点にご留意ください。
URL外形監視を行う を参照してください。
式による監視を行う を参照してください。
ロール内異常検知による監視を行う を参照してください。
クエリによる監視を行う を参照してください。
アラート一覧画面でアラートを確認できます。
発生したアラートは異常状態が回復すれば(ホストからの疎通が復活する・メトリックが閾値を外れる)自動的に閉じられますが、アラート一覧画面や個別のアラート画面から「アラートを閉じる」ボタンにより手動で閉じることもできます。
アラート設定より、アラート通知を一時的・恒久的に抑制できます。この設定がDisabledまたはSuspendedになっている場合、アラートが生成される際に通知を行いません(アラートの生成は通常どおり行われます)。
アラートをまとめるアラートグループ機能については以下のドキュメントを参考してください。
Mackerelは、アラートが生成された際・アラートの状態に変化があった際・閉じられた際に通知をおこないます。
通知チャンネルの設定より、アラートの通知チャンネルを編集できます。対応している通知チャンネルはEメールとWebhookの他に、Slack、TypeTalk、Chatwork、PagerDuty など多くのWebサービスと連携可能になっています。対応チャンネルは随時追加していきます。
メールブロードキャストはそのオーガニゼーションに所属しているすべてのメンバーにメールを一斉送信します(アカウント設定により受け取らないように変更できます)。その他の通知チャンネルの設定の詳細については、ヘルプのサイドバー「アラート/alerts」をご確認下さい。
アカウント設定ページのメール通知で「アラート通知」をOffにすると、通知メールを受信しない設定にできます。この設定はチャンネル設定の「通知するイベント」すべてが対象になります。
監視ルール一覧画面で操作することにより、監視ルール単位で通知の抑制(ミュート)を設定できます。
Web API からも設定可能です。一時的に通知を抑制したい場合などに活用してください。
Mackerelでは、通知グループを作成することでチームの通知チャンネルに特定のサービスの通知のみを行うなどの柔軟な通知条件を設定できます。通知グループは通知チャンネルと同じように通知チャンネル設定のページから作成することが出来ます。
設定したサービス/監視ルールに関する通知のみが、通知グループに所属するチャンネルに送られるようになります。
オーガニゼーションにはそれぞれ一つ全ての通知を受け取るデフォルト通知グループが存在します。新しい通知チャンネルを登録した時は自動的にデフォルト通知グループに所属します。
通知グループの通知対象に監視ルールを設定する際、監視ルール名の左にあるアイコンをクリックして「この通知グループのみに通知する」オプションを有効にすると、設定した監視ルールからの通知はその通知グループにのみ通知され、他の通知グループには通知されなくなります。
CPU%
と connectivity
の監視ルールによるアラート通知は 運用チームの Chatwork に通知し、それ以外は Email と Slack に通知する場合は下図のようになります。
Critical only
がOnの場合、Warningは通知されません。詳細な通知条件は以下のとおりです。
GitHub - mackerelio/cookbook-mackerel-agent: Chef cookbook for mackerel-agent installation を利用するとmackerel-agentを簡単にセットアップできます。
cookbook の管理に Berkshelf をお使いの場合は Berksfile
に以下の設定を追加してください。
cookbook 'mackerel-agent'
お使いの chef cookbook の recipe に以下の設定を追加してください。 'Your API KEY' にはオーガニゼーションページにて表示されるAPIキーを指定してください。Chef 用の API キーを新規作成することを推奨します。
node.default['mackerel-agent']['conf']['apikey'] = 'Your APIKEY' include_recipe 'mackerel-agent' include_recipe 'mackerel-agent::plugins' # Option for installation of mackerel-agent-plugins package
次のようなアトリビュートを用意しています。
default['mackerel-agent']['conf']['apikey']
については「使い方」のように、必ず指定する必要があります。
default['mackerel-agent']['conf']['apikey'] = "YOUR APIKEY" default['mackerel-agent']['conf']['pidfile'] = "/path/to/pidfile" default['mackerel-agent']['conf']['root'] = "/var/lib/mackerel-agent" default['mackerel-agent']['conf']['verbose'] = false default['mackerel-agent']['conf']['roles'] = ["My-Service:app", "Another-Service:db"] # ホストのカスタムメトリックプラグインの指定 default['mackerel-agent']['conf']['plugin.metrics.vmstat'] = { 'command' => '["ruby", "/etc/sensu/plugins/system/vmstat-metrics.rb"]', }
ホストのカスタムメトリックについては、以下のエントリを参照してください。