英語フランス語スペイン語

OnWorksファビコン

check_postgres_autovac_freezep - クラウドでオンライン

OnWorks の無料ホスティング プロバイダーで、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターで check_postgres_autovac_freezep を実行します。

これはコマンド check_postgres_autovac_freezep で、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できます。

プログラム:

NAME


check_postgres-Nagios、MRTG、CactiなどのPostgresモニタリングスクリプト

このドキュメントでは、check_postgresバージョン2.22.0について説明しています

SYNOPSIS


##すべてのシンボリックリンクを作成する
check_postgres --symlinks

## Postgresデータベース 'pluto'への接続を確認してください:
check_postgres --action = connection --db = pluto

##同じことですが、シンボリックリンクを使用します
check_postgres_connection --db = pluto

## 100を超えるロックの場合は警告、200を超える場合はクリティカル、20を超える場合は排他的
check_postgres_locks --warning = 100 --critical = "total = 200:exclusive = 20"

##ポート6543の現在のアイドル接続数を表示します。
check_postgres_txn_idle --port = 6543 --output = simple

##他にも多くのアクションとオプションがありますので、読み続けてください。

最新のニュースとドキュメントは、常に次の場所にあります。
http://bucardo.org/check_postgres/

DESCRIPTION


check_postgresは、XNUMXつ以上に対してさまざまなテストを実行するPerlスクリプトです。
Postgresデータベース。 psqlプログラムを使用して情報を収集し、
結果は、Nagios、MRTG、またはsimpleのXNUMXつの形式のいずれかになります。

出力 モード
「--output」オプションを使用して、出力を変更できます。 デフォルトの出力はnagiosです。
ただし、必要に応じて、スクリプトの上部でこれを変更できます。 現在のオプション
選択肢は Nagiosの, MRTG, シンプルな。 それぞれ出力引数を入力する必要をなくすため
時間の場合、-output引数が指定されていない場合、および出力のタイプは自動的に設定されます。
現在のディレクトリの名前には、出力オプションのXNUMXつが含まれています。 たとえば、
mrtgという名前のディレクトリで、 -シンボリックリンク 引数は
そのディレクトリから実行されるアクションが常にデフォルトで「mrtg」の出力になるようにします
--output = simpleのショートカットとして、-simpleと入力できます。これは、
ディレクトリの命名のトリック。

Nagios 出力

デフォルトの出力形式はNagios用で、これはXNUMX行の情報と
XNUMXつの特定の終了コード:

0(OK)
1(警告)
2(クリティカル)
3(不明)

出力行は、上記の単語のXNUMXつであり、コロンと、その内容の簡単な説明です。
測定されました。 追加の統計情報、およびコマンドの合計時間
取った、出力することもできます:引数に関するドキュメントを参照してください --ショーパフォーマンス,
--perflimit, - ショータイム.

MRTG 出力

MRTG出力はXNUMX行で、最初の行は常にXNUMXつの番号を示します。
重要性。 可能な場合、この数値は、
バイトですが、「true」または「false」のみを返すアクションの場合は1または0になることもあります。
check_postgres_versionとして。 XNUMX行目は追加の統計であり、次の場合にのみ使用されます。
いくつかのアクション。 XNUMX行目は「稼働時間」を示しており、使用されていません。 XNUMX行目は
説明と通常はデータベースの名前を示し、最初の行からの統計
から引っ張られましたが、アクションによって異なる場合があります。

一部のアクションはオプションを受け入れます --MRTG 出力をさらに制御するための引数。

各アクションの正確なMRTG出力の詳細については、各アクションのドキュメントを参照してください。

簡単な拡張で 出力

単純な出力は、MRTGのものの単純な切り捨てられたバージョンであり、単純に
最初の番号と他には何もありません。 これは、状態を確認したいだけの場合に非常に便利です。
しきい値に関係なく、何かの。 数値出力は次のように変換できます
KB、MB、GB、TB、またはEBを出力引数に追加します。次に例を示します。

--output = simple、MB

サボテン 出力

Cactiの出力は、同じ行にあるXNUMXつ以上のアイテムで構成され、単純な名前が付けられています。
コロン、そして数字。 現時点では、明示的なCacti出力を使用する唯一のアクションは
'dbstats'であり、この場合、Cactiのみであるため、-outputオプションを使用する必要はありません。
このアクションの出力。 他の多くのアクションでは、-simpleを使用するだけでCactiを作成できます
幸せ。

DATABASE インターフェイス OPTIONS


すべてのアクションは、データベースオプションの共通セットを受け入れます。

-H NAME or --host = NAME
NAMEで示されるホストに接続します。 名前のコンマ区切りリストにすることができます。
複数のホスト引数を使用できます。 ホストが指定されていない場合、デフォルトで「PGHOST」になります
環境変数またはホストがまったくない(ローカルUnixソケットを使用していることを示します)。
「--dbhost」を使用することもできます。

-p PORT or --port = PORT
指定されたポート番号を使用して接続します。 ポートのコンマ区切りリストにすることができます
番号、および複数のポート引数が許可されます。 ポート番号が指定されていない場合、デフォルト
「PGPORT」環境変数に。 これが設定されていない場合、デフォルトで5432になります。
「--dbport」も使用します

-デシベル NAME or --dbname = NAME
接続するデータベースを指定します。 名前のコンマ区切りリストにすることができ、
複数のdbname引数を使用できます。 dbnameオプションが指定されていない場合、デフォルトは
「PGDATABASE」環境変数。 それが設定されていない場合、デフォルトで「postgres」になります
psqlがバージョン8以降の場合、それ以外の場合は「template1」。

-u USERNAME or --dbuser = USERNAME
接続するデータベースユーザーの名前。 のコンマ区切りリストにすることができます
ユーザー名、および複数のdbuser引数を使用できます。 これが提供されていない場合は、
デフォルトは「PGUSER」環境変数です。それ以外の場合は、デフォルトで「postgres」になります。

--dbpass = PASSWORD
データベースに接続するためのパスワードを提供します。 このオプションの使用は非常に
落胆しました。 代わりに、.pgpassまたはpg_service.confファイルを使用する必要があります。

--dbservice = NAME
pg_service.confファイル内のサービスの名前。 バージョン9.0より前
Postgres、これはグローバルファイルであり、通常は/etc/pg_service.confにあります。 あなたがいる場合
Postgresのバージョン9.0以降を使用すると、次のファイル「.pg_service.conf」を使用できます。
スクリプトを実行しているユーザーのホームディレクトリ(例:nagios)。

このファイルには、接続オプションの簡単なリストが含まれています。 追加で渡すこともできます
--dbservice = "maindatabase sslmode = require"などのこのオプションを使用する場合の情報

このファイルのドキュメントは次の場所にあります。
http://www.postgresql.org/docs/current/static/libpq-pgservice.html

データベース接続オプションはグループ化できます。 --host = a、b --host = c -ポート= 1234
-ポート= 3344 a-1234、b-1234、およびc-3344に接続します。 一度設定すると、オプションに注意してください
再び変更されるまで持ち越されます。

例:

--host = a、b --port = 5433 --db = c
データベースcを使用して、ポート5433に5433回接続し、ホストaおよびbに接続します。a-5433-cb-XNUMX-c

--host = a、b --port = 5433 --db = c、d
5433回接続します:a-5433-c a-5433-d b-5433-c b-XNUMX-d

--host = a、b --host = foo --port = 1234 --port = 5433 --db = e、f
1234回接続します:a-1234-e a-1234-f b-1234-e b-5433-f foo-5433-e foo-XNUMX-f

--host = a、b --host = x --port = 5432,5433 --dbuser = alice --dbuser = bob -db = baz
5432回接続します:a-5433-alice-baz b-5433-alice-baz x-XNUMX-bob-baz

--dbservice = "foo" --port = 5433
pg_service.confファイルの名前付きサービス「foo」を使用して接続しますが、ポートをオーバーライドします

その他 OPTIONS


その他のオプションが含まれます:

--action = NAME
実行しているアクションを示します。 シンボリックリンクされたファイルを使用しない限り必須です。
ファイルの名前がアクションを理解するために使用される場合。

-警告= VAL or -w VAL
警告アラートが発生するしきい値を設定します。 このための有効なオプション
オプションは、使用するアクションによって異なります。

--critical = VAL or -c VAL
クリティカルアラートが発生するしきい値を設定します。 このための有効なオプション
オプションは、使用するアクションによって異なります。

-t VAL or --timeout = VAL
タイムアウトを秒単位で設定します。その後、スクリプトは実行中の処理を中止し、
UNKNOWNステータスを返します。 タイムアウトはPostgresクラスターごとであり、全体ではありません
脚本。 デフォルト値は10です。 単位は常に秒単位です。

--スタンバイモードを想定
指定した場合、最初にスタンバイモードのサーバーが実行されるかどうかを確認します(--datadir
が必要です)、その場合、SQLクエリを必要とするすべてのチェックは無視され、「サーバー
代わりに、OKステータスの「スタンバイモードで」が返されます。

例:

postgres @ db $ ./ check_postgres --action = version --warning = 8.1 --datadir /var/lib/postgresql/8.3/main/ --assume-standby-mode
POSTGRES_VERSION OK:サーバーはスタンバイモードです| 時間= 0.00

-仮定-prod
指定されている場合は、本番モードのサーバーが実行されているかどうかを確認します(--datadirが必要です)。
このオプションは( "symlink:check_postgres_checkpoint")にのみ関連します。

例:

postgres @ db $ ./ check_postgres --action = checkpoint --datadir /var/lib/postgresql/8.3/main/ --assume-prod
POSTGRES_CHECKPOINT OK:最後のチェックポイントは72秒前でした| 年齢= 72 ;; 300モード=マスター

-h or - 助けて
すべてのアクションとオプションの概要を示すヘルプ画面を表示します。

- 男
マニュアル全体を表示します。

-V or - バージョン
現在のバージョンを表示します。

-v or -詳細
詳細レベルを設定します。 レベルを上げるために複数回呼び出すことができます。 に設定する
XNUMXつ以上(つまり、「-v -v -v」を発行)は、デバッグ情報をオンにします
stderrに送信されるこのプログラムの場合。

--showperf = VAL
追加のパフォーマンスデータを標準のNagios形式で出力するかどうかを決定します(最後に
文字列の、パイプシンボルの後、name = valueを使用)。 VALは0または1である必要があります。デフォルト
は1です。Nagios出力モードを使用している場合にのみ有効になります。

--perflimit = i
を使用したときに報告される対象アイテムの数に制限を設定します
ショーパーフ オプション。 これは、多数を返すアクションにのみ効果があります
などのアイテム テーブルサイズ。 デフォルトは0、または制限なしです。 これを使用するときは注意してください
- 含む or -除外する これらの制限が行われるため、オプション After  
クエリが実行されたため、制限に必要なアイテムが含まれていない可能性があります。 取るだけ
Nagios出力モードを使用する場合の効果。

--showtime = VAL
各クエリの実行にかかった時間が出力に表示されるかどうかを決定します。 VALは0である必要があります
または1.デフォルトは1です。 ショーパーフ オンになっています。 使用する場合にのみ有効になります
Nagios出力モード。

- テスト
テストモードを有効にします。 以下の「テストモード」セクションを参照してください。

--PGBINDIR = PATH
psqlバイナリの場所をスクリプトに指示します。 複数ある場合に便利です
システム上のPostgreSQL実行可能ファイルのバージョン、またはシステムに存在しない場合
道。 このオプションはすべて大文字であることに注意してください。 デフォルトでは、このオプションは
許可されて。 これを有効にするには、スクリプトの上部にある$ NO_PSQL_OPTIONを変更する必要があります
可能であれば、このオプションの使用を避け、代わりに環境変数を使用してください。
NS または、スクリプトの上部にあるハードコードされた$ PGBINDIR変数を設定します
使用するPostgreSQLへのパス。

--PSQL = PATH
(非推奨、 この オプション かもしれません be 削除 in a 未来 リリース!) スクリプトにどこに指示するか
psqlプログラムを検索します。 psqlのバージョンが複数ある場合に便利です
システムで実行可能ファイル、またはパスにpsqlプログラムがない場合。 これに注意してください
オプションはすべて大文字です。 デフォルトでは、このオプションは 許可されて。 それを有効にするには、
スクリプトの上部にある$ NO_PSQL_OPTIONを0に変更する必要があります。これは使用しないでください。
可能であればオプションを選択し、代わりにpsqlの場所を$ PSQL変数にハードコーディングします。
スクリプトの上部にもあります。

-シンボリックリンク
アクションごとにメインプログラムへのシンボリックリンクを作成します。

--output = VAL
さまざまなプログラムで使用するために、出力の形式を決定します。 デフォルトは
「nagios」。 使用可能なオプションは、「nagios」、「mrtg」、「simple」、および「cacti」です。

--mrtg = VAL
いくつかの特定のアクションのために、MRTGまたは単純な出力にのみ使用されます。

--debugoutput = VAL
デバッグで使用するために、psqlによって返される正確な文字列を出力します。 値はXNUMXまたは
出力が表示されるかどうかを決定するより多くの文字。ここで、「a」=すべて、「c」
=クリティカル、 'w' =警告、 'o' = ok、および 'u' =不明。 文字を組み合わせることができます。

--get_method = VAL
「new_version_cp」の情報をフェッチするために使用されるメソッドの指定を許可します。
「new_version_pg」、「new_version_bc」、「new_version_box」、および「new_version_tnm」チェック。
Webから情報を取得するために、次のプログラムが試行されます。GET、
wget、fetch、curl、lynx、links。 XNUMXつだけの使用を強制するには(したがって、
それらのいずれかが機能するまで他のすべてを試すオーバーヘッド)、名前のXNUMXつを次のように入力します
get_methodへの引数。 たとえば、BSDボックスは次の行を入力する場合があります
それらの「.check_postgresrc」ファイル:

get_method = fetch

--language = VAL
すべての出力メッセージに使用する言語を設定します。 通常、これはによって検出されます
環境変数LC_ALL、LC_MESSAGES、およびLANGを調べますが、これを設定します
オプションは、そのような検出をオーバーライドします。

ACTIONS


スクリプトはXNUMXつ以上のアクションを実行します。 これは、-actionフラグを使用するか、次の方法で実行できます。
内部のアクションの名前を含むメインファイルへのシンボリックリンクを使用します。 にとって
たとえば、アクション「timesync」を実行するには、次のいずれかを発行します。

check_postgres --action = timesync

または、次の名前のプログラムを使用します。

check_postgres_timesync

オプション--symlinksを使用すると、すべてのシンボリックリンクが現在のディレクトリに作成されます。

perl check_postgres --symlinks

ファイル名が既に存在する場合、上書きされません。 ファイルが存在し、
シンボリックリンク、「-action = build_symlinks_force」を使用して強制的に上書きできます

ほとんどのアクションは - 警告 フォルダーとその下に - 致命的 オプション、どの時点で変更するかを示します
OKからWARNINGまで、そしてどのポイントでCRITICALに行きますか。 クリティカルは
常に最初にチェックし、警告をクリティカルに等しく設定することは、
警告をオフにして、常にクリティカルを与えます。

現在サポートされているアクションは次のとおりです。

アーカイブ準備完了
( "シンボリックリンク:check_postgres_archive_ready")拡張子が付いたWALファイルの数を確認します 。準備
に存在する pg_xlog / archive_status あなたの外にあるディレクトリ データディレクトリ.
このアクションは、のコンテンツにアクセスするために、スーパーユーザーとして実行する必要があります
pg_xlog / archive_status ディレクトリ。 このアクションを使用するための最小バージョンはPostgres8.1です。
この - 警告- 致命的 オプションは単に数です 。準備 のファイル
pg_xlog / archive_status ディレクトリ。 通常、これらの値は低く、オンにする必要があります
アーカイブメカニズムでは、通常、WALファイルをできるだけ速くアーカイブする必要があります。

アーカイブコマンドが失敗した場合、 pg_xlog ディレクトリはまで大きくなります
すべてのディスクスペースを使い果たし、PostgreSQLをただちに停止させます。

例1:ホスト「pluto」で準備ができているWALファイルの数が10以下であることを確認します

check_postgres_archive_ready --host = pluto --critical = 10

MRTG出力の場合、1行目に準備ができているWALファイルの数を報告します。

autovac_freeze
( "symlink:check_postgres_autovac_freeze")各データベースが
Postgres autovacuum_freeze_max_age 設定。 このアクションはデータベースに対してのみ機能します
バージョン8.2以降。 NS - 警告- 致命的 オプションは次のように表現する必要があります
パーセンテージ。 各データベースのトランザクションの「年齢」は、
autovacuum_freeze_max_age設定(デフォルトでは200億)を使用して、丸めを生成します
パーセンテージ。 デフォルト値は 90% 警告と 95% クリティカルのために。 データベース
を使用してフィルタリングできます - 含む-除外する オプション。 「基本的なフィルタリング」を参照してください
詳細についてはセクションを参照してください。

例1:ポート5432のデータベースが97%を超えている場合に警告を発する

check_postgres_autovac_freeze --port = 5432 --warning = "97%"

MRTG出力の場合、全体の最高パーセンテージが最初の行に報告され、
最高年齢はXNUMX行目に報告されています。 からのパーセンテージを持つすべてのデータベース
最初の行は、パイプ記号で区切られたXNUMX行目に報告されます。

バックエンド
( "symlink:check_postgres_backends")現在の接続数をXNUMXつまたは
より多くのデータベース、およびオプションでそれを許可された最大値と比較します。
Postgres構成変数 max_connectionsを選択します。 - 警告- 致命的 オプション
XNUMXつの形式のいずれかを取ることができます。 まず、単純な数を与えることができます。これは、
アラートが出される接続の数。 この選択では、
max_connections 設定。 次に、使用可能な接続の割合を指定できます。
第三に、残っている接続の数を表す負の数を与えることができます
まで max_connections が達成された。 のデフォルト値 - 警告- 致命的  
「90%」および「95%」。 を使用してデータベースをフィルタリングすることもできます - 含む-除外する
オプション。 詳細については、「基本的なフィルタリング」セクションを参照してください。

アイドル状態でないプロセスのみを表示するには、 --ノイドル 口論。 ユーザーはあなたに注意してください
これが正しく機能するには、スーパーユーザーである必要があるため、接続しています。

例1:ホストquirmの接続数が120に達したときに警告を出し、
150に達するとクリティカルになります。

check_postgres_backends --host = quirm --warning = 120 --critical = 150

例2:ホストのmax_connections設定の75%に達したときにクリティカルを与える
lancreまたはlancre2。

check_postgres_backends --warning = '75% '--critical = '75%' --host = lancre、lancre2

例3:ホストに残っている接続スロットが10個しかない場合に警告を出す
プラスミドであり、残りが5つしかない場合は重要です。

check_postgres_backends --warning = -10 --critical = -5 --host = plasmid

例4:名前に「test」が含まれているデータベースを除くすべてのデータベースをチェックしますが、
「pg_greatest」という名前です。 最初の5432つのホストではポート5433として接続し、上のポートXNUMXとして接続します。
30つ目。 XNUMX以上の接続に達したときは、常にクリティカルをスローしたいと考えています。

check_postgres_backends --dbhost = hong、kong --dbhost = fooey --dbport = 5432 --dbport = 5433 --warning = 30 --critical = 30 --exclude = "〜test" --include = "pg_greatest、〜prod 「」

MRTG出力の場合、接続数はXNUMX行目、XNUMX行目で報告されます
行は、データベースの名前と現在のmaximum_connectionsを示します。 以上の場合
XNUMXつのデータベースが照会され、接続数が最も多いデータベースが出力されます。

膨満感
( "symlink:check_postgres_bloat")テーブルとインデックスの肥大化の量をチェックします。 (膨満感
一般に、テーブルまたはインデックスで使用されている未使用のデッドスペースの量です。 このスペースは
通常、VACUUMコマンドを使用して再利用されます。)このアクションには、統計が必要です。
ターゲットデータベースでコレクションを有効にし、ANALYZEを実行する必要があります
頻繁に。 NS - 含む-除外する オプションを使用して、どのテーブルを除外するかを除外できます
見る。 詳細については、「基本的なフィルタリング」セクションを参照してください。

この - 警告- 致命的 オプションは、サイズ、パーセント、またはその両方として指定できます。 有効
サイズの単位は、バイト、キロバイト、メガバイト、ギガバイト、テラバイト、エクサバイト、ペタバイト、および
ゼタバイト。 それらすべてを最初の文字で省略できます。 ユニットのないアイテムは
'バイト'と見なされます。 デフォルト値は「1GB」および「5GB」です。 値は
「無駄なバイト」の数、またはテーブルで実際に使用されているものとの差
インデックス、およびそれがどうあるべきかを計算します。

このアクションにはXNUMXつのハードコードされた値があり、小さい場合の誤警報を回避することに注意してください。
関係。 テーブルには、少なくとも10ページ、インデックスは少なくとも15ページある必要があります。
このテストで考慮されます。 これらの値を本当に調整したい場合は、
variables $ MINPAGES$ MINIPAGES 「check_bloat」サブルーチンの先頭にあります。 これらは
いずれかの場合、値は無視されます -除外する or - 含む 使用されている。

最も肥大化した上位10の関係のみが表示されます。 この番号は、
--perflimit 独自の制限を設定するオプション。

'information_schema'という名前のスキーマは、このテストから除外されます。
含むは小さく、変更されません。

このアクションによって計算された値は正確ではないため、次のように使用する必要があることに注意してください。
ガイドラインのみ。 テーブルの正しいサイズを見積もるために多大な努力が払われましたが、
最後に、それは単なる見積もりです。 正しいインデックスサイズは、
テーブルのサイズは正しいですが、どちらも肥大化したものの大まかなアイデアを提供するはずです。

例1:ポート5432のテーブルが100 MBを超えて肥大化している場合は警告し、200を超えている場合は重大です
MB

check_postgres_bloat --port = 5432 --warning = '100 M'-critical = '200 M'

例2:ホスト「sami」のテーブル「orders」に10メガバイトを超える膨張がある場合にクリティカルを与える

check_postgres_bloat --host = sami --include = orders --critical = '10 MB '

例3:データベース 'sales'のテーブル 'q4'が50%以上肥大化している場合にクリティカルを与える

check_postgres_bloat --db = sales --include = q4 --critical = '50% '

例4:20%を超える肥大化したテーブルをクリティカルにする 150MB以上の膨満感があります:

check_postgres_bloat --port = 5432 --critical = '20%および150 M '

例5:40%を超える肥大化したテーブルをクリティカルにする or 500MB以上の膨満感があります:

check_postgres_bloat --port = 5432 --warning = '500 Mまたは40%'

MRTG出力の場合、最初の行はテーブルの無駄なバイト数が最も多いことを示しています。
XNUMX行目は、インデックスの無駄なバイト数が最も多いことを示しています。 第XNUMX
行は、データベース名、テーブル名、およびインデックス名の情報を示します。 あなたがしたい場合は
代わりに膨満率を出力します(関係がどのように比較されるかと比較して何倍大きいか)
大きいはずです)、「-mrtg = ratio」を渡すだけです。

チェックポイント
( "symlink:check_postgres_checkpoint")最後のチェックポイントからの経過時間を決定します
実行されました。 これは、チェックされているデータベースと同じサーバーで実行する必要があります(例:
-hフラグは機能しません)。 このチェックは、「ウォームスタンバイ」サーバーで実行することを目的としています。
出荷されたWALファイルをアクティブに処理し、ウォームスタンバイが
本当に「暖かい」。 データディレクトリは、環境変数のいずれかによって設定する必要があります
「PGDATA」、または「--datadir」引数を渡します。 からの秒数を返します
「pg_controldata」への呼び出しを解析することによって決定されたように、最後のチェックポイントが実行されました。 のため
この場合、pg_controldata実行可能ファイルが現在のパスで使用可能である必要があります。 または、
存在するディレクトリとして「PGBINDIR」を指定できます。使用することもできます。
特別なオプション -仮定-prod or --スタンバイモードを想定、見つかったモードが
予想されるものとして、CRITICALが放出されます。

少なくともXNUMXつの警告または重要な引数を設定する必要があります。

このアクションには、Date :: Parseモジュールが必要です。

MRTGまたは単純出力の場合、秒数を返します。

クラスターID
( "symlink:check_postgres_cluster-id")データベースシステム識別子が提供されていることを確認します
by pg_controldataは、前回チェックしたときと同じです。 これは同じサーバーで実行する必要があります
チェックされているデータベースとして(たとえば、-hフラグは機能しません)。 どちらか
- 警告 または - 致命的 オプションを指定する必要がありますが、両方を指定することはできません。 それぞれの価値は
クラスタ識別子、整数値。 特別な「--critical = 0」で実行できます
既存のクラスター識別子を見つけるためのオプション。

例1:初期識別子を見つける

check_postgres_cluster_id --critical = 0 --datadir = / var // lib / postgresql / 9.0 / main

例2:クラスターが同じであることを確認し、同じでない場合は、上記の結果を使用して警告します。

check_postgres_cluster_id --critical = 5633695740047915135

MRTG出力の場合、識別子の失敗の成功を示す1または0を返します。
マッチ。 「--mrtg」引数として識別子を指定する必要があります。 常にXNUMX行目
現在の識別子を示します。

コミットメント
( "symlink:check_postgres_commitratio")すべてのデータベースのコミット率をチェックし、
それらが低すぎると文句を言います。 このコマンドをXNUMX回にXNUMX回以上実行する必要はありません。
データベースクラスター。 データベースは、 - 含む-除外する オプション。 見る
詳細については、「基本的なフィルタリング」セクションを参照してください。 それらはまたの所有者によってフィルタリングすることができます
データベースと --includeuser--excludeuser オプション。 「ユーザー名」を参照してください
詳細については、「フィルタリング」セクションを参照してください。

警告およびクリティカルオプションは、パーセンテージで指定する必要があります。 存在しません
このアクションのデフォルト:警告とクリティカルを指定する必要があります。 警告値
臨界値より大きくすることはできません。 出力は、並べ替えられたすべてのデータベースを返します
コミットメント、最初に最小。

例:ホストflagg上のデータベースのcommitratioが90%未満であり、クリティカルである場合に警告します
80%未満の場合。

check_postgres_database_commitratio --host = flagg --warning = '90% '--critical = '80%'

MRTG出力の場合、コミットメントが最小のデータベースのパーセンテージを返します
最初の行、およびXNUMX行目のデータベースの名前。

接続
( "symlink:check_postgres_connection")単に接続し、 'SELECTを発行します バージョン()'、および
葉っぱ。 かかりません - 警告 or - 致命的 オプション。

MRTG出力の場合、最初に1(接続が良好)または0(接続が不良)を出力するだけです。
ライン。

カスタムクエリ
( "symlink:check_postgres_custom_query")選択したカスタムクエリを実行し、解析します
結果。 クエリ自体は「query」引数を介して渡され、次のようになります。
可能な限りシンプルに保ちます。 可能であれば、それをビューまたは関数でラップして保持します
管理しやすいもの。 クエリはXNUMXつまたはXNUMXつの列を返す必要があります。 それが必要です
列のXNUMXつは「結果」という名前で、
警告と重要な値。 XNUMX番目の列は、パフォーマンスデータと任意の名前です
使用できます:これは、パフォーマンスデータセクション内の「値」になります。

少なくともXNUMXつの警告またはクリティカル引数を指定する必要があります。 これらが何に設定されているかは
実行しているクエリの種類。 custom_queriesにはXNUMXつのタイプがあります
「valtype」引数で指定された実行。 何も指定されていない場合、このアクションのデフォルトは
'整数'。 XNUMXつのタイプは次のとおりです。

整数:単純な整数比較を行います。 最初の列は単純な整数である必要があります。
警告値とクリティカル値は同じである必要があります。

string:警告とクリティカルは文字列であり、
最初の列はそれに完全に一致します。 これは大文字と小文字が区別されます。

時間:警告とクリティカルは時間であり、秒、分、
時間、または日。 それぞれが単数で書かれることもあれば、最初の文字だけに省略されることもあります。 もしも
単位は指定されておらず、秒が想定されています。 最初の列は整数である必要があります
チェックする秒数を表します。

サイズ:警告とクリティカルはサイズであり、バイト、キロバイト、
メガバイト、ギガバイト、テラバイト、またはエクサバイト。 それぞれが最初の文字に省略される場合があります。
単位が指定されていない場合、バイトが想定されます。 最初の列は整数である必要があります
チェックするバイト数を表します。

通常、返された値が次の場合にアラートがトリガーされます 大きい より またはに等しい
クリティカル値または警告値。 ただし、 - 逆行する 次の場合にアラートをトリガーします
戻り値は 下側 より またはクリティカル値または警告値に等しい。

例1:100ページを超えるリレーションに「rad」という名前が付いている場合は警告し、ページ数を入力します
パフォーマンスデータセクション内。

check_postgres_custom_query --valtype = string -w "rad" --query =
"SELECT relname AS result、relpages AS pages FROM pg_class WHERE relpages> 100"

例2:「foobar」関数が5MBを超える数値を返す場合は、クリティカルを指定します。

check_postgres_custom_query --critical = '5MB'-valtype = size --query = "SELECT foobar()AS result"

例2:関数「snazzo」が42未満を返す場合に警告します。

check_postgres_custom_query --critical = 42 --query = "SELECT snazzo()AS result" --reverse

便利なcustom_queryを思いついた場合は、このプログラムにパッチを送信して、
他の人が使用できる標準的なアクションにします。

このアクションは、MRTGまたは単純な出力をまだサポートしていません。

データベースサイズ
( "symlink:check_postgres_database_size")すべてのデータベースのサイズをチェックして文句を言う
彼らが大きすぎるとき。 データベースごとにこのコマンドを複数回実行する必要はありません
集まる。 データベースは、 - 含む-除外する オプション。 を参照してください
詳細については、「基本的なフィルタリング」セクションを参照してください。 それらは、の所有者によってフィルタリングすることもできます
データベースと --includeuser--excludeuser オプション。 「ユーザー名のフィルタリング」を参照してください
詳細についてはセクションを参照してください。

警告およびクリティカルオプションは、バイト、キロバイト、メガバイト、
ギガバイト、テラバイト、またはエクサバイト。 それぞれが最初の文字に省略されることもあります。
単位が指定されていない場合、単位はバイトと見なされます。 これにはデフォルトはありません
アクション:警告とクリティカルを指定する必要があります。 警告値を大きくすることはできません
臨界値より。 出力は、最初に最大サイズでソートされたすべてのデータベースを返します。
生のバイトとサイズの「きれいな」バージョンの両方を表示します。

例1:ホストflagg上のデータベースのサイズが1 TBを超えている場合は警告し、超えている場合はクリティカル
1.1 TB。

check_postgres_database_size --host = flagg --warning = '1 TB' --critical = '1.1 t'

例2:ポート1のデータベースtemplate5432が10 MBを超える場合は、クリティカルを指定します。

check_postgres_database_size --port = 5432 --include = template1 --warning = '10MB' --critical = '10MB'

例3:ユーザー「tom」が所有するホスト「tardis」上のデータベースが終了した場合に警告を表示します
5 GB

check_postgres_database_size --host = tardis --includeuser = tom --warning = '5 GB' --critical = '10 GB '

MRTG出力の場合、最初の行に最大のデータベースのサイズをバイト単位で返し、
XNUMX行目のデータベースの名前。

dbstats
( "シンボリックリンク:check_postgres_dbstats")pg_stat_databaseビューから情報を報告します。
そしてそれをサボテンに優しい方法で出力します。 出力がであるため、他の出力はサポートされていません
情報提供であり、Nagiosで使用されるようなアラートには適していません。 オプションがない場合
が指定されると、すべてのデータベースがXNUMX行にXNUMXつずつ返されます。 特定のデータベースを含めることができます
「--include」オプションを使用するか、「-dbname」オプションを使用できます。

各行にXNUMX個のアイテムが、name:valueの形式で、XNUMXつで区切られて返されます。
スペース。 アイテムは次のとおりです。

バックエンド
このデータベースで現在実行中のバックエンドの数。

コミットする
このデータベースが作成またはリセットされてからの、このデータベースのコミットの総数。

ロールバック
このデータベースが作成またはリセットされてからの、このデータベースのロールバックの総数。

read
読み取られたディスクブロックの総数。

hitバッファヒットの総数。

ret返された行の総数。

フェッチ
フェッチされた行の総数。

ins挿入された行の総数。

upd更新された行の総数。

del削除された行の総数。

データベース名
データベースの名前。

Postgresがバージョン0の場合、ret、fetch、ins、upd、およびdelアイテムは常に8.2になることに注意してください。
これらの統計はこれらのバージョンでは利用できなかったため、以下。

dbname引数を指定すると、次のXNUMXつの追加項目が返されます。

idxscan
ユーザーインデックススキャンの総数。

idxtupread
返されたユーザーインデックスエントリの総数。

idxtupfetch
単純なユーザーインデックススキャンによってフェッチされた行の総数。

idxblksread
すべてのユーザーインデックスに対して読み取られたディスクブロックの総数。

どすこい
すべてのユーザーインデックスのバッファヒットの総数。

シーケンススキャン
すべてのユーザーテーブルに対する順次スキャンの総数。

シーケンスアップレッド
すべてのユーザーテーブルから返されたタプルの総数。

例1:ホスト「willow」の「products」という名前のデータベースの統計を取得します。

check_postgres_dbstats --dbhost willow --dbname 製品

返される出力は次のようになります(すべてXNUMX行で、折り返されていません)。

バックエンド:82コミット:58374408ロールバック:1651読み取り:268435543ヒット:2920381758idxscan:310931294 idxtupread:2777040927
idxtupfetch:1840241349 idxblksread:62860110 idxblkshit:1107812216 seqscan:5085305 seqtupread:5370500520
ret:0 fetch:0 ins:0 upd:0 del:0 dbname:willow

disable_triggers
( "symlink:check_postgres_disabled_triggers")無効にされたトリガーの数をチェックします
データベース内。 NS - 警告- 致命的 オプションはそのようなトリガーの数です
が見つかり、トリガーを無効にする通常の使用法では危険であるため、両方ともデフォルトで「1」になります
イベント。 チェック対象のデータベースが8.3以上の場合、チェック対象のデータベースの数は
「無効」ステータスのトリガー(「常に」または「レプリカ」ではなく)。 NS
出力には、テーブルの名前と無効にされた各トリガーの名前が表示されます
引き金。

例1:無効なトリガーがないことを確認します

check_postgres_disabled_triggers

MRTG出力の場合、最初の行で無効になっているトリガーの数を返します。

ディスクスペース
( "シンボリックリンク:check_postgres_disk_space")によって使用される使用可能な物理ディスク容量をチェックします
Postgres。 このアクションには、実行可能ファイルが必要です。/ bin / df"報告可能
ディスクサイズで、スーパーユーザーとして実行する必要があるため、
データディレクトリ Postgres内の設定。 NS - 警告- 致命的 オプションが与えられます
サイズまたはパーセンテージ、あるいはその両方で。 サイズを使用する場合、標準の単位タイプは次のとおりです。
許可:バイト、キロバイト、ギガバイト、メガバイト、ギガバイト、テラバイト、またはエクサバイト。 各
最初の文字のみに省略できます。 単位がまったくない場合は「バイト」を示します。 NS
デフォルト値は「90%」および「95%」です。

このコマンドは、次のことをチェックして、すべての異なる物理ディスクを判別します
Postgresによって使用されています。

データディレクトリ -メインデータディレクトリが置かれているディスク。

ログ ディレクトリにジョブを開始します。 -ログファイルが置かれているディスク。

WAL file ディレクトリにジョブを開始します。 -先行書き込みログが記録されているディスク(例:シンボリックリンクされたpg_xlog)

表領域 -個別のディスク上にある各表領域。

出力には、各ディスクで使用および使用可能な合計サイズと、
使用されたパーセンテージの高いものから低いものの順に並べられたパーセンテージ。 上記の各アイテムはファイルにマップされます
システム:これらは含めることも除外することもできます。 詳細については、「基本的なフィルタリング」セクションを参照してください。
詳細。

例1:ポート90のデータベースで5432%を超えるファイルシステムがないことを確認します。

check_postgres_disk_space --port = 5432 --warning = '90% '--critical = '90%'

例2:/ dev / sdaで始まるすべてのファイルシステムが10GB未満であり、
11 GB(警告およびクリティカル)

check_postgres_disk_space --port = 5432 --warning = '10 GB '-critical = '11 GB'-include = "〜^ / dev / sda"

例4:両方とも50%を超えるファイルシステムがないことを確認します 15GB以上あります

check_postgres_disk_space --critical = '50%および15 GB '

例5:ファイルシステムが70%を超えている場合は、警告を発行します or 1T以上あります

check_postgres_disk_space --warning = '1Tまたは75'

MRTG出力の場合、最初の行にファイルシステムのサイズをバイト単位で返し、
XNUMX行目のファイルシステムの名前。

fsm_pages
( "symlink:check_postgres_fsm_pages")クラスターがPostgresにどれだけ近いかをチェックします
max_fsm_pages 設定。 このアクションは、8.2以降のデータベースでのみ機能します。
contribモジュールが必要です pg_freespacemap インストールされます。 NS - 警告- 致命的
オプションはパーセンテージで表す必要があります。 空き領域マップで使用されているページの数
pg_freespacemap_relationsビューを確認し、数式を実行することで決定されます
真空冗長で自由空間マップページスロットを出力するために使用される式に基づく
指図。 デフォルト値は 85% 警告と 95% クリティカルのために。

例1:クラスターが空き領域のページスロットの76%を使い果たしたときに、警告を表示します。
pg_freespacemapがデータベースrobertにインストールされている

check_postgres_fsm_pages --dbname = robert --warning = "76%"

pg_freespacemapがインストールされているデータベースの名前を渡す必要がありますが、
このチェックは、クラスターごとにXNUMX回だけ実行する必要があります。 また、この情報を確認するには、
空き領域マップで特別なロックを取得するため、これを実行しないことをお勧めします
短い間隔で確認してください。

MRTG出力の場合、最初の行の空き領域マップの割合と数値を返します
XNUMX行目で現在使用されているページの数。

fsm_関係
( "symlink:check_postgres_fsm_relations")クラスターがPostgresにどれだけ近いかをチェックします
max_fsm_relations 設定。 このアクションは、8.2以降のデータベースでのみ機能します。
contribモジュールが必要です pg_freespacemap インストールされます。 NS - 警告- 致命的
オプションはパーセンテージで表す必要があります。 フリーで使用された関係の数-
スペースマップは、pg_freespacemap_relationsビューを調べることによって決定されます。 デフォルト
値は 85% 警告と 95% クリティカルのために。

例1:クラスターが自由空間関係の80%を使い果たしたときに、警告を出します。
pg_freespacemapがデータベースdylanにインストールされている

check_postgres_fsm_relations --dbname = dylan --warning = "75%"

pg_freespacemapがインストールされているデータベースの名前を渡す必要がありますが、
このチェックは、クラスターごとにXNUMX回だけ実行する必要があります。 また、この情報を確認するには、
空き領域マップで特別なロックを取得するため、これを実行しないことをお勧めします
短い間隔で確認してください。

MRTG出力の場合、最初の行の空き領域マップの割合、
XNUMX行目で現在使用されているリレーション。

ヒット率
( "symlink:check_postgres_hitratio")すべてのデータベースのヒット率をチェックして文句を言う
それらが低すぎるとき。 データベースごとにこのコマンドを複数回実行する必要はありません
集まる。 データベースは、 - 含む-除外する オプション。 を参照してください
詳細については、「基本的なフィルタリング」セクションを参照してください。 それらは、の所有者によってフィルタリングすることもできます
データベースと --includeuser--excludeuser オプション。 「ユーザー名のフィルタリング」を参照してください
詳細についてはセクションを参照してください。

警告およびクリティカルオプションは、パーセンテージで指定する必要があります。 存在しません
このアクションのデフォルト:警告とクリティカルを指定する必要があります。 警告値
臨界値より大きくすることはできません。 出力は、並べ替えられたすべてのデータベースを返します
hitratio、最初に最小。

例:ホストflagg上のデータベースのヒット率が90%未満の場合に警告し、次の場合にクリティカル
80%未満。

check_postgres_hitratio --host = flagg --warning = '90% '--critical = '80%'

MRTG出力の場合、ヒット率が最小のデータベースのパーセンテージを返します。
最初の行、およびXNUMX行目のデータベースの名前。

ホットスタンバイ遅延
( "symlink:check_hot_standby_delay")を計算して、ストリーミングレプリケーションの遅延をチェックします。
マスターサーバーの現在のxlog位置との再生場所の間のデルタ
それに接続されたスレーブ。 スレーブサーバーはhot_standby(読み取り専用など)モードである必要があります。
したがって、このアクションを使用するための最小バージョンはPostgres9.0です。 NS - 警告
- 致命的 オプションは、xlogの場所間のデルタです。 これらの値はバイトなので
WALのオフセットは、アプリケーションの予想されるトランザクション量と一致する必要があります
誤検知または誤検知を防ぐため。

最初の「--dbname」、「-host」、「-port」などのオプションはマスターと見なされます。 NS
XNUMX番目はスレーブに属します。

バイト値は、ストリーミングを行うために必要なトランザクションの量に基づく必要があります
Postgresによって決定されたラグが大きすぎるため、レプリケーションがマスターから切断されます
構成変数 wal_keep_segments。 時間の単位の場合、有効な単位は「秒」です。
「分」、「時間」、または「日」。 それぞれを単数で書くことも、単に
最初の一文字。 両方を指定する場合は、 'の形式でバイト時間'、両方の条件は
しきい値が満たされる場合はtrue。

カンマで区切ってデータベースにアクセスする方法に関する情報を提供する必要があります
「--dbport = 5432,5543」などの--dbhostおよび--dbportパラメーターにリストします。 与えられていない場合、
アクションは失敗します。

例1:ポート5433にローカルレプリカがあるデータベースに、xlogの再生が遅れていることを警告する
すべてで

check_hot_standby_delay --dbport = 5432,5433 --warning = '1'

例2:replica1が最後に受信したトランザクションが10を超える場合は、クリティカルを指定します
数分前

check_hot_standby_delay --dbhost = master、replica1 --critical = '10分 '

例3:マスターが一時的に認識している場合は、replica1を1WALセグメント後ろに配置します
ストリーミングレプリケーション接続が処理できるよりも多くのアクティビティ、または10分遅れて
マスターがほとんどアクティビティを確認しておらず、トランザクションを処理していないが、
両方。これは、レプリケーション接続に永続的な問題があることを示しています。

check_hot_standby_delay --dbhost = master、replica1 --warning = '1048576および2分' --critical = '16777216および10分'

インデックスサイズ
テーブルサイズ
Relation_size
(シンボリックリンク: "check_postgres_index_size"、 "check_postgres_table_size"、および
"check_postgres_relation_size")アクション テーブルサイズインデックスサイズ 単に
のバリエーション Relation_size アクション、これも成長した関係をチェックします
大きい。 リレーション(つまり、テーブルとインデックス)は、 - 含む
-除外する オプション。 詳細については、「基本的なフィルタリング」セクションを参照してください。 関係はできます
また、それらを所有するユーザーによって、 --includeuser--excludeuser
オプション。 詳細については、「ユーザー名のフィルタリング」を参照してください。

の値 - 警告- 致命的 オプションはファイルサイズであり、単位は
バイト、キロバイト、メガバイト、ギガバイト、テラバイト、またはエクサバイト。 それぞれを省略できます
最初の文字に。 単位が指定されていない場合、バイトが想定されます。 デフォルトはありません
値:警告とクリティカルの両方のオプションを指定する必要があります。 戻りテキストには、
見つかった最大の関係のサイズ。

Status --ショーパフォーマンス オプションが有効になっている、 それらのサイズとの関係のが与えられます。
これを防ぐために、 --perflimit オプション、これは原因になります
「ORDERBYsize DESC LIMIT(perflimit)」を実行するためのクエリ。

例1:ホストburrickで600MBを超えるテーブルがある場合はクリティカルを指定します。

check_postgres_table_size --critical = '600 MB' --warning = '600 MB' --host = burrick

例2:テーブル製品のサイズが4 GBを超えている場合は警告し、4.5GBでクリティカルを指定します。

check_postgres_table_size --host = burrick --warning = '4 GB' --critical = '4.5 GB' --include = products

例3:postgresが所有していないインデックスが500MBを超えた場合に警告します。

check_postgres_index_size --port = 5432 --excludeuser = postgres -w 500MB -c 600MB

MRTG出力の場合、最大の関係のバイト単位のサイズと、
XNUMX行目としてデータベースとリレーション。

last_analyze
last_vacuum
last_autoanalyze
last_autovacuum
(シンボリックリンク: "check_postgres_last_analyze"、 "check_postgres_last_vacuum"、
"check_postgres_last_autoanalyze"、および "check_postgres_last_autovacuum")どのくらいの時間をチェックしますか
XNUMXつ以上のデータベースの各テーブルでバキューム(または分析)が最後に実行されてからです。
これらのアクションを使用するには、ターゲットデータベースがバージョン8.3以降である必要があります。
バージョンは8.2で、構成変数は stats_row_level 有効になっています。 テーブル
でフィルタリングすることができます - 含む-除外する オプション。 「基本的なフィルタリング」を参照してください
詳細については、セクションを参照してください。 テーブルは、所有者がを使用してフィルタリングすることもできます。
--includeuser--excludeuser オプション。 詳細については、「ユーザー名のフィルタリング」セクションを参照してください。
詳細。

の単位 - 警告- 致命的 時間として指定されます。 有効な単位は秒です。
分、時間、日; すべて最初の文字に省略できます。 ユニットがない場合
与えられた場合、「秒」が想定されます。 デフォルト値は「1日」と「2日」です。 ご注意ください
このフィールドが自動的に入力されない場合があります。 確かなら
テーブルはあなたに問題を与えています、それらが掃除機をかけるために死んだ列を持っていることを確認してください、または単に
それらをテストから除外します。

'information_schema'という名前のスキーマは、このテストから除外されます。
含むは小さく、変更されません。

「自動」以外のバージョンも自動バージョンをチェックすることに注意してください。 その他
つまり、last_vacuumを使用すると、通常のバキュームであったかどうかに関係なく、最後のバキュームが報告されます。
または、autovacuumデーモンによって実行されるもの。

例1:3日間掃除機をかけられていないテーブルがある場合は警告し、
週、ホストよもぎの場合

check_postgres_last_vacuum --host = wormwood --warning = '3d' --critical = '7d'

例2:上記と同じですが、ユーザー「eve」または「mallory」に属するテーブルをスキップします

check_postgres_last_vacuum --host = wormwood --warning = '3d' --critical = '7d' --excludeusers = eve、mallory

MRTG出力の場合、(最初の行で)aからの最小時間を秒単位で返します。
テーブルは最後に掃除機をかけられるか分析されました。 XNUMX行目は、データベースの名前と
テーブルの名前。

リスナー
( "シンボリックリンク:check_postgres_listener")誰かがXNUMXつ以上をリッスンしていることを確認します
pg_listenerテーブルを見て、特定の文字列(LISTEN / NOTIFYシステムを使用)。
警告またはクリティカルのいずれかXNUMXつだけが必要です。 形式は、を表す単純な文字列です。
LISTENターゲット、またはチルダ文字の後に正規表現チェック用の文字列が続きます。
このチェックは、Postgres9.0以降のバージョンでは機能しないことに注意してください。

例1:ポートで文字列bucardo_mcp_pingをリッスンしている人がいない場合は、警告を表示します
5555と5556

check_postgres_listener --port = 5555,5556 --warning = bucardo_mcp_ping

例2:「grimm」に一致するアクティブなLISTENリクエストがない場合にクリティカルを与える
データベースoskar

check_postgres_listener --db oskar --critical = 〜grimm

MRTG出力の場合、最初に1または0を返し、成功または失敗を示します。 名前
通知の --MRTG オプションを選択します。

ロック
( "symlink:check_postgres_locks")XNUMXつ以上のロックの総数を確認します
データベース。 データベースクラスターごとにこれを複数回実行する必要はありません。 データベースはできます
でフィルタリングされます - 含む-除外する オプション。 「基本的なフィルタリング」セクションを参照してください
のガイドをご参照ください。

この - 警告- 致命的 オプションは、以下を表す単純な数値として指定できます。
ロックの総数、またはロックの種類ごとに分類できます。 有効なロック名
'total'、 'waiting'、またはPostgresで使用されるロックタイプの名前です。 これらの名前は
大文字と小文字を区別せず、最後に「ロック」部分は必要ありません。 排他的な 一致します
'ExclusiveLock'。 形式はname = numberで、コロンまたはコロンで区切られたさまざまな項目があります。
セミコロン(またはその他の記号)。

例1:ロックの数が100以上の場合は警告し、200以上の場合はクリティカル
ホストギャレット

check_postgres_locks --host = garrett --warning = 100 --critical = 200

例2:ホストアルテムスで、200以上のロックが存在する場合は警告し、
合計250を超えるロックが存在する場合、または20を超える排他ロックが存在する場合、または5を超える接続がある場合
ロックを待っています。

check_postgres_locks --host = artemus --warning = 200 --critical = "total = 250:waiting = 5:exclusive = 20"

MRTG出力の場合、最初の行のロックの数と、
XNUMX行目のデータベース。

ログファイル
( "symlink:check_postgres_logfile")ログファイルが予期された場所にあることを確認します
にログインしています。 このアクションは、それぞれにエラーをスローするコマンドを発行します
チェックしているデータベースであり、メッセージがログに表示されることを確認します。 スキャンします
ログがどこにあるべきかを理解するためのPostgres内のさまざまなlog_ *設定。 もし、あんたが
syslogを使用している場合、大まかな(ただし絶対確実ではない)スキャンを実行します /etc/syslog.conf.
または、ログファイルの名前を --ログファイル オプション。 これは
ログに外部プログラムによって駆動されるカスタムローテーションスキームがある場合に特に便利です。
この --ログファイル オプションは次のエスケープ文字をサポートします: "%Y%m%d%H"、これ
それぞれ、現在の年、月、日付、および時間を表します。 エラーは常に
警告オプションがゼロ以外の値として渡されていない限り、クリティカルとして報告されます。
その特定の使用法以外に、「-warning」および「--critical」オプションは be
中古。

例1:ポート5432で、ログファイルがファイルに書き込まれていることを確認します
/home/greg/pg8.2.log

check_postgres_logfile --port = 5432 --logfile = /home/greg/pg8.2.log

例2:上記と同じですが、重大ではなく警告を発します

check_postgres_logfile --port = 5432 --logfile = /home/greg/pg8.2.log -w 1

MRTG出力の場合、最初の行に1または0を返し、成功または失敗を示します。 の
障害が発生した場合は、XNUMX行目に発生した障害の詳細が示されます。

新しいバージョン_bc
( "symlink:check_postgres_new_version_bc")新しいバージョンのBucardoかどうかを確認します
プログラムが利用可能です。 現在のバージョンは、「bucardo_ctl--version」を実行することで取得されます。
メジャーアップグレードが利用可能な場合、警告が返されます。 リビジョンのアップグレードが
利用可能である場合、クリティカルが返されます。 (ブカルドはマスターからスレーブ、そしてマスターからマスターです
Postgresのレプリケーションシステム:を参照してください http://bucardo.org 詳細については)。 も参照してください
「--get_method」オプションに関する情報。

新しいバージョンボックス
( "シンボリックリンク:check_postgres_new_version_box")新しいバージョンのboxinfoかどうかを確認します
プログラムが利用可能です。 現在のバージョンは、「boxinfo.pl--version」を実行して取得します。
メジャーアップグレードが利用可能な場合、警告が返されます。 リビジョンのアップグレードが
利用可能である場合、クリティカルが返されます。 (boxinfoは重要なものをつかむためのプログラムです
サーバーからの情報とそれをHTML形式に変換する:を参照してください。
http://bucardo.org/wiki/boxinfo 詳細については)。 に関する情報も参照してください。
「--get_method」オプション。

新しいバージョン_cp
( "シンボリックリンク:check_postgres_new_version_cp")このプログラムの新しいバージョンかどうかを確認します
(check_postgres)は、メインの小さなテキストファイルからバージョンを取得することで利用できます
プロジェクトのホームページのページ。 返されたバージョンがそうでない場合は警告を返します
実行しているものと一致します。 確認する推奨間隔はXNUMX日XNUMX回です。 も参照してください
「--get_method」オプションに関する情報。

新しいバージョン_ページ
( "シンボリックリンク:check_postgres_new_version_pg")Postgresの新しいリビジョンが存在するかどうかを確認します
接続されているデータベースごとに。 これはリビジョンのみをチェックすることに注意してください。
8.3.6から8.3.7。 リビジョンは常に100%バイナリ互換であり、ダンプや
復元してアップグレードします。 バグに対処するために改訂が行われているため、できるだけ早くアップグレードしてください
常にお勧めします。 最新のリビジョンがない場合は警告を返します。 です
このチェックは少なくともXNUMX日にXNUMX回実行することをお勧めします。 に関する情報も参照してください。
「--get_method」オプション。

新しいバージョン_tnm
( "symlink:check_postgres_new_version_tnm")新しいバージョンのtail_n_mailかどうかを確認します
プログラムが利用可能です。 現在のバージョンは、「tail_n_mail--version」を実行することで取得されます。
メジャーアップグレードが利用可能な場合、警告が返されます。 リビジョンのアップグレードが
利用可能である場合、クリティカルが返されます。 (tail_n_mailは、送信できるログ監視ツールです
興味深いイベントがPostgresログに表示されたらメールで送信します。 見る:
http://bucardo.org/wiki/Tail_n_mail 詳細については)。 の情報も参照してください
「--get_method」オプション。

pgb_pool_cl_active
pgb_pool_cl_waiting
pgb_pool_sv_active
pgb_pool_sv_idle
pgb_pool_sv_used
pgb_pool_sv_tested
pgb_pool_sv_login
pgb_pool_maxwait
(シンボリックリンク: "check_postgres_pgb_pool_cl_active"、 "check_postgres_pgb_pool_cl_waiting"、
"check_postgres_pgb_pool_sv_active"、 "check_postgres_pgb_pool_sv_idle"、
"check_postgres_pgb_pool_sv_used"、 "check_postgres_pgb_pool_sv_tested"、
"check_postgres_pgb_pool_sv_login"、および "check_postgres_pgb_pool_maxwait")

pgbouncerのプール統計を調べます。 各プールには、一連の「クライアント」接続があります。
外部クライアントからの接続を指し、「サーバー」接続を指します。
PostgreSQL自体への接続。 関連するcheck_postgresアクションの前には「cl_」が付いています
それぞれ「sv_」。 アクティブなクライアント接続は、現在リンクされている接続です
アクティブなサーバー接続を使用します。 クライアント接続も「待機中」である可能性があります。つまり、
サーバー接続はまだ割り当てられていません。 サーバー接続は「アクティブ」です(リンクされています)
クライアントへ)、「アイドル」(リンクするクライアント接続を待機)、「使用済み」(ちょうど
クライアントからリンク解除され、まだアイドルプールに戻されていない)、「テスト済み」(現在は
テスト済み)および「ログイン」(ログイン中)。 maxwait値は、
待機中の最も古いクライアント接続が待機している秒数。

pgbouncer_backends
( "シンボリックリンク:check_postgres_pgbouncer_backends")現在の接続数を確認します
pgbouncerを介してXNUMXつ以上のデータベースに対して、オプションで最大値と比較します
許可されます。これは、pgbouncer構成変数によって決定されます。 max_client_connを選択します。
- 警告- 致命的 オプションは、XNUMXつの形式のいずれかを取ることができます。 まず、単純な数は
が与えられます。これは、アラートが出される接続の数を表します。
この選択では、 max_connections 設定。 第二に、利用可能なの割合
接続を与えることができます。 第三に、負の数を与えることができます。
まで残っている接続の数 max_connections が達成された。 のデフォルト値
- 警告- 致命的 「90%」と「95%」です。 を使用してデータベースをフィルタリングすることもできます
  - 含む-除外する オプション。 詳細については、「基本的なフィルタリング」セクションを参照してください。

アイドル状態でないプロセスのみを表示するには、 --ノイドル 口論。 ユーザーはあなたに注意してください
これが正しく機能するには、スーパーユーザーである必要があるため、接続しています。

例1:ホストquirmの接続数が120に達したときに警告を出し、
150に達するとクリティカルになります。

check_postgres_pgbouncer_backends --host = quirm --warning = 120 --critical = 150 -p 6432 -u pgbouncer

例2:ホストのmax_connections設定の75%に達したときにクリティカルを与える
lancreまたはlancre2。

check_postgres_pgbouncer_backends --warning = '75% '--critical = '75%' --host = lancre、lancre2 -p 6432 -u pgbouncer

例3:ホストに残っている接続スロットが10個しかない場合に警告を出す
プラスミドであり、残りが5つしかない場合は重要です。

check_postgres_pgbouncer_backends --warning = -10 --critical = -5 --host = plasmid -p 6432 -u pgbouncer

MRTG出力の場合、接続数はXNUMX行目、XNUMX行目で報告されます
行は、データベースの名前と現在のmax_client_connを示します。 複数の場合
データベースが照会され、接続数が最も多いデータベースが出力されます。

pgbouncer_checksum
( "シンボリックリンク:check_postgres_pgbouncer_checksum")すべてのpgBouncer設定が
前回チェックした時と同じです。 これは、並べ替えられたリストのチェックサムを生成することによって行われます。
名前とその値を設定します。 データベース名を指定するべきではないことに注意してください。
自動的にデフォルトでpgbouncerになります。 どちらか - 警告 または - 致命的 オプション
与える必要がありますが、両方ではありません。 それぞれの値はチェックサム、32文字です
0進値。 特別な「--critical = XNUMX」オプションを指定して実行すると、
既存のチェックサム。

このアクションには、Digest :: MD5モジュールが必要です。

例1:ポート6432でpgbouncer構成の初期チェックサムを見つけるには、
デフォルトユーザー(通常はpostgres)

check_postgres_pgbouncer_checksum --port = 6432 --critical = 0

例2:設定が変更されていないことを確認し、変更されている場合は警告します。
上記。

check_postgres_pgbouncer_checksum --port=6432 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231

MRTG出力の場合、チェックサムの一致に失敗したことを示す1または0を返します。
チェックサムは「--mrtg」引数として提供する必要があります。 XNUMX行目は常に
現在のチェックサム。

pgagent_jobs
( "symlink:check_postgres_pgagent_jobs")すべてのpgAgentジョブが
前の時間間隔で実行されましたが成功しました。 これは、
結果がゼロ以外のステップ。

「--warning」または「--critical」、あるいはその両方を時間として指定でき、ジョブは次のようになります。
現在の時刻より前に指定された期間内に障害がないかチェックしました。 有効
単位は秒、分、時間、日です。 すべて最初の文字に省略できます。
単位が指定されていない場合、「秒」が想定されます。

例1:前日に実行されたジョブが失敗したときにクリティカルを与えます。

check_postgres_pgagent_jobs --critical = 1d

例2:先週実行されたジョブが失敗したときに警告を出します。

check_postgres_pgagent_jobs --warning = 7d

例3:過去2時間に失敗したジョブにクリティカルを与え、
過去4時間に失敗したジョブ:

check_postgres_pgagent_jobs --critical = 2h --warning = 4h

準備されたtxns
( "シンボリックリンク:check_postgres_prepared_txns")既存の準備済みの年齢を確認します
トランザクション。 彼らは一部であるため、ほとんどの人は準備されたトランザクションを使用しないことに注意してください
XNUMXつの部分からなるコミットであり、保守が複雑です。 また、それらを混同しないでください
プリペアドステートメント。これは、ほとんどの人がプリペアドを聞いたときに考えるものです。 NS
警告のデフォルト値は1秒で、準備されたトランザクションの使用を検出します。
ほとんどのシステムではおそらく間違いです。 警告とクリティカルは秒数です
アラートが出される前に、準備されたトランザクションが開かれています。

例1:準備されたトランザクションの検出について警告を出します。

check_postgres_prepared_txns -w 0

例2:準備されたトランザクションが10を超えて開かれている場合は、クリティカルを指定します
秒ですが、データベースの「shrike」には最大360秒かかります。

check_postgres_prepared_txns --critical = 10 --exclude = shrike
check_postgres_prepared_txns --critical = 360 --include = shrike

MRTG出力の場合、最も古いトランザクションが開いている秒数を次のように返します。
最初の行、およびどのデータベースが最後の行として取得されたか。

クエリ実行時間
( "symlink:check_postgres_query_runtime")特定のクエリの実行にかかる時間をチェックします。
それに対して「EXPLAINANALYZE」を実行します。 NS - 警告- 致命的 オプションは
クエリにかかる最大時間。 有効な単位は、秒、分、および時間です。
anyは最初の文字に省略できます。 単位が指定されていない場合、「秒」が想定されます。
警告とクリティカルオプションの両方を指定する必要があります。 ビューまたは関数の名前
実行するには、に渡す必要があります --クエリ名 オプション。 XNUMXつの単語で構成されている必要があります
(またはschema.word)、最後にオプションの括弧があります。

例1:「speedtest」という名前の関数が10秒以内に実行に失敗した場合、または
もっと少なく。

check_postgres_query_runtime --queryname = 'speedtest()' --critical = 10 --warning = 10

MRTG出力の場合、クエリが最初の行で完了するまでの時間を秒単位で報告します。
XNUMX行目には、データベースがリストされています。

クエリ時間
( "symlink:check_postgres_query_time")XNUMXつ以上で実行中のクエリの長​​さをチェックします
データベース。 同じデータベースクラスターでこれを複数回実行する必要はありません。 ノート
これは、「トランザクションでアイドル状態」のクエリをすでに除外していること。 データベースは
を使用してフィルタリング - 含む-除外する オプション。 「基本的なフィルタリング」セクションを参照してください
詳細については。 クエリを実行しているユーザーをフィルタリングすることもできます --includeuser
--excludeuser オプション。 詳細については、「ユーザー名のフィルタリング」を参照してください。

の値 - 警告- 致命的 オプションは時間であり、デフォルトは '2
それぞれ「分」と「5分」。 有効な単位は、「秒」、「分」、「時間」、または
'日々'。 それぞれが単数で書かれることもあれば、最初の文字だけに省略されることもあります。 ユニットがない場合
が与えられた場合、単位は秒と見なされます。

このアクションには、Postgres8.1以降が必要です。

例1:クエリが3分を超えて実行されている場合は警告を出し、
5分より長い場合は重要です。

check_postgres_query_time --port = 5432 --warning = '3分' --critical = '5分'

例2:デフォルト値(2分と5分)を使用して、それらを除くすべてのデータベースをチェックします
'template'で始まります。

check_postgres_query_time --port = 5432 --exclude =〜^ template

例3:ユーザー 'don'のクエリが20秒を超えて実行されている場合に警告する

check_postgres_query_time --port = 5432 --includeuser = don --warning = 20s

MRTG出力の場合、最初のクエリで最も長く実行されているクエリの長​​さを秒単位で返します
ライン。 XNUMX行目は、データベースの名前を示しています。

Replica_row
( "シンボリックリンク:check_postgres_replicate_row")マスター/スレーブレプリケーションが機能していることを確認します
XNUMXつ以上のスレーブに。

最初の「--dbname」、「-host」、「-port」などのオプションはマスターと見なされます。
その後の使用はスレーブです。 値または - 警告- 致命的 オプションは
時間の単位であり、少なくともXNUMXつを指定する必要があります(デフォルトなし)。 有効な単位は「秒」です。
「分」、「時間」、または「日」。 それぞれを単数で書くことも、単に
最初の一文字。 単位が指定されていない場合、単位は秒と見なされます。

このチェックは、マスターのXNUMXつの行を更新してから、所要時間を測定します。
スレーブに適用されます。 これを行うには、レプリケートされているテーブルを選択してから、
変更可能で、他のプロセスによって変更されない行を見つけます。 NS
この行の特定の列は、ある値から別の値に変更されます。 このすべてが供給されます
「repinfo」オプションに追加し、コンマで区切って次のオプションを含める必要があります。
テーブル名、主キー、キーID、列、最初の値、XNUMX番目の値。

例1:Slonyは、「orders」という名前のテーブルをホスト「alpha」からホスト「beta」に複製しています。
データベースの「販売」。 テーブルの主キーの名前はidで、次のようになります。
IDが3の行をテストします(これは履歴であり、変更されることはありません)。 コラムがあります
「slon」の値から「nols」に切り替えてチェックする「salesrep」という名前
レプリケーション。 レプリケーションが10以内に発生しない場合は、警告をスローします
秒です。

check_postgres_replicate_row --host = alpha --dbname = sales --host = beta
--dbname = sales --warning = 10 --repinfo = orders、id、3、salesrep、slon、nols

例2:Bucardoは、「receipt」という名前のテーブルをホスト「green」からホストに複製しています
「赤」、「青」、「黄色」。 両側のデータベースは「public」です。 スレーブデータベース
ポート5455で実行されています。主キーの名前は「receipt_id」で、使用する行です。
の値は9で、テスト用に変更する列は「ゾーン」と呼ばれます。 良い
この列の値として「north」と「south」を切り替え、次の場合にクリティカルをスローします。
変更は、5秒以内にXNUMXつのスレーブすべてに適用されるわけではありません。

check_postgres_replicate_row --host = green --port = 5455 --host = red、blue、yellow
--critical = 5 --repinfo = receipt、receipt_id、9、zone、north、south

MRTG出力の場合、レプリケーションにかかる時間を秒単位で最初の行に返します
終了。 最大時間は4分30秒に設定されています:レプリケーションが行われていない場合
その長い間置くと、エラーがスローされます。

同じスキーマ
( "シンボリックリンク:check_postgres_same_schema")XNUMXつ以上のデータベースが同一であることを確認します
スキーマに関する限り(ただし、内部のデータは含まれません)。 これは特に作成に便利です
マスターからスレーブに使用する場合は、スレーブが変更または破損していないことを確認してください
レプリケーション。 他のほとんどのアクションとは異なり、これには警告や重要な基準はありません-
データベースは同期しているか、同期していないかのどちらかです。 それらが異なる場合は、
違いが表示されます。

特定の違いを除外または除外することをお勧めします。 これを行う方法は、追加することです
「--filter」オプションへの文字列。 オブジェクトのタイプを除外するには、「noname」を使用します。ここで、「name」
オブジェクトのタイプです。たとえば、「noschema」です。 特定のタイプのオブジェクトを除外するには
それらの名前に対する正規表現には、「noname = regex」を使用します。 以下の例を参照してください。
より良い理解。

フィルタリングできるオブジェクトのタイプは次のとおりです。

user
スキーマ
テーブル
ビュー
index
シーケンス
制約
トリガー
function

フィルタオプション「noposition」は、内の列の位置の検証を防ぎます
列で番号の横にあるXをクリックします。

フィルタオプション「nofuncbody」は、すべての関数の本体の比較を防ぎます。

フィルタオプション「noperm」は、オブジェクトのアクセス許可の比較を防ぎます。

XNUMX番目のデータベースを提供するには、次の呼び出しによって最初のデータベースに違いを追加するだけです。
適切な接続引数。 たとえば、ホストalphaとのデータベースを比較するには
ブラボー、「-dbhost = alpha、bravo」を使用します。 以下の例も参照してください。

単一のホストのみが指定されている場合は、「時間ベースの」レポートを実行していると見なされます。 NS
これが初めて実行されると、データベース内のすべてのアイテムのスナップショットがローカルに保存されます
ファイル。 再度実行すると、そのスナップショットが読み込まれ、「データベース#2」になります。
現在のデータベースと比較。

古い保存ファイルを新しいバージョンに置き換えるには、-replace引数を使用します。

さまざまな時点でスナップショットを有効にするには、「-suffix」引数を使用して作成します。
各実行に固有のファイル名。 以下の例を参照してください。

例1:ホストのスターとライン上のXNUMXつのデータベースが同じであることを確認します。

check_postgres_same_schema --dbhost = star、line

例2:以前と同じですが、名前に「slony」が含まれるトリガーを除外します

check_postgres_same_schema --dbhost = star、line --filter = "notrigger = slony"

例3:以前と同じですが、すべてのインデックスも除外します

check_postgres_same_schema --dbhost = star、line --filter = "notrigger = slony noindexes"

例4:異なるポートのデータベース「battlestar」の違いを確認する

check_postgres_same_schema --dbname = batchstar --dbport = 5432,5544

例5:日次および週次のスナップショットファイルを作成する

check_postgres_same_schema --dbname = Cyclon --suffix = daily
check_postgres_same_schema --dbname = Cyclon --suffix = weekly

例6:履歴比較を実行してから、ファイルを置き換えます

check_postgres_same_schema --dbname = Cyclon --suffix = daily --replace

シーケンス
( "symlink:check_postgres_sequence")のすべてのシーケンスに残っているスペースをチェックします
データベース。 これは、使用された可能性のある合計値のパーセントとして測定されます
シーケンスごとに。 NS - 警告- 致命的 オプションは次のように表現する必要があります
パーセンテージ。 デフォルト値は 85% 警告と 95% クリティカルのために。 してもいいです
--includeおよび--excludeを使用して、チェックするシーケンスを制御します。 これに注意してください
チェックは異常を説明します 最小値増加 by 値ですが、
シーケンスはサイクルするかどうかに設定されます。

Nagiosの出力には、シーケンスの名前、使用されたパーセンテージ、および数が示されます
残りの「呼び出し」の数は、そのシーケンスでnextvalをさらに何回呼び出すことができるかを示します
最大値に達する前に。

MRTGの出力は、最初の行のすべてのシーケンスで最高のパーセンテージを返します。
XNUMX行目にそのパーセンテージが「|」で区切られた各シーケンスの名前
(パイプ)そのパーセンテージに複数のシーケンスがある場合。

例1:シーケンスが95%いっぱいに近づいている場合は、警告を表示します。

check_postgres_sequence --dbport = 5432 --warning = 95%

例2:「orders_id_seq」という名前のシーケンスが半分以下であることを確認します。

check_postgres_sequence --dbport = 5432 --critical = 50%-include = orders_id_seq

設定_チェックサム
( "symlink:check_postgres_settings_checksum")すべてのPostgres設定が
前回チェックした時と同じです。 これは、並べ替えられたリストのチェックサムを生成することによって行われます。
名前とその値を設定します。 同じデータベース内の異なるユーザーが持っている可能性があることに注意してください
ALTER USERの使用、およびスーパーユーザーがより多くを見るという事実のために、異なるチェックサム
通常のユーザーよりも設定。 どちらか - 警告 または - 致命的 オプションは
与えられますが、両方ではありません。 それぞれの値はチェックサムであり、32文字のXNUMX進数です。
価値。 特別な「--critical = 0」オプションを指定して実行すると、既存のオプションを見つけることができます
チェックサム。

このアクションには、Digest :: MD5モジュールが必要です。

例1:デフォルトユーザーを使用して、ポート5555でデータベースの初期チェックサムを検索します
(通常はpostgres)

check_postgres_settings_checksum --port = 5555 --critical = 0

例2:設定が変更されていないことを確認し、変更されている場合は警告します。
上記。

check_postgres_settings_checksum --port=5555 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231

MRTG出力の場合、チェックサムの一致に失敗したことを示す1または0を返します。
チェックサムは「--mrtg」引数として提供する必要があります。 XNUMX行目は常に
現在のチェックサム。

slony_status
( "symlink:check_postgres_slony_status")Slonyクラスターのステータスをチェックインする
Slonyのsl_statusビューの結果を見てください。 これは、の数として返されます
「ラグタイム」の秒。 NS - 警告- 致命的 オプションは時間で表す必要があります。
デフォルト値は 60 警告と 300 クリティカルのために。

オプションの引数 -スキーマ Slonyがインストールされているスキーマを示しました。 それであれば
指定しない場合、このチェックが実行されるたびにスキーマが自動的に決定されます。

例1:Slonyが20秒以上遅れている場合は警告を出します

check_postgres_slony_status --警告 20

例2:スキーマ「_slony」の下にインストールされたSlonyが10を超えている場合にクリティカルを与える
分が遅れた

check_postgres_slony_status --schema = _slony --critical = 600

タイムシンク
( "symlink:check_postgres_timesync")ローカルシステム時刻を報告された時刻と比較します
XNUMXつ以上のデータベースによる。 NS - 警告- 致命的 オプションはの数を表します
アラートが発生する前のXNUMXつのシステム間の秒数。 どちらも指定されていない場合、
デフォルト値である「2」と「5」が使用されます。 警告値はこれより大きくすることはできません
臨界値。 このテストは正確ではないため、「0」または「1」の値はそうではありません。
お勧めします。

返される文字列は、時間差と、書き込まれた各側の時間を示します
不足しています。

例1:ホストankh、morpork、およびklatchのデータベースが3以下であることを確認します
現地時間からの秒数:

check_postgres_timesync --host = ankh、morpork、klatch --critical = 3

MRTG出力の場合、最初のXNUMX行に、
現地時間とデータベース時間。 XNUMX行目は、データベースの名前を返します。

txn_idle
( "シンボリックリンク:check_postgres_txn_idle") "アイドルインの数と期間をチェックします
XNUMXつ以上のデータベースでのトランザクション」クエリ。これを複数回実行する必要はありません。
同じデータベースクラスター上。 データベースは、を使用してフィルタリングできます - 含む
-除外する オプション。 詳細については、以下の「基本的なフィルタリング」セクションを参照してください。

この - 警告- 致命的 オプションは、時間の単位、符号付き整数、または
時間の単位を表す整数。両方を指定する必要があります(デフォルトはありません)。 有効な単位
「秒」、「分」、「時間」、または「日」です。 それぞれを単数または省略形で書くことができます
最初の文字だけに。 単位が指定されておらず、番号が符号なしの場合、単位
秒と見なされます。

このアクションには、Postgres8.3以降が必要です。

例1:トランザクションで15を超えてアイドル状態になっている接続がある場合は、警告を表示します
秒:

check_postgres_txn_idle --port = 5432 --warning = '15秒 '

例2:トランザクションが50以上ある場合に警告を出す

check_postgres_txn_idle --port = 5432 --warning = '+ 50'

例3:5つ以上の接続がトランザクションでアイドル状態になっている場合は、クリティカルを指定します
10秒以上:

check_postgres_txn_idle --port = 5432 --critical = '5 for 10 seconds'

MRTG出力の場合、最も長いアイドルトランザクションがあった時間を秒単位で返します
ランニング。 XNUMX行目は、データベースの名前とその他の情報を返します。
最長のトランザクション。

txn_time
( "symlink:check_postgres_txn_time")XNUMXつ以上のオープントランザクションの長さをチェックします
データベース。 データベースクラスターごとにこのコマンドを複数回実行する必要はありません。
データベースは、を使用してフィルタリングできます。 - 含む-除外する オプション。 「BASIC」を参照してください
詳細については、「フィルタリング」セクションを参照してください。トランザクションの所有者は、次の方法でフィルタリングすることもできます。
活用 --includeuser--excludeuser オプション。 「ユーザー名のフィルタリング」セクションを参照してください
のガイドをご参照ください。

値または - 警告- 致命的 オプションは時間の単位であり、提供する必要があります
(デフォルトなし)。 有効な単位は、「秒」、「分」、「時間」、または「日」です。 それぞれが
単数で書かれるか、最初の文字だけに省略されます。 単位が指定されていない場合、
単位は秒と見なされます。

このアクションには、Postgres8.3以降が必要です。

例1:トランザクションが10分を超えて開いている場合は、クリティカルを指定します。

check_postgres_txn_time --port = 5432 --critical = '10分 '

例1:ユーザー 'warehouse'のトランザクションが30秒以上開いている場合に警告する

check_postgres_txn_time --port-5432 --warning = 30s --includeuser = Warehouse

MRTG出力の場合、トランザクションが開いている最大時間を秒単位で返します。
最初の行。 XNUMX行目は、データベースの名前を示しています。

txn_wraparound
( "シンボリックリンク:check_postgres_txn_wraparound")トランザクションのラップアラウンドにどれだけ近いかをチェックします
以上のデータベースが取得されています。 NS - 警告- 致命的 オプションは番号を示します
実行されたトランザクションの数であり、正の整数である必要があります。 どちらのオプションも指定されていない場合、
デフォルト値の1.3億と1.4億が使用されます。 このコマンドをこれ以上実行する必要はありません
データベースクラスターごとにXNUMX回以上。 この数の詳細については
を表し、それについて何をすべきか、ページをご覧ください
<http://www.postgresql.org/docs/current/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND>

警告と重要な値は、Perlのように、読みやすさのために数字にアンダースコアを付けることができます
ありません。

例1:ローカルホストデータベースのデフォルト値を確認する

check_postgres_txn_wraparound --host = localhost

例2:ポート6000を確認し、1.7億のトランザクションがヒットしたときにクリティカルを与えます。

check_postgres_txn_wraparound --port=6000 --critical=1_700_000_000

MRTG出力の場合、XNUMX行目のすべてのデータベースの最大トランザクション数を返します。
4行目は、それがどのデータベースであるかを示しています。

バージョン
( "symlink:check_postgres_version")必要なバージョンのPostgresが
ランニング。 NS - 警告- 致命的 オプション(XNUMXつだけが必要)は次の形式である必要があります
XY or XYZ コラボレー X メジャーバージョン番号です、 Y はマイナーバージョン番号であり、 Z is
リビジョン。

例1:ポート5678のデータベースがバージョン8.4.10でない場合は、警告を表示します。

check_postgres_version --port = 5678 -w = 8.4.10

例2:ホストのvalley、grain、またはsunshineのデータベースが8.3でない場合は、警告を表示します。

check_postgres_version -Hバレー、グレイン、サンシャイン--critical = 8.3

MRTG出力の場合、最初の行で成功または失敗を示す1または0を報告します。 NS
XNUMX行目は、現在のバージョンを示しています。 バージョンは「--mrtg」を介して提供する必要があります
オプションを選択します。

wal_files
( "シンボリックリンク:check_postgres_wal_files")WALファイルがいくつ存在するかを確認します pg_xlog
あなたの外にあるディレクトリ データディレクトリ、時には別のシンボリックリンクとして
パフォーマンス上の理由から物理ディスク。 このアクションは、スーパーユーザーとして実行する必要があります。
の内容にアクセスする pg_xlog ディレクトリ。 このアクションを使用するための最小バージョンは
Postgres8.1。 NS - 警告- 致命的 オプションは、単にファイルの数です。
pg_xlog ディレクトリ。 これを設定する数はさまざまですが、一般的なガイドラインは
問題を早期に発見するために、通常よりもわずかに高い数値。

通常、WALファイルは閉じられてから再利用されますが、実行時間の長いオープントランザクション、または
欠陥のある アーカイブコマンド スクリプトを使用すると、Postgresが作成するファイルが多すぎる可能性があります。 最終的には、
これにより、それらが置かれているディスクのスペースが不足し、その時点でPostgresは
シャットダウン。

例1:ホスト「pluto」でWALファイルの数が20以下であることを確認します

check_postgres_wal_files --host = pluto --critical = 20

MRTG出力の場合、1行目のWALファイルの数を報告します。

再構築_シンボリックリンク
再構築_symlinks_force
このアクションは他の引数を必要とせず、データベースに接続しませんが、単に接続します
各アクションの現在のディレクトリに、次の形式でシンボリックリンクを作成します
check_postgres_。 ファイルがすでに存在する場合、それは上書きされません。 もしも
アクションはrebuild_symlinks_forceであり、シンボリックリンクは上書きされます。 オプション
--symlinksは、-action = rebuild_symlinksの短い言い方です。

BASIC フィルタリング


オプション - 含む-除外する チェックするものを制限するために組み合わせることができます、
アクションに応じて。 以下を使用すると、データベースの名前をフィルタリングできます
アクション:バックエンド、database_size、locks、query_time、txn_idle、およびtxn_time。 の名前
次のアクションを使用すると、リレーションをフィルタリングできます:bloat、index_size、
table_size、relation_size、last_vacuum、last_autovacuum、last_analyze、および
last_autoanalyze。 settings_checksumを使用すると、設定の名前をフィルタリングできます
アクション。 disk_spaceアクションを使用すると、ファイルシステムの名前をフィルタリングできます。

インクルードオプションのみが指定されている場合は、一致するエントリのみがチェックされます。
ただし、除外と包含の両方が指定されている場合は、最初に除外が行われ、包含が最初に行われます。
その後、除外された可能性のあるものを元に戻すため。 両方 - 含む-除外する できる
複数回指定するか、コンマ区切りのリストとして指定します。 主要なチルダは
正規表現として次の単語。

スキーマを一致させるには、検索語を単一のピリオドで終了します。 リーディングチルダを使用できます
スキーマについても同様です。

フィルタリングを使用するときは注意してください。たとえば、バックエンドの包含ルールは次のようになります。
一致するデータベースにバックエンドがなかっただけでなく、
データベースの名前のつづりを間違えました!

例:

pg_classという名前のアイテムのみをチェックします。

--include = pg_class

文字「pg_」を含むアイテムのみをチェックします。

--include = 〜pg_

'pg_'で始まる項目のみをチェックしてください:

--include =〜^ pg_

'test'という名前の項目を除外します。

--exclude = test

文字 'testを含むすべてのアイテムを除外します。

--exclude = 〜test

スキーマ 'pg_catalog'のすべてのアイテムを除外します。

--exclude = 'pg_catalog。'

文字「ace」を含むすべてのアイテムを除外しますが、アイテム「faceoff」は許可します。

--exclude = 〜ace --include = faceoff

文字「slon」を含む文字「pg_」で始まるすべてのアイテムを除外する、または
'sql_settings'または 'green'という名前です。 具体的には文字で項目を確認してください
名前に「prod」が含まれ、「pg_relname」という名前の項目を常にチェックします。

--exclude =〜^ pg _、〜slon、sql_settings --exclude = green --include = 〜prod、pg_relname

USER NAME フィルタリング


オプション --includeuser--excludeuser 一部のアクションで使用して、調査のみを行うことができます
XNUMX人以上のユーザーが所有する(または所有しない)データベースオブジェクト。 NS --includeuser オプション
常に切り札 --excludeuser オプション。 各オプションを複数回指定できます
複数のユーザー、またはコンマ区切りのリストを指定できます。 現在使用しているアクション
これらのオプションは次のとおりです。

データベースサイズ
last_analyze
last_autoanalyze
last_vacuum
last_autovacuum
クエリ時間
Relation_size
txn_time

例:

gregという名前のユーザーが所有するアイテムのみをチェックします。

--includeuser = greg

watsonまたはcrickのいずれかが所有するアイテムのみを確認してください。

--includeuser = watson、crick

crick、franklin、watson、またはwilkinsが所有するアイテムのみを確認してください。

--includeuser = watson --includeuser = franklin --includeuser = crick、wilkins

ユーザーscottに属するものを除くすべての項目をチェックします。

--excludeuser = scott

テスト モード


設定を支援するために、このプログラムは、を指定することによって「テストモード」で実行できます。
- テスト オプション。 これにより、いくつかの基本的なテストが実行され、データベースが次のようになることを確認します。
連絡があり、ユーザーが
Postgresのバージョンが十分に新しく、stats_row_levelが有効になっている場合は、スーパーユーザー。

onworks.net サービスを使用してオンラインで check_postgres_autovac_freezep を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad