So-net無料ブログ作成
検索選択
エステ

Zabbix Server/Agent 2.0.4 install memo [ZABBIX]

Ubuntu 12.10 ServerへのZabbix 2.0.4インストールメモ

基本的には、マニュアル通り。

# apt-get install php5-gd php5-mysql openipmi libssh2-1 fping libcurl4-openssl-dev snmp build-essential libmysqld-dev libsnmp-dev libssh2-1-dev libopenipmi-dev libiksemel-dev libiksemel-utils


# tar zxvf zabbix-2.0.4.tar.gz

# groupadd zabbix

# useradd -g zabbix zabbix


MySQLでZabbixデータベースを作成します。

データベース名は「zabbix」、接続ユーザ名も「zabbix」、パスワードは「zabbixpass」

これもここを参照。

# cd ./zabbix-2.0.4

# service mysql start
mysql start/running, process 22685
root@ws:/etc/mysql# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.5.28-0ubuntu0.12.10.2 (Ubuntu)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixpass';
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye


# mysql -uroot zabbix < ./database/mysql/schema.sql

# mysql -uroot zabbix < ./database/mysql/images.sql

# mysql -uroot zabbix < ./database/mysql/data.sql

# ./configure --enable-server --enable-agent --with-mysql --with-jabber --with-libcurl --with-net-snmp --with-ssh2 --with-openipmi

# make install

# echo date.timezone=Asia/Tokyo >> /etc/php5/apache2/php.ini

# echo max_execution_time=300 >> /etc/php5/apache2/php.ini

# chown zabbix:zabbix /usr/local/etc/zabbix_*.conf

# mkdir /var/www/zabbix

# cp -a ./frontends/* /var/www/zabbix/

# chown -R zabbix:zabbix /var/www/zabbix/

# service apache2 restart

# service zabbix-server start

# echo zabbix_agent 10050/tcp >> /etc/services

# echo zabbix_trap 10051/tcp >> /etc/services

設定ファイルは今まで通り。
# vi /usr/local/etc/zabbix_server.conf

# vi /usr/local/etc/zabbix_agentd.conf


Agentも同様。

# ./configure --enable-agent

# make

# make install

細かいところは省いたけど、だいたいこんな感じでよいのでは。

Zabbixからアラートメールを送る [ZABBIX]

サーバー上で障害発生時にZabbixからアラートメールを送る方法をば。

Administration - Media Types -Emailから設定

スクリーンショット 2012-04-23 13.19.08.png

Zabbixサーバー上ではPostfixが動いています。

SMTP Server: localhost.localdomain
SMTP helo: localhost.localdomain
SMTP email: zabbix@localhost.localdomain

/etc/hosts には localhost.localdomainが含まれていることを確認。なければ追記して、# service networking restart

--/etc/hosts example
127.0.0.1       localhost localhost.localdomain

--

つぎはアラートを知らせる先のユーザーの設定です。
Administration - Usersから、必要なユーザー(下の例ではAdmin)のMediaにEmailアドレスを設定します。

スクリーンショット 2012-04-23 13.20.40.png


あとはアクションの設定です。
Configuration - Action - Action Operationsを追加。

スクリーンショット 2012-04-23 14.43.05.png

これで、アラートメールが送られてくるはずです。





パワーダウン時にZabbixからサーバーをシャットダウンする [ZABBIX]

Zabbixから他のサーバーをシャットダウンできるようにしましたが、Zabbixの動きがところどころおかしく(バグ?)、忘れないように、メモメモ。


以前のエントリでオムロンのBY50SをUbuntu11.10で認識させて、Zabbixから監視できるようにしました。

その時は、VoltageとStatusだけでしたが、充電率を簡易的に得て、特定の容量を下回った場合に、UPSに接続されているサーバーをZabbixからシャットダウンすることにします。

1.BY50Sの充電容量が30%を下回り
かつ
2.BY50Sがオフライン(電源断)
の時にシャットダウンします。


こんな状況です。
                     AC100V
                         |
       -----------[BY50S]---------
       |                                 |
[サーバー:ws]---------------[サーバー:fs]
-Zabbixサーバー                -Zabbixエージェント
-nut



1.充電容量の取得

ここに取得方法が記載されています。

                       battery.voltage - battery.voltage.low
battery.charge =  ------------------------------------------------ x 100 %
                     battery.voltage.high - battery.voltage.low


battery.voltageの最大値と最小値を取得します。

最大値は充電完了後の状態で、battery.voltageを確認します。

# upsc by50s battery.voltage

最小値はBY50Sへの電源供給を止めた状態で、nutが自動的にシャットダウンを実施した時点のbattery.voltageを確認します。

battery.voltage.high=13.6
battery.voltage.low=11.9

これらを、/etc/nut/ups.confに追記します。

[by50s]
driver = blazer_usb
port = /dev/usb/hiddev0
desc = "Omron UPS"
vendorid = 0590
productid = 0081
subdriver = ippon

default.battery.voltage.high = 13.6
default.battery.voltage.low = 10.9

これで、battery.chargeを参照することで、簡易ですが、充電率を取得できます。

# upsc by50s battery.charg
100

# echo 'UserParameter=UPS.charge[*],upsc $1 battery.charge' >> /etc/zabbix/zabbix_agentd.conf

スクリーンショット 2012-04-17 14.49.46.png

これで、ZabbixからUPSの充電率が見えるようになりました。


2.UPSが電源断がZabbixから判るようにします

じつは、battery.statusで判るのですが、Zabbixのトリガーがテキストの変化を検出できない(バグ?)ので、一旦数値型に書き換えて、その変化で電源断を検出します。

/usr/local/bin/ups-statusを新規作成。
これで、一旦、battery.statusを数値型に書き換えます。
--
#! /bin/sh

if [ ! -x /bin/upsc ]; then
        "Couldn't find command upsc"
        exit 1
fi

str="initial"
status="0"

str=`/bin/upsc $1 ups.status`

if [ "$str" = "OL BYPASS" ]; then
        status="1"
elif [ "$str" = "OB" ]; then
        status="2"
elif [ "$str" != "initial" ]; then
        status="3"
fi

echo ${status}

exit 0
--
# /usr/local/bin/ups-status by50s
1

これで、OK
あとは、Zabbixエージェントの設定と再起動

# echo 'UserParameter=UPS.status[*],/usr/local/bin/ups-status $1 ups.status>> /etc/zabbix/zabbix_agentd.conf
# service zabbix-agent restart

これでOK

あとは、

3.Zabbixでトリガーの登録
4.Zabbixでアクションの登録
です。


3.Zabbixでトリガーの登録

Configuration - Template から作りたい先のテンプレートのtriggerを選択し、そこから、[Create Trigger]ボタンから作成。
テンプレートは、Linux_template内に作成。

スクリーンショット 2012-04-17 15.04.05.png

Expressionはこんな感じで。
{Template_Linux:UPS.charge[by50s].last(0)}<30 & {Template_Linux:UPS.status[by50s].last(0)}=2

UPS.charge[by50s].last(0):充電率の直近値
UPS.status[by50s].last(0):ステータスの直近値

SeverityはDisasterで。

4.Zabbixでアクションの登録

Configuretion - Action の [Create Action]から新規作成。

スクリーンショット 2012-04-17 15.13.16.png

Action Conditions と Action Operations を登録します。

Action ConditionsはTrigger SeverityはDisaster にしました。Trigger名とステータスからTriggerとして検出したかったのですが、Triggerを選択後[select]ボタンからtriggerを選択しても反映されないのでSeverityから検出するようにしました。他のTriggerでDisasterを選択している場合は他のTriggerでもシャットダウンが実行されることになってしまうので、注意が必要です。私の場合は、Disaster=サーバー停止が必要な状態という考えで、これでよしとしました。

Action OperationはOperation typeを"Remote command"に変更し、Remote command欄にシャットダウンコマンドを記載します。

fs:sudo /sbin/shutdown -h 0

:の前はシャットダウンしたい(Zabbix内でのサーバー名です。

ただ、Zabbixではshutdownコマンドを実行する権限がないので、シャットダウンしたいサーバーで/etc/sudoerを編集します。

$ sudo visudo

で 
zabbix ALL=NOPASSWD: /sbin/shutdown
を追記して、保存します。

以上。。

あとは実際に、アンプラグしてみて、ちゃんとシャットダウンされるか確認します。

電源断の状態でかつ充電率が30%を下回っていると、シャットダウンされたサーバーの電源をonにしても、zabbix agentが立ち上がった段階で再度シャットダウンが実行されますよ。



Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

Windows7にZabbix agentをインストール [ZABBIX]

XBMCをインストールしたWindows7にZabbix agentをインストールしましたが、ちょっと引っかかったので、メモ。

現時点で、Windows版は1.8.11が最新版のようです。

ここからダウンロード。http://www.zabbix.com/downloads/1.8.11/zabbix_agents_1.8.11.win.zip

適当に展開して、32bit版か64bit版か適切なほうをインストールします。

コマンドプロンプトから、

>C:\Users\(user name)\Desktop\zabbix_agents_1.8.11.win\win64\zabbix_agentd.exe --install

あ、これは、デスクトップに展開したフォルダをおいた場合です。

このインストール時に、zabbix_agentd.exeのプロパティの互換性タブから、「□管理者としてこのプログラムを実行する」にチェックを入れてあげないと、Cannot connect to Service Managerといわれて、おこられます。

これでインストール完了なので、あとは最低限の設定。

起動ドライブのルートにconfファイルを置く。

C:\zabbix_agentd.conf

--zabbix_agentd.conf

Server=192.168.1.15
Hostname=ms
ListenIP=192.168.1.16
StartAgents=1
DebugLevel=3
LogFileSize=1
Timeout=3

--

Windows版には不要なパラメータが入っているかも。。

あと、C:\Program Files\Zabbix にもconfがあるので、そっちも一応、修正。

Server=192.168.1.15
 
Hostname=ms

ListenIP=192.168.1.16
 
LogFile=C:\Program Files\zabbix\zabbix_agentd.log

デフォルトではListenIP=127.0.0.1になっているはずです。

次に、10050のポートを空けてあげます。(自動であいていなかったので。) コントロールパネル->Windowsファイアウォール->詳細設定->受信の規制から右側のペインの「新しい規則」でポート10050を追加してあげます。名前は適当に。

 あとは、Zabbix agentが自動的に起動されるように、サービスの設定。 コントロールパネル->管理ツール->サービスでZabbix agentを選んで、スタートアップの種類が「自動」になっていることを確認。

これでOKなはず。。あとは、ZabbixのWeb画面から適当に追加。そっちの設定はぼちぼちと。。。

 

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

 


Zabbixから室温をモニタリングする [ZABBIX]

ZabbixでサーバのHDDやUPSの温度などなどをモニタリングしているのですが、室温との相関を知りたくUSBタイプの温度計で室温もモニタリングすることに。

USBタイプの温度計はこちら。
PCSensor社製のTEMPerシリーズのわりと初期のモデルとおもわれます。(TEMPerV1.2)
すでに生産されていないようで、流通在庫のみかと。

photo.JPG
本体右側の小さな穴から外気を取り込めます。

image.jpeg
USBコネクタ反対側にも外気を取り込むための穴が開いています。


Ubuntu11.10のサーバーに接続すると、、

$ cat /var/log/syslog|grep TEMPer

--
Apr 17 13:25:39 ws kernel: [333259.264091] input: RDing TEMPerV1.2 as /devices/pci0000:00/0000:00:04.0/0000:01:00.0/usb8/8-2/8-2:1.0/input/input352
Apr 17 13:25:39 ws kernel: [333259.264401] generic-usb 0003:0C45:7401.02B8: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.2] on usb-0000:01:00.0-2/input0
Apr 17 13:25:39 ws kernel: [333259.276917] generic-usb 0003:0C45:7401.02B9: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.2] on usb-0000:01:00.0-2/input1
--
という具合に認識されます。


Linuxで動かすための方法はいくつかありますが、モデルによって動く・動かないがあるようです。
Perl, C, Ruby で書かれたドライバ等が流通しています。

# lsusb 
の結果に以下が含まれていれば、Cで書かれたドライバがおすすめです。
私はこちらでした。
Bus 008 Device 004: ID 0c45:7401 Microdia

# lsusbの結果が
Bus 003 Device 002: ID 1130:660c Tenx Technology, Inc.
ならPerlで書かれたものでも大丈夫かと。

TEMPerのモデルによってドライバが少し異なるので、モデルがどれか正確に見極めることが最初のステップです。


ではCの場合について説明します。
# sudo apt-get install git build-essential libusb-0.1.4 libusb-0.1.4-dev
# git clone git://github.com/bitplane/temper.git
# cd temper


[1/14/2013 追記]
Ubuntu 12.10では、
# sudo apt-get install git build-essential libusb-1.0-0 libusb-1.0-0 libusb-dev

# vi temper.c で、GMTをローカルタイムに変更します。
また、TEMPerの測定温度を校正したい場合は、scaleとoffsetを一旦リセットします。
校正する必要がなかったり、できない場合は、リセットしなくてもよいかと。

(一旦、校正していない状態にします。)
static float scale = 1;
static float offset = 0;

(表示時刻をローカルタイムにします。)
utc = gmtime(&t);
utc = localtime(&t);

そして、
# make

でおわり。

# ./temper 
12-Apr-2012 17:31,30.000000

という具合に時刻と温度が取得できるはずです。

さて、これで温度を測定して、校正します。

校正するためには、TEMPer以外に温度計が必要です。
校正といっても簡易なものなので、よほど実温度と差があるのでなければしなくても良いかも知れません。

このドライバで提供されている校正方法は至って簡易で、TEMPerで測定できた温度と他の温度計で測定できた温度が1次関数的にズレているものとして、そのズレを算出します。
TEMPerではサーミスタが用いられていますが、サーミスタの誤差は直線的になるようなので、これでも十分なようです。

1次関数なので2点測定してあげればよいことになります。

               1点目   2点目    差
他の温度計 32.2    25.6     6.6          ---(1)
TEMPer    32.329498   25.808313     6.521185  ---(2)

Scale: (1)/(2) = 1.012

Offset: 25.6 - 25.808313x1.012 = -0.52

これらの値をtemper.cの該当する部分を書き換えて、makeします。

static float scale = 1.012;
static float offset = -0.52;

これで、
# ./temper 
を実行すれば、補正された室温が得られるはずです。。

temperを/usr/local/bin/あたりに置いてあげます。


# echo UserParameter=USB.temp,/usr/local/bin/temper|cut -f2 -d"," >> /etc/zabbix/zabbix_agentd.conf

# service zabbix-agent restart

スクリーンショット 2012-04-13 13.38.30.png


あと、temperのレスポンスが遅く、タイムアウトになることが多いので、/etc/zabbix/zabbix-agentd.conとzabbix_server.confのtimeout = 30くらいにしてあげると、取りこぼしが減ります。

これでOKのはず。



ちなみに、他のTEMPerのモデルの場合は、上記のドライバは使えない可能性があります。
そのときは、この辺りが役に立つかと。



Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

タグ:calibration

OMRON BY50SをZabbixで監視できるようにする [ZABBIX]

OMRON BY50SをZabbixで監視できるようにしようと。

オムロン 無停電電源装置(常時商用給電/正弦波出力) 500VA/300W BY50S

オムロン 無停電電源装置(常時商用給電/正弦波出力) 500VA/300W BY50S

  • 出版社/メーカー: オムロン
  • メディア: Personal Computers


BY50SというのはOMRONから発売されているUPSなわけですが、これをZabbixから監視できるようにする。。。前に、Ubuntuから見みられるようにしなければなりません。

というわけで、まずはBY50SをUbuntuに認識させなければならないわけですが、OMRONから配布されている標準のドライバでは対応していませんので、Network UPS Toolsをつかうことにします。

Network UPS tools

マルチプラットフォーム、マルチベンダに対応したかなり汎用的なツールで、UPSをはじめとするパワー系デバイスのコントロールやモニタリングか可能です。

環境はUbuntu11.10サーバとUSB接続されたOMRON BY50Sです。とりあえず。

まずはインストール
# apt-get install nut

おわり。

次に設定とか。

/etc/nut で、

# vi nut.conf

--
MODE=standalone
--

# vi upsd.users

--
[upsmon]
password = pass
upsmon master
--

# vi upsmon.conf

--
MONITOR by50s@localhost 1 upsmon pass master
--


BY50SのベンダIDとプロダクトIDをしらべます。

# lsusb|grep -i OMRON

Bus 004 Device 002: ID 0590:0081 Omron Corp. 


この結果を使って、、

# vi ups.conf

--
[by50s]
driver = blazer_usb
port = /dev/usb/hiddev0
desc = "Omron UPS"
vendorid = 0590
productid = 0081
subdriver = ippon
--

さらに、

# vi /lib/udev/rules.d/52-nut-usbups.rules

--
# Omron BY50S
ATTR{idVendor}=="0590", ATTR{idProduct}=="0081", MODE="0664", GROUP="nut"
--


# vi /lib/udev/rules.d/91-permissions.rules

--
# usbfs-like devices
 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
 
 # serial devices
 SUBSYSTEM=="tty",
--

これがないと、
Communications with UPS by50s@localhost lost
といわれる。。


# service udev restart
# service nut start

これでOK

# upsc by50s
battery.voltage: 13.60
beeper.status: disabled
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.productid: 0081
driver.parameter.subdriver: ippon
driver.parameter.vendorid: 0590
driver.version: 2.6.1
driver.version.internal: 0.03
input.frequency: 49.9
input.voltage: 101.7
input.voltage.fault: 101.3
output.voltage: 101.3
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 26
ups.productid: 0081
ups.status: OL BYPASS
ups.temperature: 41.3
ups.type: offline / line interactive
ups.vendorid: 0590


# upsc by50s
がうまくいかないときは、UPSのUSBコネクタを抜き差ししてからもう一度、nutをrestartしてみるといい。


さて、Zabbixでステータスをみたいのですが、とりあえず、上で得られる、battery.voltageとups.statusについて常時みることにする。

# echo 'UserParameter=UPS.voltage[*],upsc $1 battery.voltage' >> /etc/zabbix/zabbix_agentd.conf
# echo 'UserParameter=UPS.status[*],upsc $1 ups.status' >> /etc/zabbix/zabbix_agentd.conf
# service zabbix-agent restart

あとはtemplateに追加。
スクリーンショット 2012-03-29 20.19.28.png

スクリーンショット 2012-03-29 20.19.51.png

これでOK


Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXでApple Time Capsuleを監視する [ZABBIX]

以前、Netgearのインテリジェントスイッチングハブを監視するときの
テンプレートを作ったのですが、Zabbixのバージョンが上がって一部
不具合があったので新たに作り直しました。


拡張子の.txtを.xmlに変更すればzabbixでインポートできるようになります。

で、このテンプレートはAppleTime Capsuleを監視するのにもそのまま
使えました。

こんなかんじ。

スクリーンショット(2010-05-28 0.19.20).png




ところでUnitsの設定で"Bps"を設定するとKBpsやMBpsなど適切?な単位に変換
されるのですが、どうみてもおかしい。

単位の書き方もおかしいですが、数値もおかしい。

Kibps ??
Mibps ??

1000や1000^2ではなく、1024や1024^2で割られている模様。

ふつーに、1000や1000^2で割って、KbpsやMbpsで表記してほしいです。。


あと、uptimeがおかしいですが、気にしないことに。。


Zabbixの参考書


Zabbixのicmppingでエラーが出るので。 [ZABBIX]


  1075:20100527:230836.527 /usr/sbin/fping: [2] No such file or directory
  1075:20100527:230837.735 /usr/sbin/fping: [2] No such file or directory

こんなことを言われるので、シンボリックリンクを。

# ln -s /usr/bin/fping /usr/sbin/fping
# ln -s /usr/bin/fping6 /usr/sbin/fping6

これで問題なし。

ZABBIXでイーサネットのリンクを監視する [ZABBIX]

ifconfigでもできますが、ethtoolの方が簡単なので、そちらをつかいます。

# apt-get install ethtool

# chmod 4755 /usr/sbin/ethtool 

# echo "UserParameter=eth.link[*],/usr/sbin/ethtool $1|grep "Link detected:"|cut -f2 -d":""

# /etc/init.d/zabbix-agent restart

zabbixの設定はこんな感じで。

スクリーンショット(2010-05-25 8.01.00).png





Zabbix 1.8.1 を再インストールした後の設定とか [ZABBIX]

ubuntu を 9.10 から 10.04 へアップグレードした影響で
Zabbix が 1.6.4 から 1.8.1 へ上がりました。

その後の設定編です。

ブラウザから、


などとzabbixをインストールしたサーバにアクセスしますと、
ID:Passを聞かれますので、初期設定のAdmin:zabbixと入力して
ログインします。

1.6.4の時にはうまくいかなかったので、使わなかったのですが、
メニューの
Administration > Installation
からセットアップを行っていきます。

スクリーンショット(2010-05-11 12.47.54).png

スクリーンショット(2010-05-11 12.36.18).png
License Fileが見あたらないようです。ま、気にしないで、次へ。

スクリーンショット(2010-05-11 12.27.48).png
Failが出ているところを修正します。

# vi /etc/php5/apache2/php.ini

memory_limit = 16M
memory_limit = 512M 

upload_max_filesize = 2M
upload_max_filesize = 16M

post_max_size = 8M
post_max_size = 32M

;mbstring.func_overload = 0
mbstring.func_overload = 2

max_input_time = 60
max_input_time = 600

# /etc/init.d/apache2 restart

これでOKです。

スクリーンショット(2010-05-11 12.34.09).png

スクリーンショット(2010-05-11 12.35.16).png
User:zabbix
Password:インストール時に入力したもの

スクリーンショット(2010-05-11 12.35.38).png

スクリーンショット(2010-05-11 12.35.56).png

スクリーンショット(2010-05-11 12.36.43).png

スクリーンショット(2010-05-11 12.37.02).png

まずはここまで [るんるん]







Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

Zabbix の再インストール [ZABBIX]

ubuntu を 9.10から 10.04へアップグレードした際に、zabbixを1.6.4から1.8.1へアップグレードすると、うんともすんとも言わなくなってしまったので、、

スクリーンショット(2010-05-11 1.29.04).png

インストールします。。



まず、きれいに、アンインストールします。

# apt-get remove --purge zabbix-server-mysql
apt-get remove --purge zabbix-frontend-php
apt-get remove --purge mysql-server

途中で聞かれますが、データベースもきれいさっぱり削除してください。
インストール時に、同じテーブルがすでにあると、インストールに失敗します。
ココ↓デス
スクリーンショット(2010-05-11 2.32.25).png


さて、インストールです。

# apt-get install zabbix-server-mysql

スクリーンショット(2010-05-11 2.20.07).png
yesで。

スクリーンショット(2010-05-11 2.20.33).png
パスワードはブランクで。

スクリーンショット(2010-05-11 2.20.58).png
ここは適当なパスワードを設定。

スクリーンショット(2010-05-11 2.21.41).png
再度入力。

# apt-get install zabbix-frontend-php

スクリーンショット(2010-05-11 3.56.37).png
mysqlを選択。

スクリーンショット(2010-05-11 3.57.55).png
先ほど入力したパスワードを入力。

スクリーンショット(2010-05-11 3.58.07).png
再度入力。

# echo date.timezone=Asia/Tokyo >> /etc/php5/apache2/php.ini
# echo max_execution_time=600 >> /etc/php5/apache2/php.ini
# chown www-data:www-data /etc/zabbix/dbconfig.php
# chown zabbix:zabbix /etc/zabbix/zabbix_*.conf
# /etc/init.d/apache2 restart

# vi /etc/zabbix/zabbix_server.conf

ListenIP=192.168.1.15 ← ZABBIXサーバのIPアドレス

以上で完了。
おつかれさまでーす[ぴかぴか(新しい)]





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXでHDD温度を監視する [ZABBIX]

ZABBIXで監視するシリーズ?です。

今回はHDDの温度を監視します。

HDDの温度はsmartctlでもいいですが、情報を切り出すのが面倒なので、
hddtempを用います。

# apt-get install hddtemp

インストール時のキャプチャを取り忘れていたのでわからないのですが、
デフォルトではrootしかコマンド実行できないので、修正します。

# dpkg-reconfigure hddtemp

スクリーンショット(2010-04-10 21.12.05).png

肝心のここをYesで。


スクリーンショット(2010-04-10 21.12.26).png

自動的に温度を取得しないので0


スクリーンショット(2010-04-10 21.12.50).png

デーモンとして起動しないので、Noで。


# echo 'UserParameter=HDD.temp[*],/usr/sbin/hddtemp $1|cut -f3 -d":"|cut -b-3' >>  /etc/zabbix/zabbix_agentd.conf


あとは、適当にItemの追加です。
スクリーンショット(2010-04-10 22.40.28).png
ディスクの台数だけ追加します。
ファイルサーバには4台HDDがのっているので、/dev/sda~sddまで追加。

結果、こんなかんじです。
スクリーンショット(2010-04-10 22.42.55).png





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXでRAIDを監視する [ZABBIX]

ソフトウェアRAIDを構成しているサーバのアクティブアレイの数を監視します。

# echo 'UserParameter=raid.active[*],cat /proc/mdstat |grep -A 1 $1 |tail -1 |cut -f1 -d"]" |cut -f2 -d"/"' >> /etc/zabbix/zabbix_agentd.conf

テンプレートを追加し、itemの設定を行います。
スクリーンショット(2010-04-10 19.34.26).png

Description Acrive Software RAID Array
Type ZABBIX agent
Key raid.active[md0]
Type of information Numeric (integer 64bit)


# /etc/init.d/zabbix-agent restart

これでOK

スクリーンショット(2010-04-10 19.08.27).png





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXでMySQLを監視する [ZABBIX]

MySQLの監視には標準のテンプレートが用意されていますので、
基本的にはそのコメントを取り除くだけですが、、

MySQLのインストール時にrootパスワードを設定していますと
監視値の取得に失敗します。

# mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

と、こんな具合に。。

そこで、rootパスワードを解除します。

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8669
Server version: 5.1.37-1ubuntu5.1 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SET PASSWORD FOR root@localhost=PASSWORD('');
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

これでOK

あとは、
# vi /etc/zabbix/zabbix_agentd.conf

UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc -l
UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T"
UserParameter=mysql.threads,mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q"
UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
UserParameter=mysql.slowqueries,mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O"
UserParameter=mysql.qps,mysqladmin -uroot status|cut -f9 -d":"
UserParameter=mysql.version,mysql -V

これらの前についてる#を取り除きます。

また、テンプレートのkeyが間違えているので、修正します。

スクリーンショット(2010-04-10 18.59.50).png

Item Key(default) Key(modified)
MySQL is alive mysql[ping] mysql.ping
MySQL number of slow queries mysql[slowqueries] mysql.slowqueries
MySQL number of threads mysql[threads] mysql.threads
MySQL queries per second mysql[qps] mysql.qps
MySQL uptime mysql[uptime] mysql.uptime
MySQL version version[mysql] mysql.version

これで、監視できるようになりました。

スクリーンショット(2010-04-10 19.07.51).png




Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXのNETGEAR GS108T 用テンプレートをつくる [ZABBIX]

というのも、標準テンプレートのsnmp v1,snmp v2のテンプレートを
GS108Tに監視に適用しても情報がとれなかったので、テンプレートを
作ってみようと。

そのためには、GS108T で用意されているOIDの一覧が必要です。

というわけで、まず、

# apt-get install snmp
Reading package lists... Done
Building dependency tree        
Reading state information... Done
The following NEW packages will be installed:
  snmp
0 upgraded, 1 newly installed, 0 to remove and 11 not upgraded.
Need to get 163kB of archives.
After this operation, 647kB of additional disk space will be used.
Get:1 http://jp.archive.ubuntu.com karmic/main snmp 5.4.1~dfsg-12ubuntu7 [163kB]
Fetched 163kB in 0s (329kB/s)
Selecting previously deselected package snmp.
(Reading database ... 42320 files and directories currently installed.)
Unpacking snmp (from .../snmp_5.4.1~dfsg-12ubuntu7_amd64.deb) ...
Processing triggers for man-db ...
Setting up snmp (5.4.1~dfsg-12ubuntu7) ...


$ snmpwalk -v2c -c public 192.168.1.254 1.3

結果、1200項目近いOIDがはき出されます。
(ここで、192.168.1.254はGS108TのIPアドレス)

そこから、必要な項目を拾います。。。って、正直しんどいなぁ[たらーっ(汗)]

ちょっとショートカットしながら、とりあえず
Port1~8のRX/TX Byte,status と Host name を取得できるようにしてみました。
以下のXMLファイルをZABBIXでインポートすればOK。

--ここから

<?xml version="1.0"?>

<zabbix_export version="1.0" date="09.04.10" time="06.23">

<hosts>

<host name="Template_GS108T">

<useip>0</useip>

<dns></dns>

<ip>0.0.0.0</ip>

<port>10050</port>

<status>3</status>

<groups>

<group>Templates</group>

</groups>

<items>

<item type="4" key="IF-MIB::ifInOctets.1" value_type="1">

<description>Port 1 RX Bytes</description>

<ipmi_sensor></ipmi_sensor>

<delay>30</delay><delay>30</delay><delay>30</delay>

<history>90</history>

<trends>365</trends>

<status>0</status>

<units></units>

<multiplier>0</multiplier>

<delta>0</delta>

<formula>1</formula>

<lastlogsize>0</lastlogsize>

<logtimefmt></logtimefmt>

<delay_flex></delay_flex>

<params>DSN=&lt;database source name&gt;\nuser=&lt;user name&gt;\npassword=&lt;password&gt;\nsql=&lt;query&gt;</params>

<trapper_hosts></trapper_hosts>

<snmp_community>public</snmp_community>

<snmp_oid>1.3.6.1.2.1.2.2.1.10.1</snmp_oid>

<snmp_port>161</snmp_port>

<snmpv3_securityname></snmpv3_securityname>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authpassphrase></snmpv3_authpassphrase>

<snmpv3_privpassphrase></snmpv3_privpassphrase>

</item>

(途中省略)

<item type="4" key="IF-MIB::ifOutOctets.1" value_type="1">

<description>Port 1 TX Bytes</description>

<ipmi_sensor></ipmi_sensor>

<delay>30</delay>

<history>90</history>

<trends>365</trends>

<status>0</status>

<units></units>

<multiplier>0</multiplier>

<delta>0</delta>

<formula>1</formula>

<lastlogsize>0</lastlogsize>

<logtimefmt></logtimefmt>

<delay_flex></delay_flex>

<params>DSN=&lt;database source name&gt;\nuser=&lt;user name&gt;\npassword=&lt;password&gt;\nsql=&lt;query&gt;</params>

<trapper_hosts></trapper_hosts>

<snmp_community>public</snmp_community>

<snmp_oid>1.3.6.1.2.1.2.2.1.16.1</snmp_oid>

<snmp_port>161</snmp_port>

<snmpv3_securityname></snmpv3_securityname>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authpassphrase></snmpv3_authpassphrase>

<snmpv3_privpassphrase></snmpv3_privpassphrase>

</item>

(途中省略)

<item type="4" key="IF-MIB::ifOperStatus.1" value_type="1">

<description>Port 1 Status</description>

<ipmi_sensor></ipmi_sensor>

<delay>30</delay>

<history>90</history>

<trends>365</trends>

<status>0</status>

<units></units>

<multiplier>0</multiplier>

<delta>0</delta>

<formula>1</formula>

<lastlogsize>0</lastlogsize>

<logtimefmt></logtimefmt>

<delay_flex></delay_flex>

<params>DSN=&lt;database source name&gt;\nuser=&lt;user name&gt;\npassword=&lt;password&gt;\nsql=&lt;query&gt;</params>

<trapper_hosts></trapper_hosts>

<snmp_community>public</snmp_community>

<snmp_oid>1.3.6.1.2.1.2.2.1.8.1</snmp_oid>

<snmp_port>161</snmp_port>

<snmpv3_securityname></snmpv3_securityname>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authpassphrase></snmpv3_authpassphrase>

<snmpv3_privpassphrase></snmpv3_privpassphrase>

</item>

(途中省略)

<item type="4" key="SNMPv2-MIB::sysDescr.0" value_type="1">

<description>Host name</description>

<ipmi_sensor></ipmi_sensor>

<delay>30</delay>

<history>90</history>

<trends>365</trends>

<status>0</status>

<units></units>

<multiplier>0</multiplier>

<delta>0</delta>

<formula>1</formula>

<lastlogsize>0</lastlogsize>

<logtimefmt></logtimefmt>

<delay_flex></delay_flex>

<params>DSN=&lt;database source name&gt;\nuser=&lt;user name&gt;\npassword=&lt;password&gt;\nsql=&lt;query&gt;</params>

<trapper_hosts></trapper_hosts>

<snmp_community>public</snmp_community>

<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>

<snmp_port>161</snmp_port>

<snmpv3_securityname></snmpv3_securityname>

<snmpv3_securitylevel>0</snmpv3_securitylevel>

<snmpv3_authpassphrase></snmpv3_authpassphrase>

<snmpv3_privpassphrase></snmpv3_privpassphrase>

</item>

</items>

</host>

</hosts>

</zabbix_export>

--ここまで

とりあえず、こんなかんじになります。
まぁ何てことない状態です。

スクリーンショット(2010-04-10 4.33.38).png





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

ZABBIXをインストールしてみる [ZABBIX]

前から興味があったZABBIX


を復活させて静音化させた、fiono330
FunTwist ベアーボーン ブラック Fiono330

FunTwist ベアーボーン ブラック Fiono330







インストールしてみます。

ZABBIXとはサーバやネットワーク機器の監視ソフトウェアです。

SNMPを用いるか、対応しているOSであればエージェントソフトウェアを
インストールしデーモンとして稼働しておくことで詳細な稼働情報を自動的に
ZABBIXサーバで収集することが可能です。

【ZABBIXサーバ】→【ZABBIXエージェント in Ubuntuサーバ】

ZABBIXエージェントはアイテムごとに指定した周期で情報を取得し内部に
一時的に保持します。
ZABBIXサーバは指定した周期でZABBIXエージェントから情報を取得し、
指定した期間DBに保持します。
ZABBIXにはWebインターフェースでそれらの情報の表示や、設定などが
可能です。

では、ZABBIXをインストール。
(その前に、てきとうに、Ubuntu9.10をインストールしておきます。)

# apt-get install zabbix-server-mysql
# apt-get install zabbix-frontend-php
# apt-get install zabbix-agent
# echo date.timezone=Asia/Tokyo >> /etc/php5/apache2/php.ini
# echo max_execution_time=300 >> /etc/php5/apache2/php.ini
# chown www-data:www-data /etc/zabbix/dbconfig.php
# chown zabbix:zabbix /etc/zabbix/zabbix_*.conf
# echo zabbix_agent 10050/tcp >> /etc/services
# echo zabbix_trap 10051/tcp >> /etc/services
# /etc/init.d/apache2 restart

# vi /etc/zabbix/zabbix_server.conf

ListenIP=192.168.1.15 ← ZABBIXサーバのIPアドレス

# vi /etc/zabbix/zabbix_agentd.conf (ZABBIXサーバ:192.168.1.15にて)

Server=192.168.1.15 ← ZABBIXサーバのIPアドレス
Hostname=ws ← 自らのホストネーム
ListenIP=192.168.1.15 ← 監視したいサーバのIPアドレス:通常は自らのIPアドレス

# vi /etc/zabbix/zabbix_agent.conf (ZABBIXサーバ:192.168.1.15にて)

Server=192.168.1.15 ← ZABBIXサーバのIPアドレス


# /etc/init.d/zabbix-server restart
# /etc/init.d/zabbix-agent restart


他の監視したいLinuxサーバ(192.168.1.10)にもzabbix-agentをインストールし、

# vi /etc/zabbix/zabbix_agentd.conf (ZABBIXサーバ:192.168.1.15にて)

Server=192.168.1.15 ← ZABBIXサーバのIPアドレス
Hostname=ss ← 自らのホストネーム
ListenIP=192.168.1.10 ← 監視したいサーバのIPアドレス:通常は自らのIPアドレス

# vi /etc/zabbix/zabbix_agent.conf (ZABBIXサーバ:192.168.1.15にて)

Server=192.168.1.15 ← ZABBIXサーバのIPアドレス

# /etc/init.d/zabbix-agent restart


そして、ブラウザから

初期ID:Pass=Admin:zabbix でZABBIXのインターフェースにアクセスできます[るんるん]



最初、fiono330へのインストールはUSBメモリに入れていたのですが、
ディスクIOが遅すぎて、Load Averageが常時2以上というような状態が
続いていたので2.5inchのHDDにインストールし直しました、そうすると
Load Averageが0.5程度まで落ちました。。よかった。

fiono330はatom330を搭載し、4コアなので、Load Average 2~3といっても
そこまで負荷が高すぎるわけではないですが、ブラウザからのアクセスが体感的にも
ちょっと遅かったので、HDDの方がいいですね。





Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。