カテゴリー : 監視サーバ

Zabbix 1.8 を 2.2 へアップグレードする方法

CentOS 6 にインストールした Zabbix1.8 を2.2へアップグレードする方法は以下の通り。

1. Zabbixの停止

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

2. 復旧用のバックアップを取得

# mkdir /root/backup
# mysqldump -uroot -ppassword zabbix > /root/backup/zabbix_dump.db
# cp -p /etc/zabbix/zabbix*.conf /root/backup/

3. 旧リポジトリの削除

# rpm -e zabbix-jp-release

4. 次のURLから環境にあわせたパッケージをダウンロード (今回は zabbix-release-2.2-1.el6.noarch.rpm)

http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/

# wget http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm

5. Zabbixのアップグレード

# rpm -i zabbix-release-2.2-1.el6.noarch.rpm
# yum -y update zabbix

6. データベースのアップグレード
(例) MySQL アカウント: root 、 パスワード: password の場合

# cd /usr/share/doc/zabbix-server-mysql-2.2.1/upgrades/dbpatches/2.0/mysql/
# ./upgrade zabbix -uroot -ppassword

7. /etc/php.ini の編集(以下を追記する)

[Date]
date.timezone="Asia/Tokyo"

8. 日本語フォント表示対策

# mv /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.ttf.org
# ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/share/zabbix/fonts/graphfont.ttf

9. Apacheの再起動

# /etc/init.d/httpd restart

10. Zabbixの起動

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

環境:
CentOS 6.5 (x86_64)
Zabbix-2.2.1

Zabbix 1.8 を 2.0 へアップグレードする方法

CentOS 6 にインストールした Zabbix1.8 を2.0へアップグレードする方法は以下の通り。

1. Zabbixの停止

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

2. 復旧用のバックアップを取得

# mkdir /root/backup
# mysqldump -uroot -ppassword zabbix > /root/backup/zabbix_dump.db
# cp -p /etc/zabbix/zabbix*.conf /root/backup/

3. 旧リポジトリの削除

# rpm -e zabbix-jp-release

4. 次のURLから環境にあわせたパッケージをダウンロード (今回は zabbix-release-2.0-1.el6.noarch.rpm)

http://repo.zabbix.com/zabbix/2.0/rhel/6/x86_64/

# wget http://repo.zabbix.com/zabbix/2.0/rhel/6/x86_64/zabbix-release-2.0-1.el6.noarch.rpm

5. Zabbixのアップグレード

# rpm -i zabbix-release-2.0-1.el6.noarch.rpm
# yum -y update zabbix

6. データベースのアップグレード
(例) MySQL アカウント: root 、 パスワード: password の場合

# cd /usr/share/doc/zabbix-server-mysql-2.0.10/upgrades/dbpatches/2.0/mysql/
# ./upgrade zabbix -uroot -ppassword

7. /etc/php.ini の編集(以下を追記する)

[Date]
date.timezone="Asia/Tokyo"

8. 日本語フォント表示対策

# mv /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.ttf.org
# ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/share/zabbix/fonts/graphfont.ttf

9. Apacheの再起動

# /etc/init.d/httpd restart

10. Zabbixの起動

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

環境:
CentOS 6.5 (x86_64)
Zabbix-2.0.10

CentOS 6 に Zabbix 2.2 をインストールする方法

CentOS 6 に Zabbix をインストールする方法は以下の通り。

1. SELinux(/etc/selinuc/config)をpermissiveまたは、disabledに設定

#SELINUX=enforcing
SELINUX=permissive
# setenforce 0

2. 必要なパッケージをインストール

# yum -y install httpd mysql-server php php-mysql

3. 次のURLから環境にあわせたパッケージをダウンロード (今回は zabbix-release-2.2-1.el6.noarch.rpm)

http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/

4. Zabbix のインストール

# wget http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
# rpm -ivh zabbix-release-2.2-1.el6.noarch.rpm
# yum -y install zabbix-server zabbix-web

5. /etc/my.cnf の編集 (デフォルト文字コードを UTF-8 に変更する場合)

[mysqld]
default-character-set=utf8

6. MySQL の起動

# service mysqld start

7. DB と DBユーザーの作成

# mysqladmin password password -u root
# mysql -ppassword
mysql> CREATE DATABASE zabbix;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> exit

手順4をスキップし、作成するDBのみ文字コードをUTF-8に変更する場合は次の通りです。
文字コードが latin1 のままだと Windows イベントログを取得した際に文字化けした。

mysql> CREATE DATABASE zabbix CHARACTER SET utf8;

8. スキーマの拡張

# mysql -u zabbix -ppassword zabbix < /usr/share/doc/zabbix-server-mysql-2.2.1/create/schema.sql
# mysql -u zabbix -ppassword zabbix < /usr/share/doc/zabbix-server-mysql-2.2.1/create/images.sql
# mysql -u zabbix -ppassword zabbix < /usr/share/doc/zabbix-server-mysql-2.2.1/create/data.sql

9. /etc/zabbix/zabbix_server.conf の編集

#DBUser=root
DBUser=zabbix

# DBPassword=
DBPassword=password

10. 日本語フォント表示対策

# mv /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.ttf.org
# ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/share/zabbix/fonts/graphfont.ttf

11. Zabbix の起動

# service zabbix-server start

12. /etc/httpd/conf/httpd.conf の編集

CentOS 6 に Apache をインストールする方法 の項目2 を参照

13. /etc/php.ini の編集(以下を追記する)

[Date]
date.timezone="Asia/Tokyo"

14. Apache の起動

# service httpd start

15. MySQL, Apache, Zabbix の起動設定

# chkconfig mysqld on
# chkconfig httpd on
# chkconfig zabbix-server on

16. /etc/sysconfig/iptables の編集

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
-A INPUT -p udp --dport 162 -j ACCEPT

17. iptables の再起動

# service iptables restart

18. ブラウザから次のURLへアクセス

http://<IPアドレス>/zabbix/

19. Zabbix の設定

(1) Welcome to Zabbix 2.2

「Next」を押して次へ

(2) Check of pre-requisites

すべて OK になっていることを確認し「Next」を押して次へ

(3) Configure DB connection

Type: MySQL
Host: localhost
Port: 0
Name: zabbix
User: zabbix
Password: password
上記を入力し、「Test connection」を押し OK になったら「Next」を押して次へ

(4) Zabbix server details

Host: localhost
Port: 10051
Name:
上記を確認し、「Next」を押して次へ

(5) Pre-Installation summary

Database type: MySQL
Database server: localhost
Database port: default
Database name: zabbix
Database user: zabbix
Database password: ********
Zabbix server: localhost
Zabbix server port: 10051
Zabbix server name:
上記を確認し、「Next」を押して次へ

(6)Install

「Finish」を押して完了
アカウント: admin
パスワード: zabbix

ログイン後、右上の「Profile」をクリック、「Language」から「Japanese(Ja_JP)」を選択すると、日本語メニューにできます。

環境:
CentOS 6.5 (x86_64)
Zabbix-2.2.1

Monit のアラートメールを日本語化する方法

Monit のアラートメールを日本語化する方法は以下の通り。

・件名だけ日本語化するなら、MIMEエンコードすれば良い。
・set mail-format でフォーマットを指定する。
・メールを直接送信するのではなく、一時メールサーバーに送信する。
・procmailでメールのヘッダーを書き換える。
・本来の宛先へメールを転送する。

設定例

一時メールサーバー: localhost
一時メールアドレス: hoge@localhost
本来の宛先: hoge@example.com

1. monit.confまたはmonitrcに以下の設定が有効になっていることを確認

include /etc/monit.d/*

2. set mail-format でフォーマットを指定するためのファイルを用意

header.txt

set mail-format {
   from: monit@example.com

subject.txt

   subject: monitアラート $EVENT $SERVICE

message.txt

   message:
日時:$DATE
ホスト名:$HOST
イベント:$EVENT
サービス名:$SERVICE
アクション:$ACTION
説明:$DESCRIPTION
}

3. set mail-format でフォーマットを指定

ディレクトリ(/etc/monit.d/)が存在しない場合は作成しておく

# cat header.txt > /etc/monit.d/mail-format.conf
# cat subject.txt | nkf -Mj >> /etc/monit.d/mail-format.conf
# cat message.txt | nkf -j >> /etc/monit.d/mail-format.conf

4. monit.confまたはmonitrcの宛先とメールサーバーを変更

set alert hoge@localhost
set mailserver localhost

5. procmailのインストール

# yum -y install procmail

6. 転送用のファイルを作成

# su - hoge

~/.forward

"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #hoge"

~/.procmailrc

:0
* ^Content-Type:
| /usr/bin/formail \
-I "Content-Type: text/plain; charset=iso-2022-jp" \
-I "To: hoge@example.com" \
| sendmail -oi -t

7. Monitの再起動

$ exit
# /etc/init.d/monit restart

環境:
CentOS 6.3 (x86_64)
Monit 5.4
procmail-3.22-25.1.el6.x86_64

CentOS 6 に Monit をインストールする方法 (source)

CentOS 6 に Monit をインストールする方法は以下の通り。

1. 必要なパッケージをインストール

# yum -y install openssl-devel pam-devel

gccやmakeがインストールされていない場合はこれもインストール。

# yum -y install gcc make

2. 一般ユーザーでログイン

3. ソースのダウンロード・インストール

$ wget http://mmonit.com/monit/dist/monit-5.4.tar.gz
$ tar zxvf monit-5.4.tar.gz
$ cd monit-5.4
$ ./configure
$ make
$ su
# make install

4. 設定ファイルの準備

# chown root. monitrc
# chmod 0700 monitrc
# cp -p monitrc /etc/monitrc

5. 起動ファイルの準備

# chmod +x contrib/rc.monit
# cp -p contrib/rc.monit /etc/init.d/monit
# chkconfig --add monit
# ln -s /usr/local/bin/monit /usr/bin/monit

環境:
CentOS 6.3 (x86_64)
monit-5.4.tar.gz

CentOS 6 に Monit をインストールする方法 (rpm)

CentOS 6 に Monit をインストールする方法は以下の通り。

1. パッケージのダウンロード

# wget http://apt.sw.be/redhat/el6/en/x86_64/dag/RPMS/monit-5.4-1.el6.rf.x86_64.rpm

i386の場合は http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/monit-5.4-1.el6.rf.i686.rpm

2. パッケージのインストール

# rpm -ivh monit-5.4-1.el6.rf.x86_64.rpm

環境:
CentOS 6.3 (x86_64)
monit-5.4-1.el6.rf.x86_64.rpm

zabbix を 1.8.13-1.el6.JP に アップデートしたらアクセスできなくなった

zabbix を yum update にて 1.8.13-1.el6.JP へアップデートしたら
ブラウザからアクセスできなくなってしまった。以下の事象を確認できた。

・httpdの使用メモリが増加し続ける
・DBを初期状態にすればアクセスできる
・/var/log/httpd/error_log に以下のメッセージが表示される

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes)
 in /usr/share/zabbix/include/db.inc.php on line 1371

以下の方法で解決した。
PHP Fatal error: Allowed memory size after 1.8.13 upgrade

/usr/share/zabbix/include/audit.inc.php の 73行目を修正する。

【修正前】

if(!isset($USER_DETAILS['userid'])) check_authorisation();

【修正後】

if(!isset($USER_DETAILS['userid'])) return false;

環境:
CentOS 6.2 (x86_64)
php-5.3.3-3.el6_2.8.x86_64
zabbix-1.8.13-1.el6.JP.x86_64
mysql-server-5.1.61-1.el6_2.1.x86_64

Zabbix-agent から最新の値を取得する方法

Zabbix-agent から最新の値を取得する方法は以下の通り。

zabbix-agent がインストールされていること。

zabbix-server インストール側

# zabbix_get -s <IPアドレス> -k <キー>

(コマンド例)

# zabbix_get -s 192.168.1.101 -k vm.memory.size[buffers]

zabbix-agent インストール側

# zabbix_agent -t<キー>

(コマンド例)

# zabbix_agent -t vm.memory.size[buffers]

CentOS 6 に Zabbix をインストールする方法

CentOS 6 に Zabbix をインストールする方法は以下の通り。

1. 必要なパッケージをインストール

# yum -y install httpd mysql-server php php-mysql

2. 次のURLから環境にあわせたパッケージをダウンロード (今回は zabbix-jp-release-6-5.noarch.rpm)

http://www.zabbix.jp/binaries/relatedpkgs/

3. Zabbix のインストール

# rpm -ivh zabbix-jp-release-6-5.noarch.rpm
# yum -y install zabbix-server zabbix-web

4. /etc/my.cnf の編集 (デフォルト文字コードを UTF-8 に変更する場合)

[mysqld]
default-character-set=utf8

5. MySQL の起動

# service mysqld start

6. DB と DBユーザーの作成

# mysqladmin password password -u root
# mysql -ppassword
mysql> CREATE DATABASE zabbix;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> exit

手順4をスキップし、作成するDBのみ文字コードをUTF-8に変更する場合は次の通りです。
文字コードが latin1 のままだと Windows イベントログを取得した際に文字化けした。

mysql> CREATE DATABASE zabbix CHARACTER SET utf8;

7. スキーマの拡張

# mysql -u zabbix -ppassword zabbix < /usr/share/doc/zabbix-server-1.8.10/schema/mysql.sql
# mysql -u zabbix -ppassword zabbix < /usr/share/doc/zabbix-server-1.8.10/data/data.sql
# mysql -u zabbix -ppassword zabbix < /usr/share/doc/zabbix-server-1.8.10/data/images_mysql.sql

8. /etc/zabbix/zabbix_server.conf の編集

#DBUser=root
DBUser=zabbix

# DBPassword=
DBPassword=password

9. Zabbix の起動

# service zabbix-server start

10. /etc/httpd/conf/httpd.conf の編集

CentOS 6 に Apache をインストールする方法 の項目2 を参照

11. Apache の起動

# service httpd start

12. MySQL, Apache, Zabbix の起動設定

# chkconfig mysqld on
# chkconfig httpd on
# chkconfig zabbix-server on

13. /etc/sysconfig/iptables の編集

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
-A INPUT -p udp --dport 162 -j ACCEPT

14. iptables の再起動

# service iptables restart

15. ブラウザから次のURLへアクセス

http://<IPアドレス>/zabbix/

16. Zabbix の設定

(1) Introduction

「Next」を押して次へ

(2) Licence agreement

「I agree」にチェックを入れ「Next」を押して次へ

(3) Check of pre-requisites

すべて OK になっていることを確認し「Next」を押して次へ

(4) Configure DB connection

Type: MySQL
Host: localhost
Port: 0
Name: zabbix
User: zabbix
Password: password
上記を入力し、「Test connection」を押し OK になったら「Next」を押して次へ

(5) Zabbix server details

Host: localhost
Port: 10051
Name:
上記を確認し、「Next」を押して次へ

(6) Pre-Installation summary

Database type: MySQL
Database server: localhost
Database port: 0
Database name: zabbix
Database user: zabbix
Database password: ********
Zabbix server: localhost
Zabbix server port: 10051
Zabbix server name:
上記を確認し、「Next」を押して次へ

(7) Install

ここで Configuration file: Fail となった。
原因は selinux だったので、以下のいずれかの方法で回避する。

【方法1】selinux を無効化

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

/etc/selinux/config の編集
SELINUX=disabled

再起動
# sync;sync;sync
# reboot
【方法2】selinux を permissive に変更

# getenforce
Enforcing

# setenforce Permissive

# getenforce
Permissive

/etc/selinux/config を修正
SELINUX=permissive
【方法3】セキュリティコンテキストを変更
# ls -Z /etc/zabbix/zabbix.conf.php
-rw-------. apache apache system_u:object_r:etc_t:s0

# chcon system_u:object_r:httpd_sys_content_t:s0 /etc/zabbix/zabbix.conf.php

# ls -Z /etc/zabbix/zabbix.conf.php
-rw-------. apache apache system_u:object_r:httpd_sys_content_t:s0
いずれかの方法を実施したら「Retry」を押し OK を確認し「Next」を押して次へ

(8) Finish

「Finish」を押して完了
アカウント: admin
パスワード: zabbix

環境:
CentOS 6.2 (x86_64)
Zabbix-1.8.10

Zabbix から ejabberd にメッセージを送信する方法

Zabbixからejabberdにメッセージを送信する方法は以下の通り。

1. Zabbixのメディアタイプを設定([管理]→[メディアタイプ]→[jabber])

説明: Jabber
タイプ: Jabber
JabberID: zabbix@example.com (取得済ID)

2. 「パスワード変更」ボタンを押してパスワードを設定し、保存

3. ejabberd.cfgの修正

# vi ejabberd.cfg
{5222, ejabberd_c2s, [
%%{certfile, "/opt/ejabberd-2.1.6/conf/server.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},

4. hostsの修正

# vi /etc/hosts
192.0.2.100 example.com

5. ユーザのjabberIDを設定 ([管理]→[ユーザ]→[ユーザ名])

6. Jabber送信アクションを設定 ([設定]→[アクション]→[アクションの作成])

手順3を実施しない場合は、zabbix_server.logに以下のエラーが出力された。

JABBER: [zabbix@example.com] receiving error [7][0]

手順4を実施しない場合は、zabbix_server.logに以下のエラーが出力された。

JABBER: [zabbix@example.com] Connection failed: Connection timed out

pandion は _xmpp-client._tcp.example.com の SRVレコードが解決できれば接続できたが

Zabbixは example.com の Aレコードを解決し接続している様子。

環境:
CentOS 5.6 (i386)
Zabbix 1.8.4-1
ejabberd 2.1.6

TOP

INFORMATION

当サイトは備忘録であり、その内容を保証するものではありません。 当サイトまたはリンク先によるいかなるトラブルや損害に関しても、一切の責任を負いかねます。 当サイトの内容を無断で転用したり、転載する等の行為はおやめください。