Cacti
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, PHP7 など必要なパッケージも自動的にインストールされる。
インストール中に configuration が走り、apache2、mysql の設定が行われる。
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 タブを選択すると表示される。
任意のデータの時系列グラフ化
データ収集
その時刻の最新の情報を出力するコマンドを作成する。例えば、/usr/local/bin/cacti-temperature という温度を測定するコマンドを考える。
$ cacti-temperature "device-name"
を実行すると、"device-name" で指定したデバイスが測った温度と湿度が以下の形式で stdout に出力されるものとする。
t: 数字 h:数字
Cacti UI での設定
Data Input Method の作成
Cacti にadminでログインし、サイドメニューから、"Data Input Method" を選択。
右上の "Add" をクリック。"Name" に分かりやすい名前(例: temperature)を入力。 "Input Type"には Script/Command を選ぶ。 "Input String"にはコマンド名 (例: /usr/local/bin/cacti-temperature) を入力。 "Create" をクリックして新しい Data Input Method を作成する。
Data Fieldの定義
引き続き、このコマンドが入出力するフィールドを定義する。
Input Fields 行の右端の "Add" ボタンを押す。 "Friendly Name" には分かりやすいフィールド名(例: device name)を入力。 "Create" をクリックして新しい Data Input Field を作成する。
次に、Output Field 行の右端の "Add" ボタンを押す。 "Field" にはコマンドが出力するタグの値 (例: t とか h) を入力。 "Friendly Name" には分かりやすい名前 (例: temperature とか relative humidity) を入力。 "Create" をクリックして新しい Data Output Field を作成する。