システム監視Cactiに監視対象のホストを登録する時は、通常はブラウザで行います。数台ならいいのですが、数十台数百台となってくると結構なクリック量で肩は凝るし、目もつらいです。実はCactiならCLIを使っていろいろできるらしいのです。コマンドだけでホスト登録可能かな?と試した結果、コマンドだけでできちゃいました。そこでお試しで作成したホスト登録スクリプトを公開します。CactiのCLIツールについてCactiをインストールすると自動的にphpで実行可能なコマンドラインツールもインストールされます。cactiディレクトリ直下にcliディレクトリがあるはずです。[/shell]今回のスクリプト内では、その中から以下のCacti純正ツールを利用しました。add_graph_template.phpadd_graphs.phpadd_device.phpなお、ほとんどのツールは、--helpオプションを持っているので使い方を確認できます。etc.)[/shell]前提ホストテンプレートは作成済みという前提でいきます。「ホスト登録」「ホストテンプレートを元にグラフ作成」を一発で行えるようにするのが今回の目的です。今回の例では、下記のようなホストテンプレートを使います。Queriesの2種類あることです。それに基づいて、Cacti付属のグラフ作成スクリプトであるadd_graphs.phpのオプションが変わります。--graph-typeの指定でcgとdsの2種類があります。Templatesで作成されるグラフこちらは明解です。1つのグラフテンプレートで1つのグラフが作成されます。Queriesで作成されるグラフこちらはやや理解が難しいです。1つのデータクエリーで複数のグラフが作成される可能性があります。例として、ネットワークインターフェースを挙げます。複数のインターフェースを検出すると、それぞれ別のグラフが作成されます。1つのインターフェースでもモニターする項目が違うと別のグラフが作成されます。(トラフィック量,エラー数など)したがって、eth0のトラフィックグラフ、eth0のエラー数グラフ、eth1のトラフィックグラフ、eth1のエラー数グラフなどが作成される可能性があります。Step1.ホストの登録まず、ホストの登録です。[/shell]これで適切なホストテンプレートに関連付けられたホストの登録ができました。グラフは作成されていない状態です。Step2.graph-type=cgのグラフを作成する登録したホストに対して、グラフを作成します。[/shell]これで--graph-type=cg部分のグラフは作成できました。Step3.graph-type=dsのグラフを作成するここから少し難しくなってきます。各自の環境に合わせた修正が必要になってきます。ここは各自の環境に合わせて、適宜調整していただく必要があります。$1}'インターフェースの数だけ、グラフを作成。[/shell]これでeth0,eth1等のトラフィックグラフが作成できました。$1}'ディスクパーティションの数だけ、グラフを作成。[/shell]これで/や/bootなどのパーティションごとにディスク使用量のグラフが作成されました。Step3.補足説明snmp-fieldとsnmp-valueについても説明しておきます。これはフィルタ機能であり、snmp-field(項目)にsnmp-value(値)が合致したものだけグラフ作成の対象とされます。snmp-fieldに何を指定できるかですが、それはDataQuery内で定義されたXMLファイル内に書いてあります。それぞれのXMLファイルを見てみると、ifType、hrStorageDescrが定義されています。[/html]以下でifTypeのValueにどんな値が取りうるのか確認可能です。[/shell]今回はsoftwareLoopback(ループバックインターフェース)は不要なので、ethernetCsmacd(eth0,eth1)でフィルタするようにしました。host_disk.xmlの方にはSNMPのOIDが書いていないのですが、よく見るとスクリプトが指定されています。[/html]このスクリプトファイルを見ると、やはりOIDが指定されています。[/html]以下でhrStorageDescrのValueにどんな値が取りうるのか確認可能です。下記のようなcacti_add_host.shというシェルスクリプトを作成しました。[shell]!/bin/bashコマンドライン引数でIPアドレスとホスト名を指定します。HOSTNAME=$2下記は各自の環境に合わせてください。$1}'インターフェースの数だけ、グラフを作成。$1}'ディスクパーティションの数だけ、グラフを作成。[/shell]実行例IPアドレス=192.168.1.5、ホスト名=testweb01を登録した時の実行例です。[/shell]終わりに残念ながら、完全に汎用的なスクリプトは作成できませんでした。graph-type=dsの部分が無いホストテンプレートなら、ほぼそのまま使えると思いますが、ある場合は各現場で調整していただく必要があります。いえ、ホストの追加が頻繁に発生する現場なら、こういったスクリプトを作成する価値はあるのではないでしょうか。参考にしていただければ幸いです。Dashboarding)を使ってみ...はじめましてこんにちは、新米データサイエンティストのh_matsu...2015-04-10Cactiで好きなグラフだけ集めたダッシュページを作る最近はいろいろなグラフ化ツールが出ています。InnoDBさんとNeo4jさんごきげんよう。k_oomoriです。$(".group01").colorbox({rel:'...2014-03-28MuninでELBのメトリクスをモニタリングするこんにちは、t_oookaです。Are青山のアドテク会社。アドネットワークやDSPを開発・運用。サーバを止めてみたよ。インターン:実業務体験編インターンでCTR予測をしましたSearchArchiveスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。