TCPサーバーの確認を行う

公式チェックプラグイン集の check-tcp を使ってTCPサーバーの監視をおこなうことができます。公式チェックプラグイン集のインストールは、チェック監視に公式チェックプラグイン集を使う をごらんください。

HTTPサーバーの確認を行う

以下はHTTPのアプリケーションサーバーに対して、 GET / HTTP/1.0\r\n\r\n というリクエストを送り、レスポンスに "OK Farm" が含まれているかどうかの確認をおこなう設定です。 --escape オプションを指定することで、--send の引数に含まれる "\r""\n" などの文字が、改行文字として扱われるようになります。

また、接続にかかった秒数に対して閾値が設定でき、下記の場合だと、3秒以上かかった場合にWarning、10秒以上の場合にCriticalが発生します。

[plugin.checks.tcp_app]
command = '''
  check-tcp             \
    --hostname localhost               \
    --port     5000                    \
    --send    'GET / HTTP/1.0\r\n\r\n' \
    --escape                           \
    --expect-pattern 'OK Farm'         \
    --warning 3 --critical 10
'''

サービスを指定して利用する

もちろん、HTTP以外のサーバーのチェックも可能です。いくつかのサービスに関しては --service オプションを指定することで、複雑な指定すること無しに標準的なチェックをおこなえるようになっています。例えばFTPの場合だと以下のようになります。

[plugin.checks.ftp]
command = "check-tcp --service=ftp -H localhost"

これは以下と等価の設定になっています。

[plugin.checks.ftp]
command = '''
  check-tcp  \
    -H localhost --port 21  \
    --expect-pattern '^200' \
    --quit QUIT
'''

--service オプションに指定可能な設定は、FTP, POP, SPOP, IMAP, SIMAP, SMPT, SSMTPとなっています。

その他のオプションに関しては check-tcp --helpREADME をご確認下さい。

ソースコードについて

check-tcpのソースコードは以下に公開されています。

https://github.com/mackerelio/go-check-plugins/tree/master/check-tcp