GoGPT Best VPN GoSearch

OnWorksファビコン

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

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

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

プログラム:

NAME


rrdtutorial - Alex van den Bogaerdt の RRDtool チュートリアル

DESCRIPTION


RRDtool は Tobias Oetiker によって書かれました[メール保護]>多くの方からの寄稿で
世界中の。 このドキュメントは Alex van den Bogaerdt によって書かれました
<[メール保護]> RRDtool とは何か、および RRDtool で何ができるかを理解するのに役立ちます
あなた。

RRDtool で提供されるドキュメントは、一部の人にとっては技術的すぎる可能性があります。 これ
チュートリアルは、RRDtool の基本を理解するのに役立ちます。 それはあなたを準備するはずです
ドキュメントを自分で読んでください。 また、統計に関する一般的な事項についても説明します。
ネットワーキングに重点を置いています。

チュートリアル


重要
このドキュメントを読み飛ばさないでください。 このドキュメントの最初の部分では、
基本的で退屈かもしれません。 しかし、基本を理解していない場合、例は役に立ちません。
あなたにとって意味のあるものになります。

時々物事は変わります。 この例では、代わりに「0.04」のような数値を提供していました
「4.00000e-02」。 これらは実際には同じ数字で、書き方が異なるだけです。 しないでください
rrdtool の将来のバージョンで、わずかに異なる形式の出力が表示される場合は注意してください。
このドキュメントの例は、RRDtool のバージョン 1.2.0 に適しています。

また、時々バグが発生します。 それらは、例の結果にも影響を与える可能性があります。
例 speed4.png はこれに悩まされていました (if-
発言が間違っていた)。 通常のデータは問題ありません (rrdtool のバグは長続きしません)
ただし、NaN、INF などの特殊なケースは、もう少し長く続く場合があります。 場合は別のバージョンを試してください
あなたはできるか、それと一緒に暮らすことができます。

speed4.png の例を修正しました (そしてメモを追加しました)。 他にも例があるかもしれません
同じまたは類似のバグに苦しんでいます。 自分で修正してみてください。これは素晴らしいことです
運動。 ただし、このドキュメントのソースへの修正として結果を提出しないでください。
ユーザーのリストで議論するか、私に手紙を書いてください。

この試験は is RRDツール?
RRDtool は、ラウンド ロビン データベース ツールを指します。 ラウンドロビンは、
固定量のデータ、および現在の要素へのポインター。 いくつかの円を考えてください
エッジにドットがプロットされます。 これらのドットは、データを保存できる場所です。 を描く
円の中心からいずれかの点への矢印。 これがポインタです。 とき
現在のデータが読み書きされると、ポインタは次の要素に移動します。 私たちがいるように
円には始まりも終わりもありません。 後
一方、使用可能なすべての場所が使用され、プロセスは古い場所を自動的に再利用します。
場所。 この方法では、データセットのサイズが大きくならないため、
メンテナンス。 RRDtool は、ラウンド ロビン データベース (RRD) で動作します。 保存と取得
それらからのデータ。

この試験は データ できる be 置きます an RRD?
なんらかの時系列データであれば、おそらく収まるでしょう。 これ
いくつかの時点で何らかの値を測定し、これを提供できる必要があることを意味します
RRDtool への情報。 これができれば、RRDtool で保存できるようになります。 その価値
数値でなければなりませんが、MRTG の場合のように整数である必要はありません (次の
セクションでは、このより専門的なアプリケーションについて詳しく説明します)。

以下の多くの例では、Simple Network Management の頭字語である SNMP について説明しています。
プロトコル。 「シンプル」とは、プロトコルを指します。 これは、管理や管理が簡単であることを意味するものではありません。
ネットワークを監視します。 このドキュメントを読み進めると、次のことを十分に理解できるはずです。
人が話していることを理解できる。 今のところ、SNMP ができることを理解してください。
デバイスが保持するカウンターの値をデバイスに照会するために使用されます。 それらからの値です
RRD に保存したいカウンター。

この試験は できる I do   この ツール?
RRDtool は MRTG (Multi Router Traffic Grapher) に由来します。 MRTGは小さな小さなものとして始まりました
大学のインターネット接続の使用状況をグラフ化するためのスクリプト。 MRTGは後だった
温度、速度、電圧、
印刷枚数など。

おそらく、RRDtool を使用して、SNMP 経由で収集されたデータを保存および処理することになるでしょう。
データは、ほとんどの場合、ネットワークまたはネットワークとの間で転送されるバイト (またはビット) です。
コンピューター。 しかし、津波、太陽放射、電力の表示にも使用できます。
消費量、展示会の来場者数、空港付近の騒音レベル、
お気に入りの休日の場所の温度、冷蔵庫の温度など、
想像力が湧いてきます。

データを測定し、数値を RRDtool に入力できるようにするためのセンサーのみが必要です。
次に、RRDtool を使用すると、データベースを作成し、そこにデータを保存し、そのデータを取得して、
Web ブラウザで表示するための PNG 形式のグラフ。 これらの PNG 画像は、
あなたが収集したデータで、たとえば、ネットワークの平均使用量の概要などです。
または発生したピーク。

この試験は if I まだ 持ってる 問題 After 読書 この 資料?
まず第一に:もう一度読んでください! あなたは何かを逃したかもしれません。 コンパイルできない場合
ソースとかなり一般的な OS を使用している場合、おそらく RRDtool のせいではありません。
事前にコンパイルされたバージョンがインターネット上にある場合があります。 それらが信頼できるものから来ている場合
ソース、それらのXNUMXつを入手してください。

一方、プログラムは機能するが、期待した結果が得られない場合は、
構成に問題があります。 構成を確認して、
以下の例。

メーリングリストとそのアーカイブがあります。 リストを数週間読んで、
アーカイブ。 アーカイブを検索せずに質問するのは失礼と見なされます。
問題はすでに他の誰かのために解決されているかもしれません! そうでない場合でも、これはほとんどの場合に当てはまります
この特定のメーリングリストだけでなく、すべてのメーリングリスト。 そのドキュメントを見てください
リストの場所と使用法のための RRDtool が付属しています。

メールを送信して、今すぐメーリングリストに登録することをお勧めします
[メール保護]>「購読」という件名で。 したいことがあれば
このリストを離れて、同じアドレスに電子メールを書いてください。
「退会」。

認定条件 意志 フォーム 助けます 私?
詳細な例を使用して詳細に説明します。 私は次のことを仮定します
提示された順序で説明することで、RRDtool に関する十分な知識が得られます。
自分で実験してください。 初めてうまくいかなくても、あきらめないでください。 再読
あなたが理解していたこと、あなたは何かを見落としているかもしれません。

例に従うことで、実践的な経験を積むことができます。さらに重要なことは、
それがどのように機能するかの背景情報。

XNUMX 進数について知っておく必要があります。 そうでない場合は、最初から始めてください
ここで続行する前に bin_dec_hex を読んでください。

あなたの 最初の ラウンド ロビン データベース
私の意見では、何かを学ぶための最良の方法は、実際にそれを行うことです。 なぜ正しく始めないのか
今? データベースを作成し、それにいくつかの値を入れて、このデータを再度抽出します。 あなたの
出力は、このドキュメントに含まれている出力と同じである必要があります。

簡単なことから始めて、車とルーターを比較したり、走行距離を比較したりします
(必要に応じてマイル)ビットとバイトで。 それはすべて同じです: ある時間にわたるある数です。

インターネットとの間でバイトを転送するデバイスがあるとします。 このデバイスは保持します
オンになるとゼロから始まり、バイトごとに増加するカウンター
転送されました。 このカウンターにはおそらく最大値があります。 この値に達し、
余分なバイトがカウントされると、カウンターはゼロからやり直します。 これは多くの場合と同じです
車の走行距離カウンターなど、世界のカウンター。

ネットワークに関するほとんどの議論はビット/秒について話しているので、それに慣れましょう
すぐに。 XNUMX バイトが XNUMX ビットであると仮定し、バイトではなくビットで考え始めます。 カウンタ、
ただし、それでもバイト数はカウントされます! SNMP の世界では、ほとんどのカウンターは 32 ビットです。 それか
は、0 から 4294967295 までカウントしていることを意味します。これらの値を例で使用します。
デバイスは、要求されると、カウンターの現在の値を返します。 私たちはその時を知っています
最後に要求してからパスがあるため、転送されたバイト数がわかります *** オン
XNUMX 秒あたりの平均***。 これを計算するのはそれほど難しくありません。 最初に言葉で、次に
計算:

1. 現在のカウンターから前の値を引きます。

2. 現在の時刻と前回の時刻 (秒単位) についても同じことを行います。

3. (1) の結果を (2) の結果で割ると、結果は XNUMX バイトあたりのバイト数になります。
XNUMX番。 XNUMX 秒あたりのビット数 (bps) を取得するには、XNUMX を掛けます。

bps = (現在カウンター - カウンター前) / (現在時間 - 前時間) * 8

一部の人々にとっては、これを自動車の例に翻訳すると役立つかもしれません。 これを試さないでください
例、そしてあなたがそうするなら、結果について私を責めないでください!

時速キロメートルで考えることに慣れていない人は、ほとんどの場合、マイル/時で換算できます
km を 1.6 で割った時間 (十分に近い)。 以下の略語を使用します。

m: メートル
km: キロメートル (= 1000 メートル)。
h:時間
s: 秒
km / h:時速キロメートル
m / s:メートル/秒

あなたは車を運転しています。 12:05 にダッシュボードのカウンターを読むと、
車がその瞬間までに 12345 km 移動したこと。 12:10 にもう一度見ると、
12357キロ。 これは、12 分間で XNUMX km 移動したことを意味します。 科学者が翻訳するだろう
これをメートル/秒に変換すると、(バイト数の問題との比較がうまくいきます。
XNUMX 分あたり) 対 (ビット/秒)。

私たちは 12 キロメートル、つまり 12000 メートルを移動しました。 300分またはXNUMX分でそれを行いました
秒。 私たちの速度は 12000m / 300 秒または 40 m/秒です。

km/h で速度を計算することもできます: 12 かける 5 分は XNUMX 時間なので、
12 km に 12 を掛けると 144 km/h になります。 英語を母国語とする友人の場合: それは 90 です
mph なので、この例を自宅や私が住んでいる場所で試さないでください :)

覚えておいてください: これらの数値は平均値です。 から判断する方法はありません。
一定の速度で運転した場合の数値。 このチュートリアルの後半に例があります
それがこれを説明しています。

m/s と bps の計算に違いはないことをご理解いただければ幸いです。 唯一の道
収集するデータは異なります。 キロの k でさえ、ネットワーク用語と同じです
k は 1000 も意味します。

これらすべての興味深い数値を保持できるデータベースを作成します。 方法
プログラムの起動に使用される OS ごとに若干異なる場合がありますが、理解できると思います
それがあなたのものとは異なる場合は、それを解決してください。 上のファイルを上書きしないように注意してください。
次のコマンドを実行するときにシステムを開き、行全体を XNUMX つの長い行として入力します (I
読みやすくするために分割する必要がありました)、すべての「\」文字をスキップします。

rrdtool create test.rrd \
--開始 920804400 \
DS:スピード:カウンター:600:U:U \
RRA:平均:0.5:1:24 \
RRA:平均:0.5:6:10

(したがって、「rrdtool create test.rrd --start 920804400 DS ...」と入力します)

この試験は 持っています 作成した?
その日の正午から始まるテスト (test.rrd) というラウンド ロビン データベースを作成しました。
7 年 1999 月 920804400 日にこのドキュメントを書き始めました (この日付は XNUMX に変換されます)。
以下で説明するように秒)。 私たちのデータベースには、「speed」という名前の XNUMX つのデータ ソース (DS) があります。
カウンターを表します。 このカウンターは XNUMX 分ごとに読み取られます (これがデフォルトです)。
したがって、「--step=300」を入れる必要はありません)。 同じデータベースで XNUMX ラウンド ロビン
アーカイブ (RRA) が保持され、読み取られるたびにデータが平均化されます (たとえば、
平均するものは何もありません)、24 個のサンプルを保持します (24 分の 5 倍は 2 時間です)。 もう一方
6 つの値 (10 分) を平均し、5 のそのような平均 (XNUMX 時間など) を含みます。

RRDtool は、UNIX の世界からの特別なタイム スタンプを使用して動作します。 このタイムスタンプは
1 年 1970 月 XNUMX 日 UTC から経過した秒数。 タイムスタンプ値は
現地時間に変換されるため、タイム ゾーンごとに異なって表示されます。

あなたは私と同じ世界にいない可能性があります。 これはあなたの時間を意味します
ゾーンが異なります。 私が時間について話すすべての例で、時間は間違っているかもしれません。
あなた。 これは例の結果にほとんど影響を与えません。時間を修正するだけです。
読む。 例として、私が「12:05」と表示するところに、英国の人々は「11:05」と表示します。

ここで、データベースにいくつかの数値を入力する必要があります。 読んだふりをしよう
次の番号:

12:05 12345 キロ
12:10 12357 キロ
12:15 12363 キロ
12:20 12363 キロ
12:25 12363 キロ
12:30 12373 キロ
12:35 12383 キロ
12:40 12393 キロ
12:45 12399 キロ
12:50 12405 キロ
12:55 12411 キロ
13:00 12415 キロ
13:05 12420 キロ
13:10 12422 キロ
13:15 12423 キロ

次のようにデータベースに入力します。

rrdtool 更新テスト.rrd 920804700:12345 920805000:12357 920805300:12363
rrdtool 更新テスト.rrd 920805600:12363 920805900:12363 920806200:12373
rrdtool 更新テスト.rrd 920806500:12383 920806800:12393 920807100:12399
rrdtool 更新テスト.rrd 920807400:12405 920807700:12411 920808000:12415
rrdtool 更新テスト.rrd 920808300:12420 920808600:12422 920808900:12423

これは次のように書かれています: update our test database with following numbers

時間 920804700、値 12345
時間 920805000、値 12357

など。

ご覧のとおり、一度に複数の値をデータベースに入力できます。
指図。 読みやすくするために XNUMX で停止する必要がありましたが、XNUMX 行あたりの実際の最大値は OS です
依存。

「rrdtool fetch」を使用して、データベースからデータを取得できるようになりました。

rrdtool fetch test.rrd 平均 --開始 920804400 --終了 920809200

次の出力が返されます。

スピード

920804700: ナン
920805000: 4.0000000000e-02
920805300: 2.0000000000e-02
920805600: 0.0000000000e+00
920805900: 0.0000000000e+00
920806200: 3.3333333333e-02
920806500: 3.3333333333e-02
920806800: 3.3333333333e-02
920807100: 2.0000000000e-02
920807400: 2.0000000000e-02
920807700: 2.0000000000e-02
920808000: 1.3333333333e-02
920808300: 1.6666666667e-02
920808600: 6.6666666667e-03
920808900: 3.3333333333e-03
920809200: ナン
920809500: ナン

予想よりも多くの行が取得される可能性があることに注意してください。 その理由は、あなたが求めるからです。
920809200 で終わる時間範囲。920809200 の後ろに書かれている数字:
上記のリストは、920808900 から 920809200 までの時間範囲をカバーしており、920809200 を除外しています。
確かに、920809200 から 920809500 へのエントリも受信します。
920809200 が含まれます。「nan」の代わりに「NaN」が表示される場合もありますが、これは OS によって異なります。 「なん」
「Not A Number」の略です。 あなたのOSが「U」や「UNKN」などを書いている場合、それは
わかった。 他に何か問題がある場合は、おそらくあなたが犯したエラーが原因です(
私のチュートリアルはもちろん正しいです:-)。 その場合:データベースを削除して試してください
再び。

上記の出力の意味は、以下で明らかになります。

時間 〜へ 作ります 一部 グラフィック
次のコマンドを試してください。

rrdtool グラフ速度.png \
--開始 920804400 --終了 920808000 \
DEF:myspeed=test.rrd:speed:AVERAGE \
LINE2:myspeed#FF0000

これにより、12:00 に開始して 13:00 に終了する speed.png が作成されます。 定義があります
データベース "test.rrd" の RRA "speed" からのデータを使用して、myspeed と呼ばれる変数を作成します。
描かれた線は 2 ピクセルの高さで、変数 myspeed を表します。 色は赤です
(その rgb 表現によって指定されます。以下を参照してください)。

グラフの開始が 12:00 ではなく 12:05 であることがわかります。 それの訳は
それ以前の平均を知るにはデータが不十分です。 これは次の場合にのみ発生します。
いくつかのサンプルを見逃すことがありますが、これはあまり起こらないことを願っています。

これが機能した場合: おめでとうございます! そうでない場合は、何が問題なのかを確認してください。

色は赤、緑、青で構成されています。 コンポーネントごとに、次を指定します。
00 進数で使用する量。XNUMX は含まれていないことを意味し、FF は完全に含まれていることを意味します。
「色」の白は赤、緑、青の混合物です: FFFFFF 「色」の黒はすべて
カラーオフ: 000000

赤 #FF0000
緑 #00FF00
青 #0000FF
マゼンタ #FF00FF (赤と青の混合)
グレー #555555 (全成分の XNUMX 分の XNUMX)

さらに、(最近の RRDtool を使用して) アルファ チャネル (透明度) を追加できます。 の
デフォルトは「FF」で、透明でないことを意味します。

作成したばかりの PNG は、お気に入りの画像ビューアを使用して表示できます。 ウェブブラウザ
URL「file:///the/path/to/speed.png」を介してPNGを表示します

グラフィック   一部 math
画像を見ると、横軸に 12:10、12:20、
12:30、12:40、12:50。 ラベルが合わない場合があります (12:00 と 13:00 はおそらく
候補) したがって、それらはスキップされます。

縦軸は、入力した範囲を表示します。 キロと分けた場合
300 秒までに、非常に小さな数値が得られます。 正確には、最初の値は 12 でした
(12357-12345) を 300 で割ると 0.04 になり、RRDtool では「40 m」と表示されます。
「40/1000」を意味します。 「m」(ミリ)は、メートル(m)、キロメートル、またはメートルとは何の関係もありません。
ミリ! RRDtool はデータの物理単位については認識していません。
無次元数。

距離をメートルで測定した場合、これは (12357000-12345000)/300 =
12000 / 300 = 40。

ほとんどの人は、この範囲の数字に慣れているため、修正します。 我々は出来た
データベースを再作成して正しいデータを保存しますが、もっと良い方法があります。
PNGファイルを作成しながら計算!

rrdtool グラフ速度2.png \
--開始 920804400 --終了 920808000 \
--vertical-label m/s \
DEF:myspeed=test.rrd:speed:AVERAGE \
CDEF:realspeed=myspeed,1000,\* \
LINE2:リアルスピード#FF0000

注: 乗算演算子 * をバックスラッシュでエスケープする必要があります。 そうしないと、
オペレーティング システムがそれを解釈し、ファイル名の展開に使用する場合があります。 配置することもできます
次のような引用符内の行:

"CDEF:realspeed=myspeed,1000,*" \

要約すると、 * が表示されるのは RRDtool であり、シェルではありません。 そしてそれはあなたの殻です
RRDtool ではなく \ を解釈します。 発生した場合は、それに応じて例を調整する必要がある場合があります
異なる動作をするオペレーティング システムまたはシェルを使用します。

この PNG を表示すると、「m」(ミリ) が消えていることがわかります。 これは何
正しい結果になります。 また、画像にラベルが追加されました。 物とは別に
上記のように、PNG は同じように見えるはずです。

計算は上記の CDEF 部分で指定され、逆ポーランド記法で行われます
(「RPN」)。 RRDtool に依頼したのは、「データ ソース myspeed と数値を取得する」です。
1000; それらを乗算します。RPN はまだ気にしないでください。後で詳しく説明します。
詳細。 また、CDEF に関する私のチュートリアルと、RPN に関する Steve Rader のチュートリアルを読むこともできます。
ただし、最初にこのチュートリアルを終了してください。

ちょっとまって! 値に1000を掛けることができれば、表示も可能になるはずです
同じデータから時速キロメートル!

メートル/秒で測定される値を変更するには:

毎時メートルを計算する: 値 * 3600
時速キロメートルを計算する: 値 / 1000
まとめると、値 * (3600/1000) または値 * 3.6 になります。

サンプル データベースでは間違いを犯しており、これを次のように補正する必要があります。
その補正を適用すると、次のようになります。

値 * 3.6 * 1000 == 値 * 3600

それでは、この PNG を作成して、さらに魔法を追加しましょう ...

rrdtool グラフ速度3.png \
--開始 920804400 --終了 920808000 \
--vertical-label km/h \
DEF:myspeed=test.rrd:speed:AVERAGE \
"CDEF:kmh=myspeed,3600,*" \
CDEF:fast=kmh,100,GT,kmh,0,IF \
CDEF:良好=kmh,100,GT,0,kmh,IF \
HRULE:100#0000FF:"許可され​​る最大値" \
AREA:good#00FF00:"良いスピード" \
AREA:fast#FF0000:"速すぎます"

注: ここでは、文字列全体を * 演算子で囲むことにより、別の手段を使用して * 演算子をエスケープします。
二重引用符。

このグラフははるかによく見えます。 速度は km/h で表示され、追加の行もあります。
許可された最大速度(私が走行する道路上)。 今まで使っていた色も変えました
速度を表示し、ラインからエリアに変更しました。

計算はより複雑になりました。 制限速度内の速度測定の場合、
には次の値があります:

kmh が 100 より大きいかどうかを確認 ( kmh,100 ) GT
そうであれば 0 を返し、そうでなければ kmh ((( kmh,100 ) GT ), 0, kmh) IF

制限速度を超える値の場合:

kmh が 100 より大きいかどうかを確認 ( kmh,100 ) GT
そうであれば kmh を返し、そうでなければ 0 を返す ((( kmh,100) GT ), kmh, 0) IF

グラフィック
私は、RRDtool グラフがデータを操作する方法に事実上制限はないと信じています。
どのように機能するかは説明しませんが、次の PNG を見てください。

rrdtool グラフ速度4.png \
--開始 920804400 --終了 920808000 \
--vertical-label km/h \
DEF:myspeed=test.rrd:speed:AVERAGE \
CDEF:nonans=myspeed,UN,0,myspeed,IF \
CDEF:kmh=ノナン,3600,* \
CDEF:fast=kmh,100,GT,100,0,IF \
CDEF:over=kmh,100,GT,kmh,100,-,0,IF \
CDEF:良好=kmh,100,GT,0,kmh,IF \
HRULE:100#0000FF:"許可され​​る最大値" \
AREA:good#00FF00:"良いスピード" \
AREA:fast#550000:"速すぎます" \
STACK:over#FF0000:"オーバースピード"

冒頭のメモを覚えていますか? この例から不明なデータを削除する必要がありました。 の
'nonans' CDEF が新しくなり、6 行目 (以前は 5 行目) が読み取りに使用されていました
'CDEF:kmh=マイスピード,3600,*'

XNUMX つの PNG を表示する簡単な HTML ページを作成してみましょう。

スピード







ファイルに「speed.html」などの名前を付けて、Web ブラウザで確認します。

あとは、定期的に値を測定し、データベースを更新するだけです。 あなたが
データを表示したい場合は、PNG を再作成し、ブラウザでそれらを更新してください。
(注: 特にプロキシが関係している場合は、リロードをクリックするだけでは不十分な場合があります。試してみてください。
shift-reload または ctrl-F5)。

最新情報 in 現実
「update」コマンドはすでに使用しました。次の形式で XNUMX ​​つ以上のパラメータを取りました。
" : 」を入力して現在の時刻を指定できることを知ってうれしいです。
時間として「N」で。 または、Perl で「time」関数を使用することもできます (最も短い例
このチュートリアルでは):

perl -e '印刷時間、"\n" '

プログラムを定期的に実行する方法は、OS 固有です。 しかし、これは疑似の例です
コー​​ド:

- 値を取得し、変数「$speed」に入れます
- rrdtool 更新速度.rrd N:$speed

(テストデータベースでこれを試さないでください。今後の例で使用します)

これですべてです。 上記のスクリプトを XNUMX 分ごとに実行します。 あなたが何を知る必要があるとき
グラフは次のようになります。上記の例を実行してください。 それらをスクリプトに入れることもできます。 後
そのスクリプトを実行すると、上で作成したページ index.html が表示されます。

一部 言葉 on SNMP
車から XNUMX 回ごとに実際のデータを取得できる人はほとんどいないと想像できます。
分。 他のすべての人は、他の種類のカウンターに落ち着く必要があります。 あなたは出来る
プリンターによって印刷されたページ数を測定します。
コーヒー マシン、使用電力をカウントする装置など。 任意の増分
カウンターは、これまでに学んだことを使用して監視およびグラフ化できます。 後で、
温度などの他のタイプの値も監視できます。

RRDtool に関心のある多くの人は、オクテット (バイト) を追跡するカウンターを使用します。
ネットワーク デバイスによって転送されます。 それでは、次はそれを実行しましょう。 私たちはから始めます
データの収集方法の説明。

一部の人々は、このデータ収集を行うことができるツールがあることに気付くでしょう。
あなた。 その人たちは正しいです! ただし、そうではないことを理解することが重要だと思います
必要。 物事がうまくいかなかった理由を特定する必要があるときは、どのようにうまくいかなかったのかを知る必要があります
作業。

この例で使用されている XNUMX つのツールについては、この記事の冒頭で非常に簡単に説明しました。
ドキュメントでは、SNMP と呼ばれます。 これは、ネットワーク化された機器と通信する方法です。 私が使っているツール
以下は「snmpget」と呼ばれ、これがどのように機能するかです。

snmpget デバイス パスワード OID

or

snmpget -v[バージョン] -c[パスワード] デバイス OID

デバイスの場合は、デバイスの名前または IP アドレスに置き換えます。 パスワードについて
SNMP の世界で呼ばれている「コミュニティ読み取り文字列」を使用します。 一部のデバイスでは、
デフォルトの「パブリック」は機能する可能性がありますが、これを無効にしたり、変更したり、保護したりすることができます
プライバシーとセキュリティ上の理由。 デバイスに付属のドキュメントを読むか、
プログラム。

次に、「オブジェクト識別子」を意味する OID と呼ばれるこのパラメーターがあります。

SNMP について学び始めると、非常に混乱するように見えます。 それほど難しいことではありません
管理情報ベース (「MIB」) を見ると。 逆さ木です
単一のノードをルートとし、そこから多数の分岐を使用してデータを記述します。 これらは
ブランチは別のノードで終了し、分岐します。すべてのブランチには名前があり、
それらは、私たちがたどる道を形成します。 私たちが従うブランチは
名前:iso、org、dod、internet、mgmt、mib-2。 これらの名前は、次のように書き留めることもできます。
数字は 1 3 6 1 2 1 です。

iso.org.dod.internet.mgmt.mib-2 (1.3.6.1.2.1)

一部のプログラムが使用する先頭のドットについては、多くの混乱があります。 ありません*
OID の先頭のドット。 ただし、プログラムによっては、OID の上記の部分を
デフォルト。 省略された OID と完全な OID の違いを示すには、
完全な OID を指定する場合は先頭のドット。 多くの場合、これらのプログラムは
あなたにデータを返すときのデフォルトの部分。 さらに悪いことに、彼らにはいくつかの
デフォルトのプレフィックス ...

では、OID の先頭に進みましょう。1.3.6.1.2.1 がありました。そこから、
番号 2 のブランチ「interfaces」に特に関心があります (例: 1.3.6.1.2.1.2)。
または 1.3.6.1.2.1.interfaces)。

まず、SNMP プログラムを取得する必要があります。 事前にコンパイルされたパッケージがあるかどうかを最初に確認する
お使いの OS で利用できます。 これが推奨される方法です。 そうでない場合は、取得する必要があります
自分でソースを取得してコンパイルします。 インターネットにはソースやプログラムなどがあふれています。
検索エンジンまたは好みのものを使用して情報を収集します。

プログラムを取得したとします。 最初に、ほとんどの場合に利用可能なデータを収集してみてください
システム。 覚えておいてください: 最も興味のあるツリーの部分には短い名前があります
私たちが住んでいる世界で!

Fedora Core 3 で使用できる例を示します。うまくいかない場合は、
snmp のマニュアルを読み進めて、例を適応させて動作させてください。

snmpget -v2c -c public myrouter system.sysDescr.0

デバイスは、それ自体の説明 (おそらく空の説明) で応答する必要があります。 あなたが得るまで
おそらく別の「パスワード」または別のデバイスを使用して、デバイスからの有効な回答、
続ける意味がない。

snmpget -v2c -c public myrouterinterfaces.ifNumber.0

結果として、インターフェイスの数が得られることを願っています。 もしそうなら、あなたは続けることができます
「snmpwalk」と呼ばれる別のプログラムを試してください。

snmpwalk -v2c -c public myrouterinterfaces.ifTable.ifEntry.ifDescr

インターフェースのリストが返ってきたら、あと少しです。 次に例を示します。
[user@host /home/alex]$ snmpwalk -v2c -c public cisco 2.2.1.2

interfaces.ifTable.ifEntry.ifDescr.1 = "BRI0: B チャネル 1"
interfaces.ifTable.ifEntry.ifDescr.2 = "BRI0: B チャネル 2"
interfaces.ifTable.ifEntry.ifDescr.3 = "BRI0" 42 進数: 52 49 30 XNUMX
interfaces.ifTable.ifEntry.ifDescr.4 = "Ethernet0"
interfaces.ifTable.ifEntry.ifDescr.5 = "ループバック0"

この cisco 機器で、「Ethernet0」インターフェイスを監視したいと思います。
上記の出力では、XNUMX 番であることがわかります。 私は試します:

[user@host /home/alex]$ snmpget -v2c -c public cisco 2.2.1.10.4 2.2.1.16.4

インターフェイス.ifTable.ifEntry.ifInOctets.4 = 2290729126
インターフェイス.ifTable.ifEntry.ifOutOctets.4 = 1256486519

これで、監視する OID が XNUMX つになりました。

1.3.6.1.2.1.2.2.1.10

 

1.3.6.1.2.1.2.2.1.16

どちらもインターフェイス番号 4 です。

だまされないでください、これは私の最初の試みではありませんでした。 私も理解するのに時間がかかりました
これらすべての数字が何を意味するのか。 それらが説明的なものに翻訳されると、それは大いに役立ちます
テキスト...少なくとも、人々がMIBとOIDについて話しているとき、あなたはそれが何であるかを知っています
だいたい。 インターフェイス番号を忘れずに (インターフェイスに依存しない場合は 0)、試してください。
snmpget から応答が得られない場合は、snmpwalk を実行します。

上記のセクションを理解し、デバイスから番号を取得した場合は、次に進みます
このチュートリアル。 そうでない場合は、戻ってこの部分を読み直してください。

A リアル 世界 例:
楽しく始めましょう。 まず、新しいデータベースを作成します。 XNUMX つのカウンターからのデータが含まれています。
インプット、アウトプットと呼びます。 データは、それを平均化するアーカイブに入れられます。 彼らは1、6、24を取る
または一度に 288 サンプル。 また、最大数を保持するアーカイブにも移動します。 これ
後で説明します。 サンプル間の時間は 300 秒です。
これは XNUMX 分と同じです。

1 サンプルの「平均化」滞在 1 分間の 5 期間
平均化された 6 つのサンプルは、30 分で XNUMX つの平均になります
平均化された 24 個のサンプルが 2 時間で XNUMX つの平均値になります
平均化された 288 サンプルが 1 日で XNUMX つの平均値になります

次の量のデータを格納する MRTG との互換性を試してみましょう。

600 分間のサンプル 5 個: 2 日と 2 時間
600 30 分のサンプル: 12.5 日
600 個の 2 時間サンプル: 50 日
732 1 日サンプル: 732 日

これらの範囲が追加されるため、データベースに格納されるデータの合計量は
約797日。 RRDtool はデータを別の方法で保存します。「毎週」を開始しません。
「毎日」のアーカイブが停止したアーカイブ。 どちらのアーカイブでも、最新のデータは
「今」に近いため、MRTG よりも多くのデータを保持する必要があります。

我々は必要になります:

600 分間の 5 サンプル (2 日と 2 時間)
700 分間の 30 サンプル (2 日と 2 時間 + 12.5 日)
775 時間の 2 サンプル (+ 50 日以上)
797 日の 1 サンプル (上記 + 732 日、797 に切り上げ)

rrdtool create myrouter.rrd \
DS:入力:カウンター:600:U:U \
DS:出力:カウンター:600:U:U \
RRA:平均:0.5:1:600 \
RRA:平均:0.5:6:700 \
RRA:平均:0.5:24:775 \
RRA:平均:0.5:288:797 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797

次に行うことは、データを収集して保存することです。 ここに例があります。 それは書かれている
部分的に疑似コードで作成するには、OSで正確に何をすべきかを見つける必要があります
それは機能します。

宇宙の終わりではありませんが
do
の結果を得る
snmpget ルーター コミュニティ 2.2.1.10.4
変数 $in に
の結果を得る
snmpget ルーター コミュニティ 2.2.1.16.4
変数 $out に

rrdtool update myrouter.rrd N:$in:$out

5分待つ
行われ

次に、XNUMX 日分のデータを収集した後、次を使用してイメージを作成してみます。

rrdtool グラフ myrouter-day.png --start -86400 \
DEF:inoctets=myrouter.rrd:input:AVERAGE \
DEF:outoctets=myrouter.rrd:output:AVERAGE \
AREA:inoctets#00FF00:"渋滞中" \
LINE1:outoctets#0000FF:"アウトトラフィック"

これにより、24 日分のトラフィックを含む画像が生成されます。 60 日は XNUMX 分の XNUMX 時間です
60 秒の分: 24*60*60=86400、今から 86400 秒を引いたところから始めます。 私たちは定義します
(DEF を使用) データベース myrouter.rrd からの平均値としての inoctets および outoctets
「イン」トラフィックの領域と「アウト」トラフィックの線を描画します。

画像を表示し、さらに数日間データを記録し続けます。 必要に応じて、
テスト データベースの例を参照して、さまざまなオプションと計算を取得できるかどうかを確認してください。
作業。

提案: XNUMX 秒あたりのバイト数と XNUMX 秒あたりのビット数で表示します。 イーサネット グラフィックスを作成する
毎秒 XNUMX メガビットを超える場合は赤くなります。

買収・合併 機能
数段落前に、最大値の代わりに最大値を保持する可能性について言及しました。
平均値。 これについてもう少し詳しく見てみましょう。

車の速度に関するすべてのことを思い出してください。 時速 144 km で 5 回走行したとします。
分、その後警察に 25 分間止められた。 講義の最後に私たちは
ラップトップを使用して、データベースから取得した画像を作成して表示します。 見ると
作成した 6 番目の RRA では、XNUMX つのサンプルの平均が得られます。 サンプル
測定値は 144+0+0+0+0+0=144 で、30 分で割ると、
1000 を km/h に換算すると、結果は 24 km/h になります。 私はまだチケットを手に入れますが、そうではありません
もうスピード違反のために:)

明らかに、この場合、平均を見るべきではありません。 場合によっては便利です。
何キロ移動したか知りたい場合は、平均化された画像が正しいでしょう
見るもの。 一方、私たちが移動した速度では、最大数
見た方がはるかに興味深いです。 後で、より多くのタイプを見ていきます。

データについても同様です。 金額を知りたい場合は、平均を見てください。 お望みならば
レートを知るには、最大値を見てください。 時間が経つにつれて、それらはますますバラバラになります。 の
最後に作成したデータベースには、XNUMX 日あたりデータを保持する XNUMX つのアーカイブがあります。 の
平均を保持するアーカイブは低い数値を示し、最大値を示すアーカイブは
より高い数値。

私の車の場合、これは 96 日あたりの平均で 24/4=94 km/h になります (約 XNUMX km 移動するため)。
120 日あたりのキロメートル)、および最大時速 XNUMX km (私の最高速度)
毎日届きます)。

大きな違い。 移動距離を推定するために XNUMX 番目のグラフを見ないでください
私の速度を推定するために最初のグラフを見ないでください。 これは、サンプルが
XNUMX 分間のように接近していますが、平均するとそうではありません。

ロングライドに出かける日もあります。 ヨーロッパを横断して 12 時間旅行すると、
最初のグラフは約 60 km/h まで上昇します。 180 つ目は XNUMX km/h を示します。 この意味は
60 km/h × 24 時間 = 1440 km の距離を移動しました。 私はこれをより高速で行い、
最高時速約180km。 とはいえ、8時間も移動したわけではないだろう
時速180kmで一定速度!

これは実際の例です。ドイツを通過する流れに乗って (速い!)、数回停止します。
ガスとコーヒー。 オーストリアとオランダをゆっくりとドライブします。 で注意してください
山と村。 XNUMX分間から作成されたグラフを見ると
平均すると、まったく異なる画像が得られます。 同じ値が
平均と最大のグラフ (300 秒ごとに測定した場合)。 あなたはできるだろう
停止したとき、トップギアに入ったとき、高速道路を走ったときなどを確認してください。
データの粒度がはるかに高いため、より多くの情報を確認できます。 ただし、これには 12
288 時間あたりのサンプル、または XNUMX 日あたり XNUMX の値なので、長期間にわたって大量のデータになります。
時間の。 したがって、最終的には XNUMX 日あたり XNUMX つの値に平均化します。 この XNUMX つの値から、
もちろん、詳細を見ることはできません。

最後の数段落を理解していることを確認してください。 線と線だけでは価値がない
いくつかの軸の意味を理解し、適切な方法でデータを解釈する必要があります。
これはすべてのデータに当てはまります。

あなたが犯す可能性のある最大の間違いは、収集されたデータを目的外のものに使用することです
に適し。 グラフがまったくない場合は、より良い結果が得られます。

レッツ レビュー フォーム すべき 知っています
データベースの作成方法を知っており、データベースにデータを入れることができます。 数字を出せます
再び画像を作成して、データベースからのデータを計算し、結果を表示します
生データの代わりに。 平均値と最大値の違いを知っていて、
which をいつ使用するか (または、少なくともアイデアが必要です)。

RRDtool は、これまでに学んだこと以上のことができます。 残りを続ける前に
このドキュメントを最初から読み直して、
例。 すべてを完全に理解していることを確認してください。 それは努力する価値があり、役立ちます
このチュートリアルの残りの部分だけでなく、日々の監視を長時間行うこともできます。
この紹介を読んだ後。

Rescale データ ソース 種類
よし、続けたい気分だ。 おかえりなさい、高速化の準備をしましょう
例と説明。

経時的なカウンターを表示するには、XNUMX つの数値を取得する必要があることを知っています。
それらの差を経過時間で割ります。 これは例にとって理にかなっています
私はあなたに与えましたが、他の可能性があります。 たとえば、私は
ルーターからの温度は、入口、いわゆるホットスポット、および
排気。 これらの値はカウンターではありません。 XNUMXつのサンプルの差を取ると
それを 300 秒で割ると、XNUMX 秒あたりの温度変化が求められます。
うまくいけば、これはゼロです! そうでない場合、コンピューター室はおそらく燃えています:)

では、何ができるでしょうか? RRDtool に、測定した値をそのまま保存するように指示できます。
です(これは完全に真実ではありませんが、十分に近いです)。 私たちが作るグラフはとてもよく見えます
むしろ一定の値を示します。 ルーターがビジー状態であることを知っている (動作している)
→より多くの電力を使用する→より多くの熱を発生させる→温度が上昇する)。 知っている
ドアを開けたままにしておくと(部屋は空調されています)->残りの部分からの暖かい空気
電算室へ流入→入口温度上昇) など
以前はデータベースを作成するときに使用していたデータ型はカウンターでしたが、現在は別の型になっています
データ型であり、別の名前です。 ゲージといいます。 そういうデータは他にもある
タイプ:

- COUNTER これは既に知っています
- これを学んだばかりのGAUGE
- 派生する
- 絶対

追加の XNUMX つのタイプは、DERIVE と ABSOLUTE です。 アブソリュートはカウンターのように使用できます
XNUMX つの違い: RRDtool は、読み取り時にカウンターがリセットされると想定します。 つまり、そのデルタは
RRDtool による計算なしで知られているのに対し、RRDtool はカウンターのために計算する必要があります。
タイプ。 例: 最初の例 (12345、12357、12363、12363) は次のようになります: 不明、12、6、
0.残りの計算は同じままです。 もう XNUMX つは、deliver で、counter のようなものです。
カウンターとは異なり、減少することもできるため、負のデルタを持つことができます。 繰り返しますが、残りの
計算は同じままです。

それらをすべて試してみましょう:

rrdtool create all.rrd --start 978300900 \
DS:a:カウンター:600:U:U \
DS:b:ゲージ:600:U:U \
DS:c:DERIVE:600:U:U \
DS:d:絶対値:600:U:U \
RRA:平均:0.5:1:10
rrdtool update all.rrd \
978301200:300:1:600:300 \
978301500:600:3:1200:600 \
978301800:900:5:1800:900 \
978302100:1200:3:2400:1200 \
978302400:1500:1:2400:1500 \
978302700:1800:2:1800:1800 \
978303000:2100:4:0:2100 \
978303300:2400:6:600:2400 \
978303600:2700:4:600:2700 \
978303900:3000:2:1200:3000
rrdtool グラフ all1.png -s 978300600 -e 978304200 -h 400 \
DEF:linea=all.rrd:a:AVERAGE LINE3:linea#FF0000:"ライン A" \
DEF:lineb=all.rrd:b:AVERAGE LINE3:lineb#00FF00:"ライン B" \
DEF:linec=all.rrd:c:AVERAGE LINE3:linec#0000FF:"ライン C" \
DEF:lined=all.rrd:d:AVERAGE LINE3:lined#000000:"ライン D"

RRDツール   顕微鏡
・A行はCOUNTER型なので、連続してインクリメントし、RRDtoolで計算する必要がある
違い。 また、RRDtool は差を時間で割る必要があります。
失効した。 これは最終的に 1 の直線になるはずです (デルタは 300、時間は
300)。

· ライン B はタイプ GAUGE です。 これらは「実際の」値であるため、入力したものと一致する必要があります。
波の一種。

· 行 C はタイプ DERIVE です。 減少できるカウンターである必要があります。 間でそうする
2400 と 0、その間に 1800 があります。

· 行 D は ABSOLUTE タイプです。 これはカウンターに似ていますが、カウンターなしの値で機能します
差を計算します。 数字は同じで、ご覧のとおり(うまくいけば)これ
異なる結果となっています。

これは、23:10 から始まり、次の 00:10 で終わる次の値に変換されます。
日 (「u」は不明/プロットされていないことを意味します):

- 行 A: uu 1 1 1 1 1 1 1 1 1 u
- ライン B: u 1 3 5 3 1 2 4 6 4 2 u
- 行 C: uu 2 2 2 0 -2 -6 2 0 2 u
- 行 D: u 1 2 3 4 5 6 7 8 9 10 u

PNG がこれらすべてを示している場合、データを正しく入力したことがわかります。RRDtool
実行可能ファイルが正常に動作し、ビューアーにだまされず、正常に入力されました
2000年:)

同じ例を XNUMX 回試すことができますが、毎回 XNUMX つの行のみを使用します。

もう一度データを見てみましょう。

· 行 A: 300,600,900、300、XNUMX など。 カウンターデルタは一定の XNUMX であり、時間もそうです
デルタ。 それ自体で割った数値は常に 1 です (ゼロで割った場合を除きます。
未定義/違法)。

なぜ最初の点が不明なのですか? データベースに何を入れたかはわかっていますが、
右? 確かに、しかし、デルタを計算するための値がなかったので、わかりません
私たちが始めたところ。 ゼロから始めたと仮定するのは間違っているので、そうではありません!

・ラインB:計算するものは何もありません。 数値はそのままです。

· 行 C: 繰り返しますが、開始値は不明です。 ライン A についても同じ話が成り立ちます。
この場合、デルタは一定ではないため、線も一定ではありません。 置くとしたら
行 A で行ったのと同じ数値がデータベースにある場合、同じ数値が得られます。
ライン。 タイプ カウンターとは異なり、このタイプは減少する可能性があります。その理由については後で説明します。
これは違いを生みます。

· 行 D: ここで、デバイスはデルタを計算します。 したがって、最初のデルタを知っており、
それはプロットされます。 行 A と同じ入力がありましたが、この入力の意味は次のとおりです。
異なるため、行が異なります。 この場合、デルタは毎回増加します
300 で。時間デルタは一定の 300 にとどまるため、XNUMX つの除算
増加する値を与えます。

カウンター ラップ
表示する基本がいくつかあります。 いくつかの重要なオプションはまだカバーされていません。
カウンターラップはまだ見ていません。 最初のカウンター ラップ: 私たちの車では、
カウンターは 999987 を示しています。20 km 移動すると、カウンターは 1000007 になるはずです。残念ながら、
カウンターには 000007 桁しかないので、実際には XNUMX と表示されます。
タイプ DERIVE では、カウンターが 999980 km 後退したことを意味します。 そうではなかったし、
これには何らかの保護が必要です。 この保護は、タイプでのみ使用できます
とにかくこの種のカウンターに使用する必要があるCOUNTER。 それはどのように機能しますか? タイプ
カウンターが減少することはありません。
下降! デルタが負の場合、これは最大値を追加することで補正できます
カウンターの値 + 1。私たちの車の場合、これは次のようになります。

デルタ = 7 - 999987 = -999980 (1000007-999987=20 の代わりに)

実質デルタ = -999980 + 999999 + 1 = 20

このドキュメントを書いている時点で、RRDtool は 32 ビットまたは
64 ビットのサイズ。 これらのカウンターは、次の異なる値を処理できます。

- 32 ビット: 0 .. 4294967295
- 64 ビット: 0 .. 18446744073709551615

これらの数値が奇妙に見える場合は、XNUMX 進数形式で表示できます。

- 32 ビット: 0 .. FFFFFFFF
- 64 ビット: 0 .. FFFFFFFFFFFFFFFF

RRDtool は両方のカウンターを同じように処理します。 オーバーフローが発生し、デルタが
負の場合、RRDtool は最初に小さなカウンターの最大値 + 1 をデルタに追加します。 デルタの場合
はまだマイナスですが、ラップしたのは大きなカウンターでなければなりませんでした。 可能な限り追加します
大きいカウンタの値 + 1 を減算し、誤って追加された小さい値を減算します。

これにはリスクがあります。巨大なデルタを追加している間に大きなカウンターがラップされたとします。
理論的には、小さい値を追加するとデルタが正になる可能性があります。
このようなまれなケースでは、結果は正しくありません。 増加はほぼ
それが起こるための最大カウンター値として高いので、あなたが持っている可能性があります
他にもいくつかの問題があり、この特定の問題は価値がありません
について考える。 ただし、例を含めたので、自分で判断してください。

次のセクションでは、カウンター ラップの数値例をいくつか示します。 やってみる
自分で計算するか、電卓が数値を処理できない場合は私を信じてください:)

訂正番号:

- 32 ビット: (4294967295 + 1) = 4294967296
- 64 ビット: (18446744073709551615 + 1)
- 修正1 = 18446744069414584320

前:4294967200
増加: 100
次のようになります: 4294967300
しかし、実際には: 4
デルタ: -4294967196
訂正 1: -4294967196 + 4294967296 = 100

前:18446744073709551000
増加: 800
次のようになります: 18446744073709551800
しかし、実際には: 184
デルタ: -18446744073709550816
訂正1: -18446744073709550816
+ 4294967296 = -18446744069414583520
訂正2: -18446744069414583520
+ 18446744069414584320 = 800

変更前: 18446744073709551615 (最大値)
増加: 18446744069414584320 (ばかげた増加、最小
なるはずです: 36893488143124135935 この例は動作します)
しかし、実際には: 18446744069414584319
デルタ: -4294967296
訂正 1: -4294967296 + 4294967296 = 0
(マイナスではない -> 補正なし2)

変更前: 18446744073709551615 (最大値)
増加: 18446744069414584319 (XNUMX つ少ない増加)
次のようになります: 36893488143124135934
しかし、実際には: 18446744069414584318
デルタ: -4294967297
補正 1: -4294967297 + 4294967296 = -1
訂正 2: -1 + 18446744069414584320 = 18446744069414584319

最後の XNUMX つの例からわかるように、RRDtool が失敗するには奇数が必要です。
(もちろんバグがないことが条件です)、このようなことは起こらないはずです。 ただし、SNMPまたはその他のもの
データを収集するために選択した方法によっては、間違った数値が報告される場合もあります。 私たち
すべてのエラーを防ぐことはできませんが、できることはいくつかあります。 RRDtool の「作成」
コマンドは、このために XNUMX つの特別なパラメーターを取ります。 許可される最小値と最大値を定義します
値。 今までは「不明」を意味する「U」を使っていました。 一方または両方に値を指定する場合
RRDtool がこれらの制限外のデータ ポイントを受け取ると、無視されます。
それらの値。 摂氏の温度計の場合、絶対最小値はそのすぐ下です
-273. 私のルーターでは、この最小値ははるかに高いと想定できるので、10 に設定します。
ここで、最高温度として 80 に設定します。これより高くすると、デバイスが故障します。
注文の。

私の車の速度については、負の数を期待することは決してありません。
速度が 230 を超えています。それ以外の場合は、エラーが発生したに違いありません。 覚えておいてください:
逆は真ではありません。数値がこのチェックに合格しても、それが正しいことを意味するわけではありません。
正しい。 グラフが奇妙に思える場合は、常に十分な疑いを持ってグラフを判断してください。

Rescale データ 再サンプリング
RRDtool の重要な機能の XNUMX つがまだ説明されていません。
データを収集し、正確な間隔で RRDtool にフィードします。 したがって、RRDtool は補間します。
データは正確な間隔で保存されます。 これが何を意味するのか、どのように行うのかがわからない場合
それが機能する場合は、次のヘルプを参照してください。

カウンターが 300 秒ごとにちょうど XNUMX ずつ増加するとします。 XNUMXで測りたい
秒間隔。 正確に 300 離れた値を取得する必要があります。 ただし、
さまざまな状況で数秒遅れており、間隔は 303 です。デルタは
その場合も 303 になります。 明らかに、RRDtool は 303 をデータベースに入れて作成するべきではありません。
あなたは、カウンターが 303 秒で 300 増加したと信じています。 これがRRDtoolの場所です
補間: 303 の値を以前に格納されていたかのように変更し、
300 秒で 300 になります。 次回はまさにぴったりの時間です。 これは、
現在の間隔は 297 秒で、カウンターも 297 増加しています。
補間して 300 を保存します。

実際のRRDで

time+000: 0 delta="U" time+000: 0 delta="U"
時間+300: 300 デルタ=300 時間+300: 300 デルタ=300
時間+600: 600 デルタ=300 時間+603: 603 デルタ=303
時間+900: 900 デルタ=300 時間+900: 900 デルタ=297

920805000 つの同一のデータベースを作成してみましょう。 時間範囲 920805900 から XNUMX を選択しました
これは例の数字と非常によく合います。

rrdtool は、秒 1.rrd を作成します \
--開始 920804700 \
DS:秒:カウンター:600:U:U \
RRA:平均:0.5:1:24

コピーする

Unix の場合: cp seconds1.rrd seconds2.rrd
Dos の場合: seconds1.rrd seconds2.rrd をコピーします。
VMSの場合:どうすればわかりますか:)

いくつかのデータを入力してください

rrdtool 更新秒 1.rrd \
920805000:000 920805300:300 920805600:600 920805900:900
rrdtool 更新秒 2.rrd \
920805000:000 920805300:300 920805603:603 920805900:900

出力を作成する

rrdtool グラフ秒 1.png \
--開始 920804700 --終了 920806200 \
--高さ200\
--上限 1.05 --下限 0.95 --rigid \
DEF:秒=秒1.rrd:秒:平均 \
CDEF:unknown=秒、UN \
LINE2:秒#0000FF \
エリア:不明#FF0000
rrdtool グラフ秒 2.png \
--開始 920804700 --終了 920806200 \
--高さ200\
--上限 1.05 --下限 0.95 --rigid \
DEF:秒=秒2.rrd:秒:平均 \
CDEF:unknown=秒、UN \
LINE2:秒#0000FF \
エリア:不明#FF0000

両方の画像を一緒に表示 (index.html ファイルに追加) して比較します。 両方のグラフ
入力が異なっていても、同じように表示されるはずです。

まとめ


ここで、このチュートリアルを終了します。 私たちはあなたができるようにするためのすべての基本をカバーしました
RRDtool を操作し、利用可能な追加のドキュメントを読むことができます。 もっとたくさんあります
RRDtool について調べてみると、このパッケージの用途がますます増えています。 あなたはできる
提供されている例だけを使用し、RRDtool のみを使用して簡単にグラフを作成できます。 あなたもすることができます
利用可能な RRDtool のフロント エンドの XNUMX つを使用します。

メーリングリスト


RRDtool メーリング リストに登録することを忘れないでください。 メールに返信していなくても
あなたと残りのユーザーの両方に役立ちます。 知ってるネタばっかり
MRTGについて(したがってRRDtoolについて)リストを読んでいるだけで学んだ
それに投稿します。 基本的な質問は FAQ に記載されているので、質問する必要はありませんでした。
(読んでください!)そして他のユーザーからのさまざまなメールで。 世界中に何千人ものユーザーがいる
世界には、読んだから答えられる質問をする人が必ずいる
これと他のドキュメントと彼らはしませんでした。

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


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

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

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。