チームビルディング
Project Management におけるチームビルディングの話を聞いたので、メモ。
- いいチームとは?
- いいチームとはどんなチームかを明確にしておく。例えば、「チームの目的や、それぞれの役割が明確で気兼ねなく助け合えるチーム」など
- どうやっていいチームを作るのか?
- 役割を明確にする(体制図など)
- 苦労させる(本気にさせる)
- 責任を広く持たせる(本気にさせる)
- 通常は議論ベースでも非常時はトップダウン
- チーム内の意思疎通が出来るように仕向ける
- 出来ればお客さんを含めたチームにする
チームは意図的に設計して実装するものである。
勝手に出来るものではない。勝手に出来たとしてもそれはたまたま相性がよかっただけ。
- キックオフ
- チームの最初のイベント
- PM が誰かを認識してもらう。
- PM が決めたルールを守ってもらう。
- チームメンバにお客さんがいても同様。
最後に「人に優しく、問題に厳しく」
仕事ってやつは
- 仕事って何だろう?
通貨が無い時代の仕事ってなんだろう?たぶん昔は生きるために必要なことを優先的にやってたはず。例えば、自分は今 IT 業界でエンジニアとして働いているけど、インターネットなんて今日、明日生きるためには必要ない。でも今は生きていくために IT エンジニアとして働くことも出来る。昔と今の共通点は、なんだろう?
人が生きていくために働くことが仕事だとすると、仕事は誰かに必要とされているはずである。誰にも必要ないことをやってると、生きていけなくなる。ということは、誰かの役に立つことは仕事になるはずである。
人が共同生活をする上で、得意なことを得意な人に任せるようになり、それぞれが専門的に分化していくのは自然の流れでもあると思う。またちょっと話がそれるが、バックミンスターフラーによると時の権力者が、自らの権力を保つために能力のある人たちにより専門的なことを任せ、俯瞰的な視野を持てないようにしてきたらしい。
- 仕事を創る
仕事が誰かの役に立つことだとわかったら、どうやったら仕事を創ることができるだろうか?
-
- ニーズを満たす
単純に考えるとニーズを満たせば、必要とされる製品なりサービスなりを提供できる。
-
- ニーズとは?
ニーズって何だろう?ニーズって実はよく見えないことが多い気がする。あからさまにみんながこういうものがほしい!って思っていて世の中に無いものは、ほぼまだ出来ないものだと思われる。例えばガンの特効薬とか。そういう、あからさまに必要なものでなくてもニーズはあるはずである。
例えば、最近流行の NetBook はただのノートPCだけど、小さくて安くするとこんなにヒットしてる。と言うように、すでにあるものでも少し何かを加えると隠れているニーズを満たすものが出来ることがある。もちろんソニーのウォークマンみたいにこれまで無かったものの場合もある。
これらを踏まえると、ニーズを満たす製品やサービスとは全体的なバランスが悪いところを埋めるものじゃないかと考えられる。NetBook の例だと、ワイヤレス環境の普及によってニーズのバランスが崩れて、そこを埋める NetBook が登場したという訳である。
ということは、ニーズのバランスを崩すもの。上記の例だと「ワイヤレス環境の普及」から何が求められるかを見つけることがニーズを捉えることになると考えられる。こういうのを世のかなの流れを読むって言うんだろうね。まー言うのは簡単なんだけど、見つけるのは難しいよね。
Ruby irb
ちょっといいきっかけがあったので Ruby の勉強を始めてみようと思う。
手始めに irb を使ってみた。
Windows で ruby を使うには、Cygwin を使うか、別途 Ruby の実行環境をインストールする必要がある。
- Cygwin の場合
Cygwin setup.exe を起動して、パッケージの選択画面まで進む。
選択画面で、Devel カテゴリを選択し、その中にある ruby を選択してインストールする。
頭文字が r なので、かなり下のほうにある。
ちなみに、Cygwin を使う場合は、Tera Term に付属している cyglaunch というターミナルが便利。
本題の irb ですが、インタラクティブということもあって、コマンドプロンプト(シェル)感覚でプログラムを実行できる。例えば、計算なんかは windows の計算機よりも便利。変数が使えるし、履歴も効くので。
irb(main):001:0> 5+10
=> 15
irb(main):002:0> 3*3
=> 9
irb(main):003:0> 3/3
=> 1
irb(main):004:0> a=(5-2)/3
=> 1
irb(main):005:0> b=(3-1)/2
=> 1
irb(main):006:0> a/b
=> 1
irb(main):007:0>
情報源
本家 Cacti サイト
Cacti Forums
RRD Tool
http://oss.oetiker.ch/rrdtool/index.en.html
Tips
Gigabit Ether のトラフィックグラフを取得するには
Gigabit Ether 以上の帯域がある場合、32bit カウンターではすぐにカウンターが一回りしてしまうため、グラフが正常に描けないことがあります。そのため、Gigabit 以上のインターフェースのトラフィックグラフを取得する場合は 64bit カウンターを使ってください。32bit カウンタで Gigabit Ether を計測する場合は、bit のカウンタではなく byte のカウンタを利用してください。
- 32bit の最大値
2の32剰:4,294,967,296
- 64bit の最大値
2の64剰:18,446,744,073,709,551,615
スイッチの Description をグラフタイトルに表示させる
- DataQueries を開く
Console タブにて DataQueries を選択
SNMP - Interface Statistics を選択
Associated Graph Templates の項目の中から対象のものを選択
- グラフタイトルを変更
Suggested Values の Graph Template にグラフタイトルを入力
-
- 例
左側:|host_description| - Traffic - |query_ifDescr|-|query_ifAlias|
右側:title
グラフがたまに欠ける場合
- ポーリングのタイムアウト値を長くする
Console タブの Settings の General にて、SNMP Timeout の値を 500 から 1000〜2000 ぐらいにしてみる。
デフォルトだと、0.5 秒となっているため、タイムアウトでスキップされている可能性があります。
rra ファイルのデータ保存期間を延ばす
- デフォルトの値
RRAs | 参照単位 | Rows | 保存期間 | 解説 |
Hourly | 1分毎 | 500 | 500分(8.3時間) | 8.3時間以内であれば1分毎のデータを取り出し可能 |
Daily | 5分毎 | 600 | 50時間 | 50時間(2日強)以内であれば5分毎のデータを取り取り出し可能 |
Weekly | 30分毎 | 700 | 350時間 | 350時間(2週間強)以内であれば30分毎のデータを取り出し可能 |
Monthly | 2時間毎 | 775 | 1550時間 | 1550時間(2ヶ月強)以内であれば2時間毎のデータを取り出し可能 |
Yearly | 1日毎 | 797 | 797日 | 797日(2年強)以内であれば1日毎のデータを取り出し可能 |
- 保存期間の延長
上記の表にある Rows の値を長くしてやれば保存期間を長くできます。
ただ、長くすると rra 内に格納できる値が増えるということなので、ファイルサイズが
大きくなります。また、この設定をする前に作成された rra ファイルは適用されないた
め、途中での変更は困難です。
- 設定変更方法
Console タブの Data Source --> RRAs にて、Hourly, Daily, Weekly, Monthly, Yearly
のどれかを選択し、設定を Rows の項目を変更する。
LDAP の利用
- 準備
php-ldap パッケージのインストール
httpd の再起動
- 設定
settings --> Authentication にて設定を実施
LDAP 認証に変更した場合も、ローカルアカウントでログイン可能なので安心して設定が出来ます。
グラフデータが取得できない場合
- cacti の Poller が取得している値を確認
settings の General タブにて Poller Logging Level を MEDIUM か HIGHT に変更ログを確認し、どのような値が取得されているか確認
- 実際に snmpwalk の結果を確認
$ snmmpwalk -c-v 2c <ノード名>
- 対応
snmpwalk で正常に取得できない場合は snmp 関連の設定や、ネットワーク上の経路を調査してください。
また、データテンプレートとグラフテンプレートの Max/Minmum 値を確認してください。値が Max/Min を超えている場合は rrd に格納されなかったり、グラフが表示されなかったりします。
運用管理
ここでは、Cacti が稼動するサーバの運用管理について記述します。
Cacti の監視
Cacti の稼動監視には下記の項目を監視する必要があります。
- サーバ
- 死活監視
サーバ自体の死活監視。監視サーバから ping などで実施。
-
- ハードウェア監視
ハードウェア故障の監視。監視方法はハードウェアの実装次第。
-
- リソース監視
- Disk 使用率
- リソース監視
-
-
- CPU 使用率
-
CPU 使用率も閾値監視。
バックアップ
バックアップの対象として考えるべきものは下記の通りです。
要件により頻度が異なると思われますが、rra ファイルと MySQL のデータのバックアップが取れていれば復元は可能です。
cacti/ 以下のファイル群ですが、rra/, log/ は更新頻度が高いため別途バックアップし
てもよいと思います。
-
- Config ファイル
下記のファイルには mysql のユーザ名とパスワードが記載されているので、バックアッ
プ対象です。
include/config.php
include/global.php
-
- rra ファイル
データが蓄積されている RRD Tool のファイルです。通常 cacti/rra 以下にあります。
-
- log ファイル
Cacti の出力する log ファイルです。通常 cacti/log 以下にあります。
-
- MySQL データベース
MySQL 内に蓄積された設定情報です。通常 cacti というデータベースをバックアップします。
例:# mysqldump -u cactiuser -p -l --add-drop-table cacti > mysql.cacti
下記の二つのディレクトリには、独自に作成・配置したスクリプトや XML ファイルがあ
るため、このディレクトリもバックアップ対象となります。
resource/
scripts/
プラグインを利用している場合は下記のディレクトリもバックアップ対象です。
plugins/
- ファイルバックアップ
バックアップが必要なファイルどディレクトリは下記の通りです。
cacti/include/config.php
cacti/include/global.php
cacti/log/
cacti/rra/
cacti/resource/
cacti/scripts/
cacti/plugins/
- データベースバックアップ
MySQL のデータベースはいくつかの方法でバックアップ可能です。
mysqldump には様々なオプションがあるので、必要に応じてオプションを追加してください。
<例>
# mysqldump -u cactiuser -p -l --add-drop-table cacti > mysql.cacti
リストア
- データベースのリストア
MySQL をリストアする場合は、dump ファイルからのリストアを実施してください。
- その他ファイルのリストア
その他のファイルに関しては、取得したバックアップをそのまま元に戻すだけです。
アップグレード
Cacti のアップグレードを行う際の手順を記載します。バージョンがあがるにつれて変わる部分があると思われますので、注意してください。
- Requirement の確認
Apache や MySQL, RRDTool のバージョンがサポートされているか確認してください。
Cacti0.8.7 では下記の通りです。
# RRDTool 1.0.49 or 1.2.x or greater
# MySQL 4.1.x or 5.x or greater
# PHP 4.3.6 or greater, 5.x greater highly recommended for advanced features
# A Web Server e.g. Apache or IIS
- MySQL のバックアップ
# mysqldump -u cactiuser -p -l --add-drop-table cacti > mysql.cacti
- 新しいバージョンの取得
下記のページより新しいバージョンの Cacti を取得します。
http://www.cacti.net/index.php
プラグインを利用している場合はプラグインアーキテクチャもダウンロードします。
http://cactiusers.org/index.php
ダウンロードした cacti のファイルを適当な作業用ディレクトリで解凍し、プラグインアーキテクチャを適用します。
パッチファイルと sql ファイルをコピー
tar -zxvf cacti-X.X.X.tar.gz
tar -zxvf cacti-plugin-arch.tar.gz
パッチ適用
cd cacti-plugin-arch
cp cacti-plugin-X.X.X-PA-vX.X.diff ../cacti-X.X.X
cp pa.sql ../cacti-X.X.X
sql ファイル適用(必要な場合のみ)
cd ../cacti-X.X.X
patch -p1 -N < cacti-plugin-0.8.7b-PA-v2.1.diff
mysql -u XXX -p cacti < pa.sql
- 既存ファイルのコピー(rra ディレクトリ以外)
下記の既存 cacti のファイルを新しい cacti のディレクトリ内にコピー
cacti/resource/
cacti/scripts/
cacti/plugins/
新旧 cacti のオーナーとパーミションをあわせておく
- rra と log ディレクトリのコピー
ここまで終わったら後は、rra と log ディレクトリのみなので、cacti のポーリングが終わったところを見計らって rra と log ディレクトリをコピーする。
※ここでもオーナーとパーミションに注意する。
Web からアクセスすると、バージョンアップスクリプトが実行される
- 動作確認
Web GUI 上から動作確認をして作業完了。
グラフが更新されていない場合は、log を確認する。
SPINE のアップグレード
こちらは新しい rpm ファイルをダウンロードし、アップグレードすればOKです。
便利なプラグイン
よく利用するプラグインを紹介します。
http://forums.cacti.net/about14985.html にプラグインの情報はまとめられています。
Network Weathermap
- 機能
Network Traffic を可視化することが可能です。
物理結線図を作成し、リンクごとにインターフェーストラフィックのデータを登録する
と、物理結線図上のリンクの色が帯域により変化します。
- Screen Shot
- 環境
※Weathermap を使うには、gd と php-gd パッケージが必要です。
※それぞれ、yum でインストール可能です。
hostinfo
Aggregate
複数のデータをまとめてひとつのグラフを作ることができるプラグイン。
例えば、Switch の複数ポートの traffic をまとめてひとつのグラフにするとか、コアごとの CPU 使用率をまとめてひとつのグラフにするとかすることが可能。