NewRelicでSSLの有効期限チェック
SSL証明書の更新漏れをしてしまったダメエンジニアの提供でお送りします。Let's Encrypt の自動更新が失敗してそれに気づかず、ツラミを経験したのでキチンと監視します!
NewRelicについて
私の所属している会社のインフラ監視ではNewRelicを導入して監視運用しております。2020年 に料金体系の大幅な改定があり、小規模なサービスでは無料枠でも十分活用できると思います!大好き!NewRelic!
NewRelicの証明書の有効性確認の機能について
NewRelicは、Synthetics の Ping監視で外形的なWEB監視ができますが、
Verify SSL にチェックを入れることでSSLの有効性も確認できます。
が、残念ながら証明書の有効期限が切れないと、Alertが発火されません。
有効期限切れに事前に気づくには、公式のBlogを参考にAPI Test用のスクリプトを書く必要があります。
API Test での SSL有効期限監視
Syntheticsでサイトの証明書の期限を監視する
こちらの記事でやり方が記載されています。これで万事OK!\(^o^)/
だったら良いのですが、
監視対象のドメインが増えるたびにスクリプトに直接ドメインを追加する必要があります。こういうの、追加が漏れがちですよね?
SyntheticsのPing監視項目をもとに動的に監視する
ということで、通常のPing監視を追加すれば、勝手にSSLの有効期限も監視するよう、「Syntheticsでサイトの証明書の期限を監視する」で紹介されているスクリプトに少し手を入れて動的に監視するようにしました。
ポイント
* 以下のAPIで Ping監視している URLを取得します。
- https://synthetics.newrelic.com/synthetics/api/v3/monitors
* 取得には、NewRelicのAPIキーが必要なので、「Secure Credentials」にNEWRELIC_API_KEYという環境変数を定義してAPIキーを渡しています。
* 同一ドメインは重複しないように、httpは省くようにしています。
* その他は、「Syntheticsでサイトの証明書の期限を監視する」こちらの記事に準拠しているので、必要に応じてAlert設定など行えばOKです。
* ※Javascript書き慣れていないので 多分アレなコードです。。。