差分

提供: fukudat.net
ナビゲーションに移動検索に移動
3,942 バイト追加 、 2020年8月3日 (月) 12:17
[https://docs.cacti.net/ Cacti ] は、データロギングツール RRDtool (Round-Robin Data tool) のGUIフロントエンド。
fukudat.net (Ubuntu 16.04) にインストールして、家庭内アプリケーションの運用管理に利用中。外部からはアクセスできないように設定されている。
== 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 の設定 ===
$ sudo systemctl enable snmpd
</pre>
 
=== Cacti UI での設定 ===
 
Device → localhost を開き、
* SNMP Version = Version 1
* SNMP Community = private
と入力し、Save ボタンを押す。
 
=== システム監視グラフの追加 ===
 
==== 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 → Graph Template セクションの "Create: ucd/net - CPU Usage" をチェックして Create
== 任意のデータの時系列グラフ化 ==
=== データ収集 データ収集コマンド === その時刻の最新の情報を出力する次のようなコマンド (script) を作っておく。 <pre>$ command-name param1 param2 ...field1:value1 field2:value2 ...</pre>
その時刻の最新の情報を出力するコマンドを作成する。例えば、/usr/local/bin/cacti-temperature という温度を測定するコマンドを考える。ここで、param1, param2... はコマンドに与える引数で、Cactiから見た入力フィールドの値になる。field1:value1, field2:value2... はコマンドが標準出力に出力する文字列で、field が Cacti 絡みた出力フィールド、value がその値となる。
例えば、"cacti-temperature" というコマンドは引数で指定する "device-name" が測った温度と湿度が以下の形式で stdout に出力されるものとする。
<pre>
$ cacti-temperature "device-name"U1t:25.7 h:55.4
</pre>
を実行すると、"device-name" で指定したデバイスが測った温度と湿度が以下の形式で stdout に出力されるものとする。=== グラフ作成 ===コマンドが用意できたら、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 = 表示したい Graph の時間スケールを選ぶ (Daily) === グラフが更新されなかったら? === まずデータを格納している rrd ファイルが <code>/var/lib/cacti/rra/</code> の下にできているかどうか確認する。できていない、あるいは更新日時が新しくなっていなければ、pollar が動作していない。
pollar cache を更新してみる。
<pre>
t:温度 h:湿度$ cd /usr/share/cacti/cli/$ php rebuild_poller_cache.php
</pre>
=== Cacti UI での設定 ===mysql で cacti の poller_item が更新されているか確認。<pre>$ mysql -u root -p cacti$ select * from poller_item;</pre>
==プラグイン == Data Input Method の作成 ====Cacti にadminでログインし、サイドメニューから、"Data Input Method" を選択。
右上の "Add" をクリック。"Name" に分かりやすい名前(例: temperature)を入力。"Input Type"には Script/Command を選ぶ。=== murlin ==="Input String"にはコマンド名 (例[https: /usr/localdocs.cacti.net/bin/cacti-temperature) を入力。"Create" をクリックして新しい Data Input Method を作成する。userplugin:murlin murlin] は Cacti で URL Monitoring を行うプラグイン。
==== Data Fieldの定義 =thold ===引き続き、このコマンドが入出力するフィールドを定義する。[https://docs.cacti.net/plugin:thold#thold thold] は Cacti で閾値条件でメールを出すプラグイン。
* Input Fields 行の右端の "Add" ボタンを押す。* "Friendly Name" には分かりやすいフィールド名(例: device name)を入力。* "Create" をクリックして新しい Data Input Field を作成する。== データ移行プロジェクト ==
* 次に、Output Field 行の右端の "Add" ボタンを押す。温度計 C0, U1, U2 済み* "Field" にはコマンドが出力するタグの値 (例: t とか h) を入力。温度計 T1, T2 済み* "Friendly Name" には分かりやすい名前 (例: temperature とか relative humidity) を入力。ガイガーカウンター gm10 済み* "Create" をクリックして新しい Data Output Field を作成する。IIJmio 済み
==== Data Sourceの定義 ==参考文献 ==次にこれまで定義した Data Input Method を使って、Data Source を定義する。* https://docs.cacti.net/
* 左のサイドメニューから、"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]]

案内メニュー