Cacti の CLI ツールについて


  監視ツール勉強会 – Cacti 編

(ハッシュタグ: # 監視ツール勉強会 )
       ●   SHIMIZU Akio
自己紹介
    清水 亮夫 (SHIMIZU Akio)
●   Twitter: shmza
●   某 SIer 勤務
●
    Cacti の Forum では "engeishi"
●
    Cacti との付き合いは5年くらい
    (でも触ってない期間のほうがずっと長い orz )
Cacti でのグラフ作成の流れ ( ざっくり )
●
    ( テンプレート作成 )
●   デバイス追加
    –   ホストテンプレート、グラフテンプレートを割当て
●   グラフ作成
●   グラフツリーに登録


             台数が多いと泣ける
50 台機器があったとして


                     …………………

役割 1   役割 2   役割 3             役割 50




 こんなことはないよね?
50 台機器があったとして ( 続 )

          FW1        FW2                       ………
                                 SW1     SW2          SWn
          LB1        LB2


                 ………                                 ………
Web/AP1    Web/AP2     Web/APn         DB1     DB2          DBn



 機能ごとに機器群があって、
 それぞれの機器については
 作りたいグラフが決まってるよね?
だからテンプレートが嬉しい
Cacti でのグラフ作成の流れ ( 再掲 )
●
    ( テンプレート作成 )
●   デバイス追加
    –   ホストテンプレート、グラフテンプレートを割当て
●   グラフ作成
●   グラフツリーに登録


            機械的な作業だよね?
機械的な作業は
自動化 / 省力化したい
Cacti での自動化
●
    CLI を使用する
                                今日は
    –   CLI を組み込んだスクリプトによる自動化   こっち!

●
    Autom8 プラグインを使用する
    –   グラフの作成
    –   グラフツリーアイテムの作成
    –   グラフ生成の条件をきめ細かく設定し「意味のある」グ
        ラフを自動的に作成する
Cacti 0.8.8a の CLI コマンド
    ●
        <path_to_cacti>/cli 配下
–   add_data_query.php                –   import_template.php
–   add_device.php                    –   poller_data_sources_reapply_names.php
–   add_graph_template.php            –   poller_graphs_reapply_names.php
–   add_graphs.php                    –   poller_output_empty.php
–   add_perms.php                     –   poller_reindex_hosts.php
–   add_tree.php                      –   rebuild_poller_cache.php
–   analyze_database.php              –   reorder_data_query.php
–   convert_innodb.php                –   repair_database.php
–   copy_user.php                     –   repair_templates.php
–   data_template_associate_rra.php   –   structure_rra_paths.php
–   host_update_template.php          –   upgrade_database.php
デモ
デモの流れ
●   やりたいこと: ハートビーツさんのウェブサイトの
    レスポンスタイムをグラフ化する
●   ステップ:
    –   デバイス (heartbeats.jp) を作成する
    –   グラフを作成する
    –   グラフツリーに登録する
デバイスの作成
●   コマンドライン
        > php -q add_device.php 
        --description=heartbeats.jp 
        --ip=heartbeats.jp 
        --template=0 
        --notes="CLI でのデバイス追加デモ " 
        --avail=none


●   注: 他にもオプションあります。下記コマンドで確認
    –   php -q add_device.php --help
グラフの作成
●   コマンドライン
        > php -q add_graphs.php 
        --graph-type=cg 
        --graph-template-id=[id] 
        --host-id=[id] 
        --input-fields=ip=heartbeats.jp


●   注: 他にもオプションあります。下記コマンドで確認
    –   php -q add_graphs.php --help
グラフツリーへの登録
●   コマンドライン ( グラフツリーの追加 )
     > php -q add_tree.php 
     --type=tree 
     --name="HTTP サービス監視 " 
     --sort-method=alpha


●   コマンドライン ( グラフツリーへのアイテムの追加 )
     > php -q add_tree.php 
      --type=node 
     --node-type=host 
     --tree-id=[ID] 
     --host-id=[ID]
ご清聴ありがとうございました!
Have A Happy Monitoring Life!

Cactiでのcliツールについて

  • 1.
    Cacti の CLIツールについて 監視ツール勉強会 – Cacti 編 (ハッシュタグ: # 監視ツール勉強会 ) ● SHIMIZU Akio
  • 2.
    自己紹介 清水 亮夫 (SHIMIZU Akio) ● Twitter: shmza ● 某 SIer 勤務 ● Cacti の Forum では "engeishi" ● Cacti との付き合いは5年くらい (でも触ってない期間のほうがずっと長い orz )
  • 3.
    Cacti でのグラフ作成の流れ (ざっくり ) ● ( テンプレート作成 ) ● デバイス追加 – ホストテンプレート、グラフテンプレートを割当て ● グラフ作成 ● グラフツリーに登録 台数が多いと泣ける
  • 4.
    50 台機器があったとして ………………… 役割 1 役割 2 役割 3 役割 50 こんなことはないよね?
  • 5.
    50 台機器があったとして (続 ) FW1 FW2 ……… SW1 SW2 SWn LB1 LB2 ……… ……… Web/AP1 Web/AP2 Web/APn DB1 DB2 DBn 機能ごとに機器群があって、 それぞれの機器については 作りたいグラフが決まってるよね?
  • 6.
  • 7.
    Cacti でのグラフ作成の流れ (再掲 ) ● ( テンプレート作成 ) ● デバイス追加 – ホストテンプレート、グラフテンプレートを割当て ● グラフ作成 ● グラフツリーに登録 機械的な作業だよね?
  • 8.
  • 9.
    Cacti での自動化 ● CLI を使用する 今日は – CLI を組み込んだスクリプトによる自動化 こっち! ● Autom8 プラグインを使用する – グラフの作成 – グラフツリーアイテムの作成 – グラフ生成の条件をきめ細かく設定し「意味のある」グ ラフを自動的に作成する
  • 10.
    Cacti 0.8.8a のCLI コマンド ● <path_to_cacti>/cli 配下 – add_data_query.php – import_template.php – add_device.php – poller_data_sources_reapply_names.php – add_graph_template.php – poller_graphs_reapply_names.php – add_graphs.php – poller_output_empty.php – add_perms.php – poller_reindex_hosts.php – add_tree.php – rebuild_poller_cache.php – analyze_database.php – reorder_data_query.php – convert_innodb.php – repair_database.php – copy_user.php – repair_templates.php – data_template_associate_rra.php – structure_rra_paths.php – host_update_template.php – upgrade_database.php
  • 11.
  • 12.
    デモの流れ ● やりたいこと: ハートビーツさんのウェブサイトの レスポンスタイムをグラフ化する ● ステップ: – デバイス (heartbeats.jp) を作成する – グラフを作成する – グラフツリーに登録する
  • 13.
    デバイスの作成 ● コマンドライン > php -q add_device.php --description=heartbeats.jp --ip=heartbeats.jp --template=0 --notes="CLI でのデバイス追加デモ " --avail=none ● 注: 他にもオプションあります。下記コマンドで確認 – php -q add_device.php --help
  • 14.
    グラフの作成 ● コマンドライン > php -q add_graphs.php --graph-type=cg --graph-template-id=[id] --host-id=[id] --input-fields=ip=heartbeats.jp ● 注: 他にもオプションあります。下記コマンドで確認 – php -q add_graphs.php --help
  • 15.
    グラフツリーへの登録 ● コマンドライン ( グラフツリーの追加 ) > php -q add_tree.php --type=tree --name="HTTP サービス監視 " --sort-method=alpha ● コマンドライン ( グラフツリーへのアイテムの追加 ) > php -q add_tree.php --type=node --node-type=host --tree-id=[ID] --host-id=[ID]
  • 16.