3

consul のデモでは、ディスク使用率とメモリ使用率のチェックがあります。ここに画像の説明を入力

http://demo.consul.io/ui/#/ams2/nodes/ams2-server-1

デモが示していることを行うための構成をどのように作成できますか? 10% で警告、5% で重大なエラー ?

これが私が試していることです

{
  "check": {
     "name": "Disk Util",
     "script": "disk_util=$(df -k | grep '/dev/sda1' | awk '{print $5}' | sed 's/[^0-9]*//g' ) | if [ $disk_util >  90 ] ; then echo 'Disk /dev/sda above 90% full' && exit 1; elif [ $disk_util > 80 ] ; then echo 'Disk /dev/sda above 80%' && exit 3;  else exit 0; fi",
     "interval": "2m"
     }
}

これは同じスクリプトですが、より人間が読める形式になっています

disk_util=$(df -k | grep '/dev/sda1' | awk '{print $5}' | sed 's/[^0-9]*//g' ) | 
if [ $disk_util >  90 ] 
 then echo 'Disk /dev/sda above 90% full' && exit 1
elif [ $disk_util > 80 ] 
 then echo 'Disk /dev/sda above 80%' && exit 3
else exit 0; fi

チェックは機能しているようですが、テキストは出力されません。これが機能していることを確認し、出力を印刷するにはどうすればよいですか?

ここに画像の説明を入力

4

4 に答える 4

7
  1. 表示されている出力は、Nagios プラグイン check_disk ( https://www.monitoring-plugins.org/doc/man/check_disk.html )によって生成されます。
  2. 「出力」フィールドは、チェックの stdout によって入力されます。チェックは正常に実行され、出力は生成されません。だからあなたは何も見えません。
  3. いくつかのメモを追加するには、ドキュメントで概説されているように、チェック定義に「メモ」フィールドを追加するだけです: https://www.consul.io/docs/agent/checks.html

チェック json ファイルは次のようになります。

{
  "check": {
    "name": "disks",
    "notes": "Critical 5%, warning 10% free",
    "script": "/path/to/check_disk -w 10% -c 5%",
    "interval": "2m"
  }
}
于 2015-08-06T21:25:27.717 に答える
1

警告状態の終了コードは 1、クリティカルの場合は 2 以上である必要があります。( https://www.consul.io/docs/agent/checks.htmlの「Check Scripts」を参照してください)。そのため、終了行を交換したいと思うでしょう。

「OK」状態 (ディスク使用率 < 80%) では何も出力されません。これが、空白の出力が表示される理由である可能性が最も高いです。

独自のプラグインを展開するのではなく、nagios プラグインを使用するという考えを支持します。多くの OS には、yum/apt のインストール先である nagios-plugins パッケージがあります。

于 2016-09-21T00:28:39.140 に答える
0

ヘルスチェックは、チェックの終了コードに依存しています。ヘルス チェックが Consul サーバーによって読み取られているかどうかをテストするには、常に 1 で終了するスクリプトを記述し、ヘルス チェックが失敗したことを確認します。次に、常に 0 を返すスクリプトに置き換えると、ヘルス チェックに合格したことが表示されます。

UI にテキストを返したい場合は、json に出力フィールドを追加します。

于 2015-06-25T23:19:12.687 に答える
0

領事は分析するstdoutだけのようで、そうではありませんstderr2>&1サービス チェック ファイルの設定でリダイレクト () を使用してテストしました。それはうまくいくようです!

JSON 構成

{
  "check": {
    "name": "disks",
    "notes": "Critical 5%, warning 10% free",
    "script": "/path/to/check_disk -w 10% -c 5% 2>&1",
    "interval": "2m"
  }
}

出力結果

ここに画像の説明を入力

于 2017-07-26T13:52:27.807 に答える