タグ: zabbix

CentOS5 向けの Zabbix2.4 リポジトリづくり

公式のRPMを引っ張ってきてもyum.repos.dにrepoファイルが出来る気配がない。
うちが悪いんだろうけど、解決すると他の部分がおかしくなりそうな気配なので
自分で書いちゃうよ、もう。

#ZABBIX Repository - Written by katz
#NO WARRANTY !
[zabbix]
name=zabbix 2.4 repository for CentOS5(32bit)
baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/5/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX

はい。
これを「zabbix.repo」的なファイル名で保存しておいて、
使うときに「enablerepo=zabbix」つければいいだけ。

「Get value error: cannot connect to [[***.***.***.***]:10050]: [113] No route to host」って

Get value error: cannot connect to [[***.***.***.***]:10050]: [113] No route to host

ってなにさ・・・
んー・・・

あ、10050と10051開けてないからだ。
ってことはiptablesか。

ということで

iptables -A INPUT -m state --state NEW -p tcp --dport 10050 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 10051 -j ACCEPT

で、追加。

iptables-save

で保存しておく。

Zabbix Agentd を Windows にインストール

Web Interface があればAgentは何台あっても一緒、ってことでWindowsにも zabbix agentd をインストールしてみることにする。
Ver.1.8向けだけど日本語のインストールマニュアルもある。
今回入れるのは2.0だけど、やることはほぼ変わらない。
すべてAgentインストール対象のWindows機でやってしまって大丈夫。

まずはzabbixのダウンロードページからWindows用のファイルをダウンロード。

ダウンロードしたZIPを解凍すると、binフォルダとconfフォルダがある。
使用するのは32bitか64bit、自分の環境に合った方のEXEファイル3つ、
「zabbix_agentd.exe」・「zabbix_get.exe」・「zabbix_sender.exe」と、
confファイル。
confファイルは「zabbix_agentd.win.conf」というような名前になっているので
コピーを取って「zabbix_agentd.conf」という名前に変更しておく。

confファイルを改変しておく。

75行目辺りに Zabbix Server のIPアドレスを指定するところがあるので、
ここを自分の環境に合ったサーバのIPアドレスに変更。

#Server=127.0.0.1
Server=192.168.1.12

116行目付近にも生存確認を行うサーバのIPアドレスを記入する部分があるので、
ここにもサーバのIPアドレスを記入する。

#ServerActive=127.0.0.1
ServerActive=192.168.1.12

最低限の変更はこれで終了。
ファイルを保存して終了。

対象のWindows機のCドライブ直下にEXEファイル3つとCONFファイル1つ、計4ファイルをコピーする。

  • zabbix_agentd.exe
  • zabbix_get.exe
  • zabbix_sender.exe
  • zabbix_agentd.conf

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

C:\>zabbix_agentd.exe --install

と入力。

zabbix_agentd.exe [****]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [****]: event source [Zabbix Agent] installed successfully

となったら、サービスのインストール成功です。

これで、
コントロールパネル > 管理ツール > サービス
を開くとサービスが並んでいる中に「Zabbix Agent」という項目が出てくる。
これを右クリックして「開始」を選択。状態の表示が「開始」になればAgentとしての起動は成功。

稼働が開始されると、Cドライブ直下に「zabbix_agentd.log」というファイルが作成される。

Zabbix の起動スクリプト

zabbixを起動時に自動的にスタートさせたいのでスクリプトを /etc/init.d/ に仕込む。
だいたいのことは英語だけど Zabbix Wiki に書いてあるのでこの通りに進めてみる。

CentOS用と銘打ったファイルは用意されていないのでfedora用で代用する。

fedora配下には [ core ] ディレクトリと [ core5 ] ディレクトリがあってどっちを使ったらいいのかよく分からない。
多分、CentOS5系は [ core5 ] 、それ以外は [ core ] ってことだと思う。
「それ以外」っていうのも、、、今の段階でCent4系ってことはないだろうから、Cent6系ってことかな。

lsb_release -a

すると

LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 5.9 (Final)
Release: 5.9
Codename: Final

とのことなので、[ core5 ]ディレクトリの方で。

では、気を取り直して
/インストールディレクトリ/misc/init.d/fedora/core5/
にある
zabbix_server と zabbix_agentd
をコピーします。

cp /インストールディレクトリ/misc/init.d/fedora/core5/zabbix_* /etc/init.d/

サーバに入れるときは両方だけど、Agent側(監視される側)は [ zabbix_agentd ] だけでよし。

中を見てみると21行目辺りに

ZABBIX_BIN="/usr/local/sbin/zabbix_server"

という行があるので、これがzabbix server を起動させる時のパスと同じかどうか確認しておく。

chkconfig で色々できるように

chkconfig --add zabbix_server
chkconfig --add zabbix_agentd

で chkconfig に今回のzabbixを加える。

chkconfig --list | grep zabbix_server

で確認すると、

zabbix_server   0:off   1:off   2:off   3:off   4:off   5:off   6:off

とか返してくれるので

chkconfig --level 35 zabbix_server on
chkconfig --level 35 zabbix_agentd on

で、ランレベル3と5をONに設定。

[root@localhost /]# chkconfig --list | grep zabbix_server
zabbix_server   0:off   1:off   2:off   3:on    4:off   5:on    6:off
[root@localhost /]# chkconfig --list | grep zabbix_agentd
zabbix_agentd   0:off   1:off   2:off   3:on    4:off   5:on    6:off

これで再起動とかしても自動的に立ち上がってくれるはず。

[root@localhost /]# /etc/init.d/zabbix_server restart
Zabbix Server を停止中:                                    [  OK  ]
Zabbix Server を起動中:                                    [  OK  ]

[root@localhost /]# /etc/init.d/zabbix_agentd restart
Zabbix Agent を停止中:                                     [  OK  ]
Zabbix Agent を起動中:                                     [  OK  ]

[root@localhost /]# /etc/init.d/zabbix_server status
zabbix_server (pid 25364 25362 25360 25358 25356 25354 25352 25351 25349 25347 25345 25343 25340 25339 25337 25335 25333 25331 25329 25323 25322 25321 25320 25317 25316 25315 25311) を実行中...

[root@localhost /]# /etc/init.d/zabbix_agentd status
zabbix_agentd (pid 25423 25422 25421 25420 25419 25418 25417 25415) を実行中...

おお~出来た~

Zabbix の Web Interface 日本語化

Web Interface のセットアップが終わると、自動的にログイン画面になる。
デフォルトの Username と Password はそれぞれ [ admin ] と [ zabbix ] なのでこれを使って [ Sign in ]。
Zabbix01

ログインするとデフォルトが英語表記なので、右上の[ Profile ]をクリック。
Zabbix02

Languageから[ Japanese (ja_JP) ]を選択して[ Save ]をクリック。
Zabbix03

これで日本語表記になる。
あとはホストの追加とか、いろいろやっていく。
Zabbix04

Zabbix の Web Interface 導入

Server の導入Agent の導入が終わっても裏側で動いているだけで状況を確認することが出来ない。
ので、 Web Interface を導入します。

Web Interface を入れるサーバにはApacheとPHPが必要なので事前にインストールしておく。

入れ方は単にインストールディレクトリ内の[ frontends/php/ ]にあるファイルを
Webサーバとしてアクセスできるところにコピーするだけ。

コピーしたディレクトリにアクセスすると、セットアップ画面が出るので[ Next ]で次へ。
Installation01

PHPの要件を満たしているかチェック画面が出るので、NG部分をphp.iniで修正していく。
すべてOKになったら[ Next ]で次へ。
Installation02

MySQLの要件チェック。データベースは事前に作成して、インストール用のSQLを実行しておく必要があります。
必要項目を入力して[ Test Connection ]をクリックしてOKが出たら[ Next ]で次へ。
Installation03

ZabbixサーバのIPアドレスとポート名を聞いてきます。
サーバと同一場所でWeb Interfaceを起動する場合は何も入力する必要ないです。
このまま[ Next ]で次へ。
Installation04

今まで入力したものの確認画面です。
確認して[ Next ]で次へ。
Installation05

zabbix.conf.php が作成できるか確認しています。
NGが出る場合は該当ディレクトリのパーミッションなどを確認します。
OKが出たら[ Finish ]でインストール完了です。
Installation06

「Zabbix agent on {HOST.NAME} is unreachable for 5 minutes」って

Zabbix agent on {HOST.NAME} is unreachable for 5 minutes

てなんじゃらほい。
他のところは問題無さ気なのにこれがエラーになってることで情報が取得できてない。

。。。

原因はzabbix_agentd.confにあった。

vi /usr/local/etc/zabbix_agentd.conf

で123行目辺りにある[ ServerActive ]にサーバ側のIPアドレスを指定していなかったので

ServerActive=192.168.1.10

を設定して保存。
いったんagentdを探してkill。

ps -ef | grep zabbix
kill *****

その後、

/usr/local/sbin/zabbix_agentd

で再度agentdを起動する。

ふぅ、エラー消えた。

zabbix_agentd.conf の編集

同一ディレクトリに zabbix_agent.conf と zabbix_agentd.conf があるけど、編集するのは zabbix_agentd.conf だけで大丈夫。
zabbix_agentd.confの編集。

vi /usr/local/etc/zabbix_agentd.conf

最低限2箇所かなぁ?

#Server=127.0.0.1
Server=192.168.1.11

#ServerActive=127.0.0.1
ServerActive=192.168.1.11

で、現行したら保存して終了。

zabbix用のユーザとグループを作成しておく。
作成しておかないとAgentdが起動できないので。

groupadd zabbix
useradd -g zabbix zabbix

Agent起動します。

/usr/local/sbin/zabbix_agentd

で、起動。

zabbix_server.conf の編集

今回はログをMySQLで保存していくのmysqlサーバに[ zabbix ]という名前でDBを作成しておきます。
名前のデフォルトが[ zabbix ]なのでこれで作成したけど
あとでconfを編集するときにも指定が出てくるので、最悪なんでもよし。

DBを作成したらこのDBにデフォルトのsqlを読み込ませておきます。
MySQL用のSQLはインストールディレクトリ内の[ database/mysql/ ]にあるかと。
ここに

  • schema.sql
  • images.sql
  • data.sql

の3つがあるのでこの順番に読み込ませます。
この順番じゃないとエラーが出るので。

zabbix_server.conf を編集していきます。

vi /usr/local/etc/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log
DBName=zabbix
DBUser=root
DBPassword=**********

ぐらい変えておく。いや、DBNameはこれでデフォルトか。

zabbix用のユーザとグループを作成しておきます。
作成しておかないと次のzabbix_serverが起動できないので。

groupadd zabbix
useradd -g zabbix zabbix

で、zabbix_server起動します。

/usr/local/sbin/zabbix_server

で起動できればOK。

zabbix

監視したい、とのことなのでzabbixを入れてみる。
同一サーバ内でMySQLが稼働しているので、ここにログを入れ込むようにしたい。
ついでに、Web Interface を使いたいときはhttpd+phpが動作していないといけないっぽい。
要はLAMP環境を作っておけ、と。

zabbix 2.0.4 サーバをインストールしてみる

まず、ダウンロード。

wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.4/zabbix-2.0.4.tar.gz

で、ダウンロードしてくる。
ダウンロードしたら、

tar -zxvf zabbix-2.0.4.tar.gz

で解凍する。
次に

cd zabbix-2.0.4

で、解凍先のディレクトリに移動して

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

で、configureをかける。
Zabbix Agent のみの場合は

./configure --enable-agent

だけで良いみたい。
途中で

configure: error: in `/root/zabbix-2.0.4':
configure: error: no acceptable C compiler found in $PATH

解決策 → yum install gcc

とか

configure: error: Not found mysqlclient library

解決策 → yum install mysql-devel

とか

configure: error: Curl library not found

解決策 → yum install libcurl

とか

configure: error: SSH2 library not found

解決策
↓
yum install libssh2*
※ RPMforgeリポジトリが必要。RPMforgeリポジトリの追加参照。

とか

configure: error: Invalid NET-SNMP directory - unable to find net-snmp-config

解決策 → yum install net-snmp-devel

とか出たら、その都度足りないものをインストールしてやり直し。

Configuration:

  Detected OS:           linux-gnu
  Install path:          /usr/local
  Compilation arch:      linux

  Compiler:              gcc
  Compiler flags:        -g -O2  -I/usr/include/mysql  -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv       -I/usr/include/rpm -I/usr/local/include -I/usr/include/gdbm -I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE -I. -I/usr/include/net-snmp  -I/usr/include

  Enable server:         yes
  Server details:
    With database:         MySQL
    WEB Monitoring via:    cURL
    Native Jabber:         no
    SNMP:                  net-snmp
    IPMI:                  no
    SSH:                   yes
    ODBC:                  no
    Linker flags:          -rdynamic      -L/usr/lib/mysql -L/usr/lib      -L/usr/kerberos/lib  -L/usr/lib -L/usr/lib/lib  -L/usr/lib -L/usr/lib/lib -L/usr/lib 
    Libraries:             -lm -lrt  -lresolv    -lmysqlclient       -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz  -lnetsnmp -lcrypto -lm -lwrap -lcrypto  -lnetsnmp -lcrypto -lm -lwrap -lcrypto -lssh2

  Enable proxy:          no

  Enable agent:          yes
  Agent details:
    Linker flags:          -rdynamic     -L/usr/kerberos/lib
    Libraries:             -lm -lrt  -lresolv    -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          no

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

とか出たらconfigure完了です。ふぅ。
で、次は書いてあるとおりに

make install

する。
とりあえずのインストールだけ完了かな?

次に

vi /etc/services

zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

の4行を追記しておく。
zabbixが使用するポートです。