Datadogのhttp_checkでSSL証明書の有効期限チェックを行う


いつからサポートされていたかは追えてないですが、Datadog の agent に同梱されているhttp_checkを用いることで、Datadog の Agent から任意のサイトの SSL 証明書の有効期限チェックを行うことができます。

以前はこのような機能がhttp_checkにはなかったと思いますが、少なくとも Version 6後のリポジトリの History で当該機能の追加コミットが見当たらないので、その前から機能としては存在していたと思います。

設定としては、以下のように conf.yaml を設定して、Datadog Agent を restart するだけです。

init_config:

instances:
  - name: sada
    url: https://www.sada.co.jp/
    timeout: 1
    method: get
    check_certificate_expiration: true
    days_warning: 30
    days_critical: 7

有効期限の何日前になったらアラートを飛ばす、という事も設定できるようです。
上記では、30日前になったら Warning、7日前になったら Critical のアラートを送るように設定しています。

agent check コマンドの実行結果は以下。

=== Series ===
{
  "series": [
    {
      "metric": "network.http.response_time",
      "points": [
        [
          1540875810,
          0.09294414520263672
        ]
      ],
      "tags": [
        "env:prd",
        "site:sada",
        "url:https://www.sada.co.jp/"
      ],
      "host": "hogehoge",
      "type": "gauge",
      "interval": 0,
      "source_type_name": "System"
    },
(snip.)
    {
      "metric": "http.ssl.days_left",
      "points": [
        [
          1540875810,
          338
        ]
      ],
      "tags": [
        "env:prd",
        "site:sada",
        "url:https://www.sada.co.jp/"
      ],
      "host": "hogehoge",
      "type": "gauge",
      "interval": 0,
      "source_type_name": "System"
    },
(snip.)

Metrics Explorer での表示は以下のような感じになります。