CactiのCLI(コマンドライン)ツールはすごい助かる

Cactiに登録するデバイスや作成するグラフが大量にあるとき、CLIツール使うと時間短縮できてすごく助かる。コマンドのオプション指定で試行錯誤したので、備忘録として。

1. デバイスの登録

登録済みのホストテンプレートを確認する。

# php add_device.php --list-host-templates
Valid Host Templates: (id, name)
0       None
1       Generic SNMP-enabled Host
3       ucd/net SNMP Host
4       Karlnet Wireless Bridge
5       Cisco Router
6       Netware 4/5 Server
7       Windows 2000/XP Host
8       Local Linux Machine

デバイスを登録する。

# php add_device.php --description=cacti --ip=localhost --template=0 --disable=0 --avail=ping --ping_method=icmp --ping_retries=2 --version=2 --community=public --port=161 --timeout=500
Adding cacti (localhost) as "None" using SNMP v2 with community "public"
Success - new device-id: (2)

各オプションは、WebUIと対応付けて

f:id:mittsun1979:20150407160940p:plain


2. デバイスへグラフテンプレート(Graph Templates)を関連付け

デバイスのIDを確認する。

# php add_graph_template.php --list-hosts
Known Hosts: (id, hostname, template, description)
1       127.0.0.1       8       Localhost
2       localhost       0       cacti

システムに登録済みのグラフテンプレートを確認する。

# php add_graph_template.php --list-graph-templates
Known Graph Templates:(id, name)
2       Interface - Traffic (bits/sec)
3       ucd/net - Available Disk Space
4       ucd/net - CPU Usage
<snip>
34      SNMP - Generic OID Template

まだ関連付けられているグラフテンプレートはない。
f:id:mittsun1979:20150407160938p:plain

デバイスへグラフテンプレートを関連付けする。

# php add_graph_template.php --host-id=2 --graph-template-id=4
Success: Graph Template associated for host: (2: localhost) - graph-template: (4: ucd/net - CPU Usage)

グラフテンプレートが関連付けされた。
f:id:mittsun1979:20150407160939p:plain


3. デバイスへデータクエリ(Data Queries)を関連付け

デバイスのIDを確認する。

# php add_data_query.php --list-hosts

システムに登録済みのデータクエリを確認する。

# php add_data_query.php --list-data-queries
Known SNMP Queries:(id, name)
1       SNMP - Interface Statistics
2       ucd/net -  Get Monitored Partitions
3       Karlnet - Wireless Bridge Statistics
<snip>
9       SNMP - Get Processor Information

まだ関連付けられているデータクエリはない。
f:id:mittsun1979:20150407160937p:plain

デバイスへデータクエリを関連付けする。

# php add_data_query.php --host-id=3 --data-query-id=1 --reindex-method=1
Success - Host (2: localhost) data query (1: SNMP - Interface Statistics) reindex method (1: Uptime Goes Backwards)
# php add_data_query.php --host-id=3 --data-query-id=6 --reindex-method=1
Success - Host (3: localhost) data query (6: Unix - Get Mounted Partitions) reindex method (1: Uptime Goes Backwards)

データクエリが関連付けされた。
f:id:mittsun1979:20150407160936p:plain


4. グラフ作成

デバイスのIDを確認する。

php add_graphs.php --list-hosts

システムに登録済みのグラフテンプレート(Graph Templates)を確認する。

# php add_graphs.php --list-graph-templates
Known Graph Templates:(id, name)
2       Interface - Traffic (bits/sec)
3       ucd/net - Available Disk Space
<snip>
21      Unix - Available Disk Space
<snip>

システムに登録済みのデータクエリ(Data Queries)を確認する。

php add_graphs.php --list-snmp-queries

データクエリに関連付けされているグラフテンプレートを確認する。

# php add_graphs.php --snmp-query-id=6 --list-query-types
Known SNMP Query Types: (id, name)
15      Available Disk Space

Available Disk Spaceが関連付けられている。
f:id:mittsun1979:20150407160935p:plain

データクエリが取得するフィールドを確認する。

# php add_graphs.php --host-id=3 --snmp-query-id=6 --list-snmp-fields
Known SNMP Fields for host-id 3: (name)
dskDevice
dskMount

dskDevice, dskMountの2つのフィールドがある。
f:id:mittsun1979:20150407160934p:plain

データクエリが取得するフィールドの値を確認する。

# php add_graphs.php --host-id=3 --snmp-query-id=6 --snmp-field=dskDevice --list-snmp-values
Known values for dskDevice for host 3: (name)
/dev/vda2

dskDeviceの値は、"/dev/vda2"の1つ。
f:id:mittsun1979:20150407160932p:plain

グラフを作成する。

# php add_graphs.php --host-id=3 --graph-template-id=21 --graph-type=ds --snmp-query-id=6 --snmp-query-type-id=15 --snmp-field=dskDevice --snmp-value="/dev/vda2"
Graph Added - graph-id: (5) - data-source-ids: (8, 8)

チェックボックスが消えて、グラフが作成されていることがわかる。グラフページで実際に確認してみる。
f:id:mittsun1979:20150407160933p:plain

「--graph-typeは、Associated Graph Templatesのグラフを作成する時は、"cg"を指定。Associated Data Queriesのグラフを作成する時は、"ds"を指定。」ということでよいのだろうか。

5. グラフツリー

ツリーの一覧を確認する。

# php add_tree.php --list-trees
Known Trees:
id      sort method                     name
1       Manual Ordering (No Sorting)    Default Tree

Default Treeにデバイス(host)は、登録されていない。
f:id:mittsun1979:20150407160930p:plain

デバイスをツリーに追加する。

# php add_tree.php --type=node --node-type=host --tree-id=1 --host-id=3
Added Node node-id: (8)

Default Treeにデバイス(host:cacti)が登録された。
f:id:mittsun1979:20150407160931p:plain

GUIはわかりやすくて良いんだけど、作業を自動化したいときにはやっぱりCLIが便利だな。