先日にLambdaで外形監視を行ってDatadogでアラートを出させるという内容を書いたけど、それとは別でSSLの証明書についても監視をさせたいということがあった。 で、同じようにLambdaで証明書の残日数を取得してDatadogに連携させ、Datadog側で残日数以下の場合にはアラートを出させる事で対応できそうだったので、やってみることにした。

以下のようなNode.jsのコードをLambdaで定期実行(1日1回くらいでいいと思う)させ、Datadogにメトリクスとして証明書の残日数を通知させる。 (※サンプルコードってことでタイムアウト等の際は何もしてないけど、本当にちゃんとやるならタイムアウト時にもDatadogへのポストで関数作って呼び出したほうが良いと思う)


Lambdaで外形監視をしてサービスダウンしたらDatadogでアラートを出させる

Datadogで監視をしているシステムで外形監視をしたいということがあったのだけど、Datadogで用意されている外形監視の方法というのがDatadogエージェントが必要になってしまう。 それだと監視用のホストで余分にお金がかかってしまうので、Lambdaから1分間隔で監視をして、連続してアクセスできなかった回数をメトリクスとしてDatadogに転送させることで外形監視をさせることにした(3回連続で失敗したらアラートを出させる)。

Lambdaの環境変数を使っているので、「ERR_COUNT」でデフォルト値0で定義しておくのを忘れずに行うこと。 httpステータスが200以外の場合はア...


GraylogからDatadogにアラートを転送する

特定のログが来た際にGraylogからDatadogにアラートを出す場合は、プラグインを導入してやればよい。
まず、Graylogサーバ側で以下のコマンドを実行してプラグインをインストールしてやる。

cd /usr/share/graylog-server/plugin/
sudo wget https://github.com/underdogio/graylog-plugin-datadog/releases/download/v1.0.3/graylog-plugin-datadog-1.0.3.jar
sudo systemctl restart graylog-server

LinuxのコンソールなどからコマンドでDatadogのDashboardとかを編集したり、イベントの通知をする場合はDatadogpyなどを用いれば良いのだが、Windows Server上からコマンドで実行させたい事があった。
で、結論としてはDatadogではRestAPIが用意されているので、PowerShellでそれ経由で処理させれば良い。

●datadog-sample.ps1

# ----------------------
# Datadog Powershellイベント通知スクリプト(Sample)
# ----------------------

$url_...

仕事でDatadogを使用しているのだが、Dashboard上でクライアントから取得した文字列(プログラムのバージョンとか)を表示させたいので少し調べてみた。
で、以下のようなアドバイスを頂いたので実際にやってみる事にした。

なお、DatadogではすでにApplicationKeyを発行済みとする。


dogwrapコマンドでDatadogへコマンドの実行結果を連携する

監視でDatadogを使っているのだけど、プロセスダウンとかしきい値を跨いだ際の挙動についてはDatadog側で動作させることが可能なのだが、例えば既存のスクリプトをキックした際にヘルスチェックで引っかかった場合などにアラートを飛ばすなどの処理をしたい時がある。そんな場合には、Datadog側で用意しているコマンドツール『dogwrap』を使うと良いようだ。

『dogwrap』は、指定したコマンドを実行して、その出力結果をDatadogへ連携してくれるツールだ。
これで、既存のスクリプト実行時にエラーになった場合はDatadogに連携するようにすれば、既存のスクリプトを使いまわせるだろう...


Datadogで特定のプロセス数を監視(プロセス数がXX個以下、△△個以上だったらアラート出す)したい場合、Datadogの設定画面からの操作ではなく、まず各サーバに配布するDatadog Agentの設定ファイルに対象のプロセスとその閾値を設定してあげる必要がある。

対象プロセスとその閾値は、「/etc/dd-agent/conf.d/process.yaml」で設定できる。