「Cacti」の版間の差分
(ページの作成:「Cacti は、データロギングツール RRDtool (Round-Robin Data tool) のGUIフロントエンド。 fukudat.net (Ubuntu 16.04) にインストールして、家庭...」) |
(→グラフ作成) |
||
(同じ利用者による、間の23版が非表示) | |||
1行目: | 1行目: | ||
− | Cacti は、データロギングツール RRDtool (Round-Robin Data tool) のGUIフロントエンド。 | + | [https://docs.cacti.net/ Cacti] は、データロギングツール RRDtool (Round-Robin Data tool) のGUIフロントエンド。 |
fukudat.net (Ubuntu 16.04) にインストールして、家庭内アプリケーションの運用管理に利用中。外部からはアクセスできないように設定されている。 | fukudat.net (Ubuntu 16.04) にインストールして、家庭内アプリケーションの運用管理に利用中。外部からはアクセスできないように設定されている。 | ||
11行目: | 11行目: | ||
</pre> | </pre> | ||
− | MySQL, | + | MySQL, PHP など必要なパッケージも自動的にインストールされる。 |
インストール中に configuration が走り、apache2、mysql の設定が行われる。 | インストール中に configuration が走り、apache2、mysql の設定が行われる。 | ||
+ | |||
+ | == Configure == | ||
+ | |||
+ | * http://fukudat.net/cacti にアクセスして、User = admin でログイン。パスワードを設定する。(初期パスワードは admin なのですぐに変える。) | ||
+ | * 画面左下の Configuration をクリック。Users を選択。guest にチェックを入れて、action = Delete を選び、Go で guest ユーザを削除。 | ||
+ | * ssh でサーバーにログインして、/usr/share/cacti/sites に .htaccess ファイルを作り、アクセス可能なユーザの設定を行う(気休め)。 | ||
+ | * 最初から、Memory Usage, Load Average, Logged In Users, Processes のグラフが記録されている。Graph タブを選択すると表示される。 | ||
+ | |||
+ | === SNMP の設定 === | ||
+ | |||
+ | /etc/snmp/snmpd.conf を編集して、1行追加。 | ||
+ | <pre> | ||
+ | rocommunity private localhost | ||
+ | </pre> | ||
+ | |||
+ | snmpd を起動し、今後は自動で起動するように設定。 | ||
+ | <pre> | ||
+ | $ sudo systemctl start snmpd | ||
+ | $ 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> | ||
+ | |||
+ | ここで、param1, param2... はコマンドに与える引数で、Cactiから見た入力フィールドの値になる。 | ||
+ | field1:value1, field2:value2... はコマンドが標準出力に出力する文字列で、field が Cacti 絡みた出力フィールド、value がその値となる。 | ||
+ | |||
+ | 例えば、"cacti-temperature" というコマンドは引数で指定する "device-name" が測った温度と湿度が以下の形式で stdout に出力されるものとする。 | ||
+ | <pre> | ||
+ | $ cacti-temperature U1 | ||
+ | t:25.7 h:55.4 | ||
+ | </pre> | ||
+ | |||
+ | === グラフ作成 === | ||
+ | コマンドが用意できたら、Cacti UI を以下のように操作する。 | ||
+ | |||
+ | * Data Collection >> Data Input Methods をクリック | ||
+ | * Data Input Methodsセクションの右上 + をクリック | ||
+ | * 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> | ||
+ | $ cd /usr/share/cacti/cli/ | ||
+ | $ php rebuild_poller_cache.php | ||
+ | </pre> | ||
+ | |||
+ | mysql で cacti の poller_item が更新されているか確認。 | ||
+ | <pre> | ||
+ | $ mysql -u root -p cacti | ||
+ | $ select * from poller_item; | ||
+ | </pre> | ||
+ | |||
+ | == プラグイン == | ||
+ | |||
+ | === murlin === | ||
+ | [https://docs.cacti.net/userplugin:murlin murlin] は Cacti で URL Monitoring を行うプラグイン。 | ||
+ | |||
+ | === thold === | ||
+ | [https://docs.cacti.net/plugin:thold#thold thold] は Cacti で閾値条件でメールを出すプラグイン。 | ||
+ | |||
+ | == データ移行プロジェクト == | ||
+ | |||
+ | * 温度計 C0, U1, U2 済み | ||
+ | * 温度計 T1, T2 済み | ||
+ | * ガイガーカウンター gm10 済み | ||
+ | * IIJmio 済み | ||
+ | |||
+ | == 参考文献 == | ||
+ | * https://docs.cacti.net/ | ||
+ | |||
+ | [[Category:How-To]][[Category:fukudat.net]] |
2021年10月16日 (土) 00:40時点における最新版
Cacti は、データロギングツール RRDtool (Round-Robin Data tool) のGUIフロントエンド。
fukudat.net (Ubuntu 16.04) にインストールして、家庭内アプリケーションの運用管理に利用中。外部からはアクセスできないように設定されている。
目次
Install
シンプルに apt-get
$ sudo apt-get update $ sudo apt-get install cacti
MySQL, PHP など必要なパッケージも自動的にインストールされる。
インストール中に configuration が走り、apache2、mysql の設定が行われる。
Configure
- http://fukudat.net/cacti にアクセスして、User = admin でログイン。パスワードを設定する。(初期パスワードは admin なのですぐに変える。)
- 画面左下の Configuration をクリック。Users を選択。guest にチェックを入れて、action = Delete を選び、Go で guest ユーザを削除。
- ssh でサーバーにログインして、/usr/share/cacti/sites に .htaccess ファイルを作り、アクセス可能なユーザの設定を行う(気休め)。
- 最初から、Memory Usage, Load Average, Logged In Users, Processes のグラフが記録されている。Graph タブを選択すると表示される。
SNMP の設定
/etc/snmp/snmpd.conf を編集して、1行追加。
rocommunity private localhost
snmpd を起動し、今後は自動で起動するように設定。
$ sudo systemctl start snmpd $ sudo systemctl enable snmpd
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) を作っておく。
$ command-name param1 param2 ... field1:value1 field2:value2 ...
ここで、param1, param2... はコマンドに与える引数で、Cactiから見た入力フィールドの値になる。 field1:value1, field2:value2... はコマンドが標準出力に出力する文字列で、field が Cacti 絡みた出力フィールド、value がその値となる。
例えば、"cacti-temperature" というコマンドは引数で指定する "device-name" が測った温度と湿度が以下の形式で stdout に出力されるものとする。
$ cacti-temperature U1 t:25.7 h:55.4
グラフ作成
コマンドが用意できたら、Cacti UI を以下のように操作する。
- Data Collection >> Data Input Methods をクリック
- Data Input Methodsセクションの右上 + をクリック
- 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 ファイルが /var/lib/cacti/rra/
の下にできているかどうか確認する。
できていない、あるいは更新日時が新しくなっていなければ、pollar が動作していない。
pollar cache を更新してみる。
$ cd /usr/share/cacti/cli/ $ php rebuild_poller_cache.php
mysql で cacti の poller_item が更新されているか確認。
$ mysql -u root -p cacti $ select * from poller_item;
プラグイン
murlin
murlin は Cacti で URL Monitoring を行うプラグイン。
thold
thold は Cacti で閾値条件でメールを出すプラグイン。
データ移行プロジェクト
- 温度計 C0, U1, U2 済み
- 温度計 T1, T2 済み
- ガイガーカウンター gm10 済み
- IIJmio 済み