差分

提供: fukudat.net
ナビゲーションに移動検索に移動
2,931 バイト追加 、 2020年5月25日 (月) 00:31
== Configure ==
* http://fukudat.net/cacti にアクセスして、User = admin でログイン。パスワードを設定する。 * 画面左下の User Management をクリック。guest ユーザを選んで Delete + GO で guest ユーザを削除。 * ssh でサーバーにログインして、/usr/share/cacti/sites に .htaccess ファイルを作り、アクセス可能なユーザの設定を行う(気休め)。 * 最初から、Memory Usage, Load Average, Logged In Users, Processes のグラフが記録されている。Graph タブを選択すると表示される。
=== SNMP の設定 ===
=== Cacti UI での設定 ===
 
https://localhost/cacti にアクセス。user = admin でログインして、パスワードを設定。
Device → localhost を開き、
==== Network Traffic Graph の追加 ====
* Device → localhost → Associated Data Query の Add Data Query で "SNMP - Interface Statistics" を選択して Add* New Graphs → Data Query "SNMP - Interface Statistics" セクションに network interface (lo, eth0 など) がリストされているはずなので、チェックして Create
==== CPU Usage Graph の追加 ==== * Device → localhost → Associated Graph Template の Add Graph Template で "ucd/net - CPU Usage" を選択して Add* New Graphs → Data Query Graph Template セクションの "SNMP Create: ucd/net - Interface StatisticsCPU Usage" セクションに network interface (lo, eth0 など) がリストされているはずなので、チェックして をチェックして Create
== 任意のデータの時系列グラフ化 ==
=== データ収集 データ収集コマンド ===
その時刻の最新の情報を出力するコマンドを作成する。例えば、/usr/local/bin/cacti-temperature という温度を測定するコマンドを考える。その時刻の最新の情報を出力する次のようなコマンド (script) を作っておく。
<pre>
$ cacti-temperature "devicecommand-name" param1 param2 ...field1:value1 field2:value2 ...
</pre>
を実行すると、"device-name" で指定したデバイスが測った温度と湿度が以下の形式で stdout に出力されるものとする。ここで、param1, param2... はコマンドに与える引数で、Cactiから見た入力フィールドの値になる。field1:value1, field2:value2... はコマンドが標準出力に出力する文字列で、field が Cacti 絡みた出力フィールド、value がその値となる。
例えば、"cacti-temperature" というコマンドは引数で指定する "device-name" が測った温度と湿度が以下の形式で stdout に出力されるものとする。
<pre>
$ cacti-temperature U1t:温度 25.7 h:湿度55.4
</pre>
=== Cacti UI での設定 グラフ作成 ===コマンドが用意できたら、Cacti UI を以下のように操作する。 * Collection Methods >> Data Input Methods をクリック* Data Input Methodsセクションの右上Addをクリック* Name: 適当な名前をつける* Input Type: Script/Command* Input String: コマンドのfull pathと引数に名前をつけてを<, >で囲って入力する.例えば,/path/to/command <param1> <param2>* Createボタンをクリック* 入力フィールド(コマンドへの引数)それぞれについて,Input Fieldsの右上Addをクリックして以下を入力** Field: 上記Input Stringで指定した引数を一つ選ぶ** Friendly Name: わかりやすい名前をつける** Regular Expression Match: 引数がマッチすべき正規表現.空でもよい.** Allow Empty Input: 引数が空でもよければチェック** Special Type Code: ふさわしい型があったらそれを入力* 出力フィールド(コマンドの出力変数)それぞれについて,Output Fieldsの右上Addをクリックして以下を入力** Field: フィールド名 (コマンドが出力するものと一致すること)** Friendly Name: わかりやすい名前をつける** Update RRD File: この値を使うならチェック以上でData Input Methodは登録完了. 続いてこのData Input Methodを使ったData Sourceの定義.* Management >> Data Sources をクリック* Data Sourcesセクションの右上Addをクリック* Selected Data Template: None* Host: None* Createをクリック* Data Source: 適当な名前をつける (/var/lib/cacti/rra/の下にこの名前で始まるファイルができて,そこにデータが溜まる)* Data Source Path: なにも指定しない* Data Input Method: 上で作成したData Input Methodを選ぶ* 出力フィールドごとに以下を入力する** Internal Data Source Name: 出力フィールド名** Minimum Value: 最低値.存在しない場合はU** Maximum Value: 最大値.存在しない場合はU** Data Source Type: GUAGE, COUTNER, DERIVE, ABSOLUTE** Heartbeat: 600** Createをクリック** まだ出力フィールドがある場合はNewをクリックして繰り返す以上でData Sourceの登録完了. このData Sourceを使ったグラフを作る.* Management >> Graph Managementをクリック* Graph Managementセクションの右上Addをクリック* Selected Graph Template: None* Host: None* Createをクリック* Title: グラフのタイトル* 後はデフォルトのままでCreateをクリック* このグラフに表示したいグラフアイテムそれぞれについて,Graph Itemセクションに右上Addを押して以下を入力** Data Source: 上で作成したデータソースの出力フィールドを選ぶ** Color: グラフの色を選ぶ** Opacity/Alpha Channel: 不透明度を選ぶ** Graph Item Type: 折れ線グラフならLine[123]** Consolidation Function: 値を集計する演算** 後はデフォルトでCreateをクリック
最後に、作ったグラフを Graph Tree に配置する。* Graph Tree >> グラフを配置したい Tree を選択 (まだ作っていなければ、Add で作成する)* Tree Items の Add を押す* Parent Item =root* Tree Item Type =Graph* Graph =上で作った Graph を選ぶ* Round Robin Archive = Data Input Method の作成 ====Cacti にadminでログインし、サイドメニューから、"Data Input Method" を選択。表示したい Graph の時間スケールを選ぶ (Daily)
右上の "Add" をクリック。"Name" に分かりやすい名前(例: temperature)を入力。"Input Type"には Script/Command を選ぶ。"Input String"にはコマンド名 (例: /usr/local/bin/cacti-temperature) を入力。"Create" をクリックして新しい Data Input Method を作成する。=== グラフが更新されなかったら? ===
==== Data Fieldの定義 ====まずデータを格納している rrd ファイルが <code>/var/lib/cacti/rra/</code> の下にできているかどうか確認する。引き続き、このコマンドが入出力するフィールドを定義する。できていない、あるいは更新日時が新しくなっていなければ、pollar が動作していない。
* Input Fields 行の右端の "Add" ボタンを押す。pollar cache を更新してみる。<pre>$ cd /usr/share/cacti/cli/$ php rebuild_poller_cache.php </pre> mysql で cacti の poller_item が更新されているか確認。<pre>$ mysql -u root -p cacti$ select * "Friendly Name" には分かりやすいフィールド名(例: device name)を入力。from poller_item;* "Create" をクリックして新しい Data Input Field を作成する。</pre>
* 次に、Output Field 行の右端の "Add" ボタンを押す。* "Field" にはコマンドが出力するタグの値 (例: t とか h) を入力。* "Friendly Name" には分かりやすい名前 (例: temperature とか relative humidity) を入力。* "Create" をクリックして新しい Data Output Field を作成する。== データ移行プロジェクト ==
==== Data Sourceの定義 ====* 温度計 C0, U1, U2 済み次にこれまで定義した Data Input Method を使って、Data Source を定義する。* 温度計 T1, T2 済み* ガイガーカウンター gm10 済み* IIJmio 済み
* 左のサイドメニューから、"Data Sources" を選択。* 右上の "Add" ボタンを押す。* "Template", "Host" は共に None を選択。* "Name" に Data Source の名前を入力 (例[[Category: temperatureHow-デバイス名)* "Data Source Path" はブランク。* "Data Input Method" には先ほど作成した Data Input Method (例To]][[Category: temperature) を選択。* "Internal Data Source Name" には、この Data Source 内で unique な名前をつける (例: temperature-デバイス名)fukudat.net]]

案内メニュー