Skip to content

チェックプラグイン - check-tcp

check-tcp はTCPによるサーバーとの接続監視を行うプラグインです。

指定可能なオプション

オプション省略形説明初期値
--serviceサービス名を指定(対応サービス一覧を参照)
--hostname-H疎通確認先のホスト名もしくはIPアドレス
--port-p疎通確認先のポート番号
--send-sサーバーに送信する文字列
--expect-pattern-eサーバーからのレスポンスに期待する正規表現パターン
--quit-qサーバーから切断する際に送信する文字列
--ssl-STLS接続の要否false
--unix-sock-Uunixソケット
--no-check-certificate証明書検証の実施要否false
--status-as監視ステータスの上書き。たとえば UNKNOWN=CRITICAL と記述した場合、監視ステータスが UNKNOWN のときは CRITICAL になる。カンマ区切りで複数指定が可能
--timeout-t接続タイムアウト時間(秒)10
--maxbytes-m指定バイト数以上のデータを受信した場合にコネクションを切断
--delay-dデータ送信してから応答をポーリングするまでの待ち時間(秒)
--warning-wWarningとする応答時間(秒)
--critical-cCriticalとする応答時間(秒)
--escape-E--quitで指定した文字列に\n \r \t \\ を含む場合にエスケープを行う(未指定の場合は--quitで指定した文字列の末尾に\r\nを追加)false
--error-warning-Wプラグインが異常終了した際のアラートステータスをWARNINGに設定するCRITICAL
--expect-closed-Cポート/unixソケットが閉じられているかを確認する。閉じているならOK、開いているなら--error-warningオプションの設定によってCriticalまたはWarningとなる。このオプションは接続のみを検査するfalse

対応サービス一覧

--serviceに対応したサービス名を指定すると、各サービス名に対応したオプションによるチェックをします。

サービス名--port--send--expect-pattern--quit--ssl
FTP21^220QUIT
POP110^\+OKQUIT
SPOP995^\+OKQUIT
IMAP143^\* OKa1 LOGOUT
SIMAP993^\* OKa1 LOGOUT
SMTP25^220QUIT
SSMTP465^220QUIT
GEARMAN7003version\n\A[0-9]+\.[0-9]+\n\z

エージェントへの設定例

localhost4224番ポートの接続をチェックし、接続に3秒以上かかる場合はWarning、5秒以上かかる場合はCriticalとする設定は以下のようになります。

toml
[plugin.checks.check-tcp-sample]
command = ["check-tcp", "-H", "localhost", "-p", "4224", "-w", "3", "-c", "5"]

上記設定をターミナルなどから直接実行して確認するには、以下のように実行してください。

check-tcp -H localhost -p 4224 -w 3 -c 5

IPv6アドレスを指定する場合は[::1]のように半角括弧[]で囲む形式で指定します。

toml
[plugin.checks.check-tcp-v6-sample]
command = ["check-tcp", "-H", "[::1]", "-p", "4224", "-w", "3", "-c", "5"]

Tips

check-tcpプラグインは接続チェックの際に、簡易的なメッセージのやりとりの正しさをチェックできます。

--service オプションを指定すると、対応しているプロトコルに応じたメッセージのチェックを併せて行いますが、--send--expect-patternを合わせることで独自プロトコルの監視にも代用できます。

例えばHTTPレスポンスのステータスラインのリーズンフレーズが想定したメッセージであることをチェックするには、以下のような設定ができます。

toml
[plugin.checks.tcp_http404]
command = ["check-tcp", "-H", "localhost", "-p", "80", "-s", "GET / HTTP/1.1\\r\\n\\r\\n", "-e", "HTTP/1.1 404 Bad Request", "-E"]

事前に動作確認する場合は、以下のように実行します。

check-tcp -H localhost -p 80 -s "GET / HTTP/1.1\r\n\r\n" -e "HTTP/1.1 404 Bad Request" -E

リポジトリ

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