(更新:2014/01)EqualLogic監視
(更新:2013/12)テンプレート編集
(更新:2013/10)Disk IO監視
(作成:2013/07)
サービス停止に一早く気付けないのはインフラ屋さんとして失格よね。サーバは立てたら監視しませう。
監視にも色々あるけれど、こちらは主にリソース監視をするもの。
Install on CentOS
epelパッケージ使えるようにしておきましょう。足りないパッケージもがっつりやっつけてくれます。いやーパッケージ管理システムって便利だな。
# yum install --enablerepo=epel httpd mysql-server cacti
初期状態ではアクセスできないので、設定が幾つか必要。まずはhttpd設定、Webアクセスできる所は限定出来るならしておきましょう。ローカルに設置するならallでも良いんじゃないかな。
#### /etc/httpd/conf.d/cacti.conf
...
<Directory /usr/share/cacti/>
...
<IfModule !mod_authz_core.c>
...
#Allow from localhost
Allow from all
...
続いてMySQLサーバ設定。既に用意してあれば不要だけれど、Cacti用にインストールしたなら簡単に初期設定しときましょう。
# mv /etc/my.cnf /etc/my.cnf.org
# cp /usr/share/doc/mysql-server-5.1.69/my-huge.cnf /etc/my.cnf
#### /etc/my.cnf
...
server-id = 1
max-binlog-size = 1G
expire_logs_days = 7
...
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
...
# /etc/init.d/mysqld start
# mysql_secure_installation
...
Enter current password for root (enter for none): (空のままEnter)
...
Set root password? [Y/n]
New password: (MySQL rootログイン用パスワード)
Re-enter new password: (MySQL rootログイン用パスワード)
Password updated successfully!
Reloading privilege tables..
... Success!
...
Remove anonymous users? [Y/n] (Enter)
... Success!
...
Disallow root login remotely? [Y/n] (Enter)
... Success!
...
Remove test database and access to it? [Y/n] (Enter)
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
...
Reload privilege tables now? [Y/n] (Enter)
... Success!
Cacti用アカウントと初期SQLの流し込み。
# mysql -u root -p
Enter password:
...
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cacti.* to cactiuser@localhost identified by '(cactiuser用パスワード)';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
# mysql -u root -p cacti < /usr/share/doc/cacti-0.8.8a/cacti.sql
Enter password:
Cactiスクリプトの設定修正。
//// /usr/share/cacti/include/config.php
...
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "(cactiuser用パスワード)";
$database_port = "3306";
$database_ssl = false;
...
ここまできたらブラウザで http://(cactiサーバのIP)/cacti/
にアクセス。まだまだ初期インストール画面は続く……。ここでは設定の流れを掻い摘んで。
Thanks for taking the time to...
Next>>
Please select the type of installation
初期導入ならNew Install``Next>>
Make sure all of these values are correct before continuing.
余程変な構成してない限り、そのままFinish
。ここで足りないコマンドがあるようならyum install
しておく。User Login
初期導入ならadmin
/admin
でLogin
\*\*\* Forced Password Change \*\*\*
admin
用の新規パスワードを入力してSave
初期導入はこれにて完了。
Cacti-Spine
Cacti情報収集の効率化。標準の cmd.php
によるpollingだと低速かつシングルタスク動作だけれど、spineにすればC言語の高速実行かつマルチタスク動作してくれる。超速い。
特にこのあたりの収集速度はグラフ欠けに直接関わる部分なので、可能ならばCacti-Spineに変更しておいた方が無難。
CentOSの場合、インストールはRPMforgeを使う。ここで大事なのは、Cacti本体とCacti-Spineのバージョンは同じものにしておく事。そうしないと上手くグラフデータが更新されず、ググっても見付からないエラーに翻弄される事に……。
まあ、同一リポジトリからパッケージインストールすれば大抵揃う筈なので、素直にRPMforgeからインスコ。
# yum install cacti-spine --enablerepo=rpmforge
一応こんな感じに確認しとこう。同一バージョンだから「0.8.7i」まで同じである事。
# rpm -qa | grep cacti
cacti-0.8.7i-2.el5.rf
cacti-spine-0.8.7i-1.el5.rf
設定。
#### /etc/spine.conf
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass (DBアクセスパスワード)
DB_Port 3306
spine.conf
の設定については /var/www/cacti/include/config.php
の内容に順じればOK。
後はCactiの設定。
ブラウザアクセス
- console
-Configuration
-Settings
- Paths
- Alternative Poller Path
-Spine Poller File Path
: /usr/bin/spine
- Poller
- General
-Poller Type
: spine
テンプレート追加
Cactiは標準で一般的なサーバのリソース監視が可能、だけれど監視したいものは世の中にあれこれある。しかし心配する事無かれ、Cactiにはテンプレート機能があって監視したいものに最適なテンプレートを作ったり、既にあるものを適用したりできる。ここではそんな追加テンプレートについて。
なおテンプレート適用は大抵サーバへファイルを直接設置する必要がある。個人的には管理上、素直にそのまま置くのではなくシンボリックリンクを使った方が良いと思う。ウチは /usr/local/src/cacti_tpl/
以下に貰ってきたテンプレート毎ディレクトリを作って設置してます。
何か欲しいCactiテンプレートがある時は、まず以下のサイトなどで探してみると良い。
Disk IO監視
サーバの処理速度はCPUのパワー不足やメモリ不足に加え、ディスクアクセス速度がネックになる。割と忘れられがちなので、3点セットで監視を仕込んでおきたいところ。でもDisk IOについては標準テンプレートに含まれないのでDLしてくる必要がある。
導入方法をコマンドレヴェルで簡単に。
(local)# tar xvfz diskio087d.tar.gz
# scp diskio087d/disk_io.xml (Cactiサーバ):/var/tmp/
(Cactiサーバ)# mv /var/tmp/disk_io.xml /usr/share/cacti/resource/snmp_queries
ブラウザアクセス
- console
-Import Templates
- Import Template from Loca File
: cacti087d_data_query_snmp_-_get_disk_io.xml
- Import
このテンプレートを使うと、指定したディスクのRead/WriteそれぞれのBytes/secが取得できるようになる。
EqualLogic監視
DELLのスゴイStrage。まー個人で使う事は無いでしょうけれど。テンプレートは以下から。
導入方法はサイトに記載の通り。
(local)# tar xvfz cacti_host_template_dell_equallogic_group_snmpv2_required.1.2.tar.gz
# scp equallogic_member.xml (Cactiサーバ):/var/tmp/
(Cactiサーバ)# mv /var/tmp/equallogic_member.xml /usr/share/cacti/resource/snmp_queries
ブラウザアクセス
- console
-Import Templates
- Import Template from Loca File
: cacti_host_template_dell_equallogic_group_snmpv2_required.xml
- Import
このテンプレートによる生成グラフは多種あって紹介し難い。まあ単純にEqualLogicごとのBytes/secだけでも見る価値はあると思う。Snapshotバックアップをしているなら「Snapshot Space」も価値あるかな。
BIG-IP監視
BIG-IPのリソース監視はf5 Networks社から提供されているテンプレートが使える。要アカウント。
導入方法はサイトに記載の通り。以下、コマンドレヴェルで簡単に設置までの流れを。
(local)# scp cacti_f5_host_template_v2.zip (Cactiサーバ):/var/tmp/
(Cactiサーバ)# cd /usr/local/src/cacti_tpl/
# unzip /var/tmp/cacti_f5_host_template_v2.zip
...
# cd cacti_f5_host_template_v2/
# ls -1 ./f5_*.xml | while read name; do ln -sf "${name}" /usr/share/cacti/resource/snmp_queries/; done
# ls -1 ./*.pl | while read name; do ln -sf "${name}" /usr/share/cacti/scripts/; done
ブラウザアクセス
- console
-Import Templates
- Import Template from Loca File
: cacti_host_template_f5_big-ip.xml
- Import
こちらは情報が多いので紹介が難しい……。「Connections」「Global HTTP Requests」「Global HTTP Response Errors」「Global HTTP responses」「SSL TPS」「Connection Rate」あたりは通信状況の参考として使えると思う。
テンプレート編集
Cacti標準のテンプレートは何も考えずに導入できてステキだけれど、気に食わない箇所もちらほら。というわけでこれまで手を加えたテンプレートについて書き残してみる。
ucd/net - Memory
以下の記事を信じるならば、メモリの使用率というのはこうなるらしい。
$ free
total used free shared buffers cached
Mem: 8155108 4496288 3658820 0 477432 1824740
-/+ buffers/cache: 2194116 5960992
Swap: 9822204 0 9822204
Mem:free < (使用可能な空きメモリ) < Mem:free + Mem:buffers + Mem:cached
で、Cacti標準テンプレートのメモリ監視では「Memory Free」「Memory Buffers」「Cache Memory」の積み重ねグラフが取得できる。……ぱっと考えただけだと必要十分に思えるかも知れないけれど、実際にグラフ化するとガンガン波打って意味不明。こいつをDisk Spaceのグラフと同じように、Totalに対するUsed/Available表示にして使用率まで一目瞭然にしてみる。
まずはTotal Memoryの値をSNMPから取得できるようにする。
Console
-Data Templates
-Add
Data Templates
Name
: ucd/net - Memory - TotalData Source
Name
: |host_description| - Memory - TotalData Input Method
: Get SNMP DataData Source Item
Internal Data Source Name
: mem_totalMaximum Value ('U' for No Maximum)
: 1000000000Custom Data
OID
: .1.3.6.1.4.1.2021.4.5.0
こいつを既存のMemory Usageテンプレートに突っ込む。
Console
-Graph Templates
-ucd/net - Memory Usage
Graph Template Items
Add
※Graph Template Items
Data Source
:ucd/net - Memory - Total -(mem_total)
Color
: C0C0C0Graph Item Type
: AREAConsolidation Function
: AVERAGECDEF Function
: Multiply by 1024Text Format
: Memory Total
Add
※Graph Template Items
Data Source
:ucd/net - Memory - Total - (mem_total)
Color
: NoneGraph Item Type
: GPRINTConsolidation Function
: AVERAGECDEF Function
: Multiply by 1024Text Format
: Total:Insert Hard Return
: チェック
※ ↑
ボタンにて上記2つを Item # 1
Item # 2
に昇格。
灰色でマシンの搭載メモリが描画され、重ね合わせで「Memory Free」「Memory Buffers」「Cache Memory」のグラフが描画されるので、メモリの利用率も見た目で大体判断できて良い感じ。