CactiでDataQueriesとSNMPを使ってグラフを作る

①DataQueriesで使うXMLファイルを作成する。

サンプル。

<interface>
<name>Get Number of Processes</name>
<oid_index>.1.3.6.1.4.1.2021.2.1.1</oid_index>
<index_order_type>numeric</index_order_type>
<fields>
<prIndex>
<name>Index</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.4.1.2021.2.1.1</oid>
</prIndex>
<prNames>
<name>Process Name</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.4.1.2021.2.1.2</oid>
</prNames>
<prCount>
<name>Counts of Process</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.2021.2.1.5</oid>
</prCount>
</fields>
</interface>

②DataTemplateとGraphTemplateを作成する。

http://www.l2tp.org/2016/2009/08/cactiscript.html
これの③と④を参考に作成する。その際DataTemplateのDataInputMethodはGetSNMPData(Indexed)を指定する。

③DataQueriesを作成する。


NameとDescriptionには名前と説明を入力する。
XMLPathに①で作成したXMLファイルのパスを指定する。
DataInputMethodはGetSNMPData(Indexed)を指定する。そしてCreate。
Createした後、Associated Graph Templatesに②で作成したGraphTemplateを指定する。そしてSave。

④作成したDataQueriesとDeviceを関連づける

メニューからDevice→関連づけを行うDeviceを選択する。
Associated Data Queriesに③で作成したDataQueriesを追加する。

⑤グラフを作成する

メニューのNew Graphsからホストを選択すると関連づけをしたDataQueriresとそのクエリから得られる項目一覧が表示されるので、グラフを作成する項目にチェックを入れてCreate。

Cactiで外部Scriptを使ってグラフを作る

①PHPやPerlやシェルスクリプトを使って値を出力するスクリプトを作成する。

・出力に改行は含まない。
・複数の値を出力する場合は値に名前を付けて値ごとにスペースで区切る。
(name1:value1 name2:value2)

②DataInputMethodsを定義してスクリプトを利用できるようにする。

メニューからDataInputMethods→Add
nameDataInputMethodの名前。わかりやすければ何でもおk
Input Type Script/Commandにする
Input String スクリプトへのパスを書く。
PHPならphp、Perlならperl、シェルスクリプトならshで書き始める。
Cactiのインストールパスは<path_cacti>で補完できる。
スクリプトへの引数は引数名を不等号で囲ってやる。

例:(sh <path_cacti>/scripts/getIOofRT58i.sh <rt58iaddr>)



Createを押してから、与える引数と出力される値を設定する。
InputFieldsとOutputFieldsの右側のAddから追加する。





OutputFieldsのNameはスクリプトが出力する値の名前と合わせる。
値が一つしか無く、名前が無い場合は適当でおk。



InputFieldsのNameはスクリプトへのパスを設定した際に付けた引数の中から選択する。
FriendlyNameはnameに対する補足。わかりやすければ何でもおk。

③作成したDataInputMethodsを使ってDataTemplateを作成する。



DataTemplateのNameはDataTemplate自体の名前。
DataSourceのNameは実際にDataSourceを作成したときに使われる名前。|host_description|等のタグ?を使ってわかりやすい名前になるように設定するか、Use Per-Data Source Value (Ignore this Value)にチェックを入れて、名前はDataSource作成時に指定できるようにする。
DataInputMethodは先ほど作成した物を指定。
DataSourceItemにスクリプトが返す値を作成するが、この段階では複数個のDataSourceItemを作成できないのでとりあえずNameを適当に設定してCreate。

スクリプトが返す値の個数分だけDataSourceItemの右側のAddから追加する。
DataSourceName 適当
DataSourceType スクリプトが返す値の種別を設定する。

GAUGE
温度やユーザ数など絶対値を必要とする際に利用

COUNTER
トラフィック数のように連続的に増加する値で利用
値は毎秒あたりの値に変換される。
値は最大値を超える場合以外、減らないことが前提条件

DERIVE
COUNTER と同じだが、値が減る可能性のある値で利用
値は毎秒あたりの値に変換される。
COUNTER と異なり、最大値のチェックは行われない。

ABSOLUTE
COUNTER と同じ、連続的に増加する値を扱うが
データ取得のたびに、カウンターは0にリセットされる
値は毎秒あたりの値に変換される。

http://www.servermemo.com/log/eid16.html

スクリプトが引数を取る場合はCustomDataを入力する。
Use Per-Data Source Value (Ignore this Value)にチェックを入れればDataSource作成時に値を指定できる。

④作成したDataTemplateを使ってGraphTemplateを作成する。



Nameにはテンプレート自体の名前。
Titleはテンプレートからグラフを作成したときに付けられる名前。|host_description|等を付けて分かりやすく。
Vertical Labelはグラフの左側に表示される縦向きラベル。
各項目を指定してCreateを押す。



Createを押すと、GraphTemplateItemsとGraphItemInputsが出てくる。
グラフの表示項目を設定するためにGraphTemplateItemsの右側のAddから追加する。



DataSourceは表示するグラフの項目に使うDataSourceを指定する。
Colorはグラフの色。
Opacity//Alpha Channelはグラフの透明度。
GraphItemTypeはグラフの項目の表示タイプ。
・LINE1-3 線グラフ。1-3で線の太さが違う。
・AREA 線グラフを塗りつぶしたもの。
・GPRINT グラフの下に値を表示する。
TextFormatには項目名を入れる。これはグラフの下に表示される。
InsertHardReturnはチェックを入れるとグラフの下の表示領域に改行が入る。
適宜改行を入れないとグラフの各項目がずらずらと横並びで並んでしまう。

⑤作成したDataTemplateを使ってDataSourceを作成する。

メニューからDataSources→Add
DataTemplateとHostを選んでCreate
CustomData等、入力する必要がある項目があれば表示されるので入力してSave

⑥作成したDataSourceを使ってGraphTemplateからグラフを作成する。

メニューからGraph Management→Add
GraphTemplateとHostを選んでCreate
GraphItemFieldsにDataSourceを指定してSave

mysqlでbinlogを使って復元する

sudo -u mysql mysqlbinlog /var/log/mysqld/blog.000001_bak –start-possion 461764451 –end-possion 561758345 | mysql -u ユーザ名 -p DB名

http://labs.unoh.net/2007/08/mysqlbinlog.html
ちょっと修正で
possion -> position
–end-possion -> –stop-position
綴りミスはあれだけど、endからstopに変わったのかなぁ。

%mysqlbinlog mysql-bin.000135 –start-position 620509842 –stop-position 646145725 > hogehoge.sql

http://dev.mysql.com/doc/refman/5.1/ja/mysqlbinlog.html

ネットワークから切り離したホストがnis周りで止まったりする件

182 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/08/10(月) 11:24:22
nis、ログイン周りでの質問です。
nisを利用しています。ypサーバに問題が無いときはいいのですが、ypサーバがダウンしたときやネットワーク周りが不調なときに、
コンソールでのログイン時にタイムアウト待ちっぽいことをされます。
このタイムアウトっぽいのが長すぎて辟易してるのですが、この辺の設定ってできないものでしょうか?
205 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/08/12(水) 00:12:17
>>182 >>196
そのクライアントPC自体もNISスレーブにするといいよ。
すると、ネットワークが切れた時に自分自身(=スレーブ)にypbindするから、
自分自身が持ってるNISスレーブデータでpasswdとかが解決して
すぐログインできる。
>>200
nsswitch.confをネット一時切断のたびにいちいち書き換えるのかね?w

sedを使って置換するときに、置換するファイルそのものを編集する方法

ファイルそのものを書き換えてしまいたい場合は、
% sed -i ‘s/ika/tako/g’ [filename]
のように -i オプションを使用します。-i[SUFFIX]、例えば -i.bak のようにすると、[filename].bak のようなバックアップをとっておいてくれます。

http://technique.sonots.com/?UNIX%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%2F%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E5%87%A6%E7%90%86%2Fsed

mysqlをインストールし直したりするとユーザの追加が面倒

よくmysqlをインストールしなおすことがあるんだけど、そのたびにぐぐるのが面倒。
grant構文を覚えていないこともダメなんだけど、これまで公式サイト(http://dev.mysql.com/doc/refman/4.1/ja/batch-commands.html)を20、いや50回ぐらいみてるんじゃないかっていうボケっぷり。
% ee adduser.sql
GRANT ALL PRIVILEGES ON *.* TO yousan@’%’ IDENTIFIED BY ‘hogefuga’ WITH GRANT OPTION;
db.l2tp.org% mysql -u root < adduser.sql host.l2tp.org% mysql -u yousan -p -h db.l2tp.org %で追加してるからlocalhostだとまだパスワードなしじゃないと入れなかったりする。これで結構快適なmysql入れ直しライフが送れるはず。 というかgrant構文覚えよう。