この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
おはようございます、もきゅりんです。
掲題の通り、公式チェックプラグイン集をインストールして、ping監視、sshログイン監視、ユーザー追加、パスワード変更監視を設定してみました。
前提
- Mackerelのアカウントを取得している
- インターネット接続およびSSHログインできるEC2インスタンスがいる
やること
- とりあえずMackerel-Agentをインストールする
- プラグインをインストールする
- ping監視/テスト
- ユーザー追加、パスワード変更監視/テスト
1. とりあえずMackerel-Agentをインストールする
この手順については、ザッと進めてしまいます。
SSMで対応するわけでも、Ansibleで対応するわけでもUserData使うわけでもなく、手動でインストールします。
今回はAmazon Linux2で対応しています。
Mackerelの管理画面から出力される、こちらのコマンドを対象のサーバで実行します。
ちょっとすると、Hosts画面にサーバが追加されるはずです。
2. プラグインをインストールする
こちらを参考に、
プラグインをインストールします。
sudo yum install mackerel-check-plugins
インストールできたら、下記、ping、sshログイン、ユーザ追加、パスワード変更それぞれを監視する設定を行い、テストしてみます。
3. ping監視/テスト
この例では、同VPC内にもう1つサーバを作成してテストします。
セキュリティグループを作成して、pingされるサーバに設定しておきます。
confファイルに設定を記述します。
# /etc/mackerel-agent/mackerel-agent.conf
# 追記
[plugin.checks.check-ping-sample]
command = ["check-ping", "-H", "TARGET_INSTANCE_IP", "-n", "5", "-w", "100"]
再起動します。
# mackerelの設定エラーを確認
mackerel-agent configtest
sudo systemctl restart mackerel-agent
設定した監視項目が増えています。
サーバを落とす、セキュリティグループを変更するなどしてみると、
アラートメールが送信されます。
Hosts画面ではアラート表示されています。
うまくいきましたね。
4. ユーザー追加、パスワード変更監視/テスト
次にユーザー追加、パスワード変更監視です。
こちらを参考に、
/var/log/secure
のsession opened
とnew user
、password changed
の文言からアラートを呼び出すようにしてみます。
先ほど同様、confファイルにそれぞれの設定を追記します。
# /etc/mackerel-agent/mackerel-agent.conf
# 追記
[plugin.checks.ssh_open]
command = ["check-log", "--file", "/var/log/secure", "--pattern", "session opened"]
# 自動クローズ防止
prevent_alert_auto_close = true
[plugin.checks.user_add]
command = ["check-log", "--file", "/var/log/secure", "--pattern", "new user"]
prevent_alert_auto_close = true
[plugin.checks.password_changed]
command = ["check-log", "--file", "/var/log/secure", "--pattern", "password changed"]
prevent_alert_auto_close = true
監視項目が増えています。
sshでサーバーにログインして、ユーザ追加、パスワード変更を続けて実行します。
# ユーザー追加
sudo useradd hoge
# パスワード変更
sudo passwd hoge
まっかっかになりました。
手動でアラートを閉じます。
元の緑色に戻りました。
かなり簡単にチェック項目を増やすことが出来ますね。便利でございます。
以上です。
どなたかのお役に立てば幸いです。