プロジェクト一覧に戻る
DW

dns-watchdog

ツール

Slack通知付きDNSレコード監視ツール

概要

dns-watchdog は DNS レコードを監視し、不一致を検知した際に Slack で通知するツールです。DNS-over-HTTPS(Google Public DNS)を使用してクエリを行うため、ローカルリゾルバや OS の設定に依存しません。

シングルバイナリの CLI ツールと GitHub Action の両方で利用可能。オンデマンドでも CI でのスケジュール実行でも簡単に使えます。外部監視サービスに頼らず DNS 設定を検証したい個人や小規模チームに最適です。

機能

  • A / MX / TXT / NS / CNAME レコードの監視
  • 完全一致と部分一致の2つのマッチモード
  • 不一致検知時の Slack Webhook 通知
  • DNS-over-HTTPS(Google Public DNS)によるクエリ
  • シングルバイナリ、ゼロランタイム依存
  • CLI + GitHub Action 対応
  • クロスプラットフォーム: Linux, macOS, Windows(amd64/arm64)

インストール

go install github.com/daigotanaka0714/dns-watchdog@latest

クイックスタート

config.yml を作成:

domain: example.com
checks:
  - type: A
    name: "@"
    expected:
      - "93.184.216.34"
  - type: TXT
    name: "@"
    contains: "v=spf1"
notify:
  slack_webhook_env: "SLACK_WEBHOOK_URL"
  template: "default"

チェックを実行:

SLACK_WEBHOOK_URL=https://hooks.slack.com/... dns-watchdog

GitHub Action で cron スケジュール実行も可能:

name: DNS Watchdog
on:
  schedule:
    - cron: "0 */6 * * *"
  workflow_dispatch:

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: daigotanaka0714/dns-watchdog@v1
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
          DNS_WATCHDOG_CONFIG: ./config.yml

技術スタック

Go

Go

主要言語

DoH

DNS-over-HTTPS

dns.google

S

Slack

Webhook通知

パッケージ情報

ライセンス MIT
種類 ツール
配布方式 GoReleaser