フリーソフトウェアのコンパイル

CentOS 5.5

CentOS 5.5 に Zabbix 1.8 日本語版をインストールする. http://www.zabbix.jp/

参考 URL http://www.zabbix.jp/modules/bwiki/index.php?ZABBIX%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

(1) ZABBIX-JPのyumリポジトリ登録用 RPM をインストール

# rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/i386/zabbix-jp-release-5-3.noarch.rpm

(2) 利用するZABBIXのバージョンの切替

現在の ZABBIX バージョンを確認

# /usr/sbin/alternatives --display zabbix-jp-release

バージョン切り替え

# /usr/sbin/alternatives --config zabbix-jp-release

  Selection    Command
-----------------------------------------------
   1           /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo
   2           /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo
*+ 3           /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo
   4           /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo

Enter to keep the current selection[+], or type selection number: 4

yumのリポジトリのキャッシュを削除します.

# yum clean all

yum searchを実行して選択したZABBIXのバージョンが表示されれば成功です.

# yum search zabbix

(3) Zabbix インストール

# yum install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql

クライアントは

# yum install zabbix-agent

途中

No package zabbix-web-mysql available.

と出るが無視していいのか?

その他,

を許可を聞かれるが,"y"と答える.

(4) MySQL の設定

/etc/my.cnf

-------------------------------------------------------------------
[mysqld]
・・・デフォルトの設定は残す・・・

default-character-set=utf8
skip-character-set-client-handshake

# mysqldセクションに含まれるよう、mysqld_safeよりも上に設定を書くこと
[mysqld_safe]
・・・デフォルトの設定は残す・・・
-------------------------------------------------------------------

MySQLデータベースサーバの起動

# service mysqld start

root ユーザのパスワード設定

# mysqladmin -u root password 'new-password'

ZABBIX データベース作成

# mysqladmin -p create zabbix --default-character-set=utf8

データベースにZABBIX接続ユーザ「zabbix」を作成

# mysql -u root -p
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ZABBIX_PASSWORD';
mysql> flush privileges;
mysql> quit

ちなみに,zabbix ユーザのパスワード設定

#  mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 30
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET PASSWORD FOR zabbix@localhost=password('ZABBIX_PASSWORD');
Query OK, 0 rows affected (0.03 sec)

mysql> quit

ZABBIXの初期データベースをインポート

# mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-1.8.3/schema/mysql.sql
# mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-1.8.3/data/data.sql
# mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-1.8.3/data/images_mysql.sql

(5) Web インタフェイスの設定

Apache Webサーバの起動

# service httpd start

インストーラを起動するためにWebインターフェースの設定ファイルを削除します

# rm /etc/zabbix/zabbix.conf.php

ブラウザでZABBIXサーバにアクセス

http://zabbix-server-address/zabbix

ここからはブラウザでの設定

1. Introduction

[Next]

2. Licence Agreement

[v] I agree
[Next]

3. Check of pre-requisites すべて Ok となっていることを確認

[Next]

4. Configure DB connection

Type: MySQL (Default)
Host: localhost (Default)
Port: 0 (Default)
Name: zabbix (Default)
User: zabbix
Password: なし
[Test connection] を押してOkと表示されれば正常に接続が行えている.
[Next]

5. Zabbix server details

Host: localhost (Default)
Port: 10051 (Default)

6. Pre-Installation Summary

確認して [Next]

7. Install /etc/zabbix ディレクトリを一時的に apache から書き込めるようにする

# chmod 777 /etc/zabbix

で [Retry] を押し,

/etc/zabbix ディレクトリのパーミッションを戻す.

# chmod 755 /etc/zabbix

で [Next]

8. Finish

[Finish]

9. デフォルトアカウントでログイン

ユーザ名: admin
パスワード: zabbix

(6) Zabbix サーバデーモンの設定

1. /etc/zabbix/zabbix_server.conf

# Database host name
# Default is localhost

#DBHost=localhost

# Database name
# SQLite3 note: path to database file must be provided. DBUser and DBPassword are ignored.
DBName=zabbix

# Database user

DBUser=zabbix     <- データベースユーザ名を設定

# Database password
# Comment this line if no password used

DBPassword=zabbix    <- アンコメントしてデータベースパスワードを設定

# Connect to MySQL using Unix socket?

DBSocket=/var/lib/mysql/mysql.sock     <- アンコメント

2. ZABBIXサーバの起動

# service zabbix-server start

稼働が確認できたら

# chkconfig zabbix-server on

(7) ZABBIXエージェントの設定

1. /etc/zabbix/zabbix_agentd.conf

 Server=127.0.0.1     <- ZABBIXサーバのIPアドレスを設定

 # Server port for sending active checks

 #ServerPort=10051

 # Unique hostname. Required for active checks.

 Hostname=ZABBIX Server     <- Webインターフェースのホスト設定で登録するホスト名と同じ値を設定

 # Listen port. Default is 10050

 #ListenPort=10050

 # IP address to bind agent
 # If missing, bind to all available IPs

 ListenIP=127.0.0.1     <- ListenするIPインターフェースを設定

1.5 クライアントでは /etc/zabbix/zabbix_agent.conf の

 Server=127.0.0.1     <- ZABBIXサーバのIPアドレスを設定

も変えておく.

2. ZABBIXエージェントの起動

# service zabbix-agent start

稼働が確認できたら

# chkconfig zabbix-agent on

3. クライアントは iptables の穴を開ける


(8) 監視ホストの登録 -> の前にテンプレートを整備する方がいい.

まずは自ホスト [設定]->[ホスト]->[Zabbix server]

名前: Zabbix server
グループ: Zabbix servers
その他のグループ(所属していないグループ):
  Discoverd hosts
  Linux servers
  Templates
  Windows servers
新規グループ作成: 空白
DNS名: centos5.example.jp
IPアドレス: 127.0.0.1
接続方法: IPアドレス
Zabbix エージェントのポート: 10050
プロキシによる監視: プロキシなし
ステータス: 有効   <- デフォルトでは[無効]となっている
IPMI を使用: [ ] -> チェックを入れると IPMI のアドレス等を聞いてくる

次にクライアント

[設定]->[ホスト]
[ホストの作成]
名前: serverc
グループ: Linux servers
DNS 名: ____
IPアドレス: 192.168.1.10
接続方法: IPアドレス
Zabbix エージェントのポート: 10050
プロキシによる監視: プロキシなし
ステータス: 有効   <- デフォルトでは[無効]となっている
IPMI を使用: [ ] -> チェックを入れると IPMI のアドレス等を聞いてくる

リンクしているテンプレート

[追加]->[v]Template_Linux

[保存]

(9) 監視サービスの調整 [設定]->[ホスト]

リストから対象サーバの[アプリケーション]->Template_Linux:Services 欄の[アイテム]から必要の無いものの

[ステータス]を[無効]にする.

ていうか

その他,エラー[x]となっているものも無効にしておくほうがいいかも.

(10)Apache サービス監視

参考サイト http://www.zabbix.jp/modules/bwiki/index.php?Apache%20Server%20Status%20%B4%C6%BB%EB%CA%FD%CB%A1

(11)ネットワークマップの作成(ネットワークトポロジ) [設定]->[マップ] [local network] で編集する

(12) データの保存期間

[管理]->[一般設定]
アクションの保存期間: 365日
イベントの保存期間: 365日

(13) メール送信の設定

[管理]->[メディアタイプ]
メール欄の[Email]
説明: Email
タイプ: メール
SMTP サーバ: mailhost.example.jp
SMTP helo: centos5.examle.jp
送信元メールアドレス: hoge@exmaple.jp

(13.5)有事にメールを飛ばす設定

[設定]->[アクション]->[アクションの作成]
アクション
 名前: イベントトリガー発生および解消
 イベントソース: トリガー
 エスカレーションを有効: [ ]
 デフォルトの件名: {TRIGGER.NAME}: {STATUS} (例: [{HOSTNAME}]{TRIGGER.NAME}: {STATUS})
 デフォルトメッセージ: {TRIGGER.NAME}: {STATUS}
		       もっといい文があればそれを書く
 リカバリーメッセージ: [v]
 リカバリの件名: {TRIGGER.NAME}: {STATUS} (例: [{HOSTNAME}]{TRIGGER.NAME}: {STATUS})
 リカバリメッセージ: {TRIGGER.NAME}: {STATUS}
		       もっといい文があればそれを書く
 ステータス: 有効
アクションのコンディション の[新規]
 トリガーの深刻度 >= 軽度の障害
 ->[追加]
アクションのオペレーション の[新規]
 オペレーションのタイプ: メッセージ送信
 メッセージの送信先: ユーザグループ Zabbix administrators
 次のメディアのみ使用: Email
 デフォルトのメッセージ: [v]
 ->[追加]

日本語メールを送る場合は次のサイトを参考にして設定を加える必要があるかも (デフォルトのままだと UTF-8 でメールが送られる. とはいっても Subject は BASE64 でエンコードされているので 最近の MUA ではほぼ大丈夫だとは思うが...)

http://www.zabbix.jp/modules/bwiki/index.php?%C6%FC%CB%DC%B8%EC%A5%A2%A5%E9%A1%BC%A5%C8%A5%E1%A1%BC%A5%EB%A4%CE%C1%F7%BF%AE%CA%FD%CB%A1

以下の例は SMTP サーバを利用する場合. 自ホストの SMTP サーバを利用する場合は別のファイルを用いる

http://www.zabbix.jp/modules/bwiki/index.php?%C6%FC%CB%DC%B8%EC%A5%A2%A5%E9%A1%BC%A5%C8%A5%E1%A1%BC%A5%EB%A4%CE%C1%F7%BF%AE%CA%FD%CB%A1#content_1_11

にある sendmessage_php.sh と sendmessage.ini をダウンロードして使うことかな

# wget http://www.zabbix.jp/files/sendmessage_smtp_php.tar.gz

ZABBIXサーバにスクリプトを置くディレクトリを作成します。

# mkdir /etc/zabbix/alertscripts

ダウンロードしたファイルを作成したディレクトリに置き、解凍します

# cd /etc/zabbix/alertscripts
# tar xvzf sendmessage_smtp_php.tar.gz

実行可能なパーミッションを付与します

# chmod 755 /etc/zabbix/alertscripts/sendmessage_smtp_php/sendmessage_smtp_php.sh

/etc/zabbix/alertscripts/sendmessage_smtp_php/sendmessage_smtp_php.sh に設定値を 書き込みます

------------------------------------------------
$MAIL_FROM = "zabbix@localhost";	「zabbix@localhost」の箇所に送信元にするメールアドレスを記述
$MAIL_FROMNAME = "Zabbix 障害通知";	「Zabbix 障害通知」の箇所に送信元の表示名を記述
$MAIL_SMTP_HOST = 'smtp.example.com:25';	「smtp.example.com:25」の箇所に「SMTPサーバ:ポート」の形式で記述
$MAIL_SMTP_USER = 'XXXXXXXX';	XXXXXXXX の箇所にユーザ名を記述
  (SMTP_AUTH を使わない場合は '')
$MAIL_SMTP_PASS = 'XXXXXXXX';	XXXXXXXX の箇所にパスワードを記述('')
$mailer->SMTPAuth = false;
------------------------------------------------

設置した sendmessage_smtp_php/sendmessage_smtp_php.sh を カスタムスクリプトに登録します

  1. [管理] → [メディアタイプ]をクリックします
  2. 右上の「メディアタイプの作成」をクリックします
  3. 次のように設定し、「保存」をクリックします
     説明: sendmessage_smtp_php.sh
     タイプ: スクリプト
     スクリプト名: sendmessage_smtp_php/sendmessage_smtp_php.sh

先に登録したカスタムスクリプトをユーザのメディアに登録します。

  1. [管理] → [ユーザ]をクリックします
  1.5 プルダウンメニューを [ユーザ] にする.
  2. リストからカスタムスクリプトを登録したいユーザをクリックします
  3. [メディア]設定の「追加」をクリックします
  4. 次のように設定し、「追加」をクリックします
     タイプ: sendmessage_smtp_php.sh
     送信先: 送信先メールアドレス
     その他はデフォルトのまま
  5. 「保存」をクリックします

(14) ユーザとグループの設定

(15) PostgreSQL のプロセス監視 [設定]->[ホスト] ->[アイテム] [Template_Linux:Number of running processes mysqld]を 複製し [Number of running processes postmaster] とする. [設定]->[ホスト] ->[トリガー] [Template_Linux:Mysql is not running on {HOSTNAME}]を複製し, [PostgreSQL is not running on {HOSTNAME}] とする.

意図したとおりに動かない

Zabbix エージェントタイプのアイテムで, イベントが複数同時に起こる(というか zabbix_agentd 同時に 障害が起こる)とアクションが実行されない.

たとえば,ネットワークケーブルを引っこ抜いたとき, 1つののアクションも実行されない.

TCP/25, TCP/80 を同時に REJECT したときなどは動くので, zabbix_agentd と通信できるかどうかの相関があるようだ. (zabbix_agentd と通信できないとき [イベント] の[ステータス]欄が [不明]になる)

シンプルチェックで作成した ICMP は大丈夫そう.

Twitter へ投稿

Python ->挫折 https://github.com/BlueSkyDetector/code-snippet/tree/master/py-twitter-zabbix/

Perl http://search.cpan.org/dist/Net-Twitter-Lite/

いくつか自動的にモジュールがインストールされる.

で以下のスクリプト. http://tech.bayashi.jp/archives/entry/perl/2010/003016.html http://nabetama.com/blog/?p=241

$MAIL_TO = $argv[1]; $MAIL_SUBJECT = $argv[2]; $MAIL_MESSAGE = $argv[3];


TeraStation のアレイサイズ

SNMPで

HOST-RESOURCES-MIB::hrStorageSize.33 = INTEGER: 1087490592  = アレイサイズ
.1.3.6.1.2.1.25.2.3.1.5.33 = INTEGER: 1087490592
                                                              * 4 * 1024 kbyte
HOST-RESOURCES-MIB::hrStorageUsed.33 = INTEGER: 1400        = アレイ使用量
.1.3.6.1.2.1.25.2.3.1.6.33 = INTEGER: 1400                    * 4 * 1024 kbyte

Solaris10 にエージェントをインストールする

エージェントインストール

$ wget http://prdownloads.sourceforge.net/zabbix/zabbix-1.8.4.tar.gz
$ gtar xvzf 
$ zabbix-1.8.4
# useradd -u 110 -d /dev/null -s /bin/false zabbix 
# # useradd -c "Zabbix User" -d /home/zabbix -m -s /bin/ksh -g zabbix zabbix
$ ./configure --enable-agent  LDFLAGS="-R /usr/local/lib"
  (なぜか /usr/local/lib にあるランタムライブラリを呼んでくれない)
$ make 
# make install

エージェントの設定

/etc/services に以下の 2行を追加

zabbix_agent 10050/tcp 
zabbix_trap 10051/tcp

(*) zabbix_agentd ではなく zabbix_agent を使う場合だけ /etc/inetd.conf に以下の行を追加.

zabbix_agent stream tcp nowait.3600 zabbix /usr/local/bin/zabbix_agent
# mkdir /etc/zabbix
# cp misc/conf/zabbix_agentd.conf /etc/zabbix/
# cd /etc/zabbix
# vi zabbix_agentd.conf

最低 Zabbix サーバの IP アドレスだけ変更しておけばいい

SMF の設定

http://www.zabbix.com/wiki/howto/monitor/os/solaris/solarissmf を参考に

# vi /var/svc/manifest/site/zabbix-agent.xml
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<service_bundle type="manifest" name="zabbix-agent">
   <service name="application/zabbix-agent" type="service" version="5">
      <create_default_instance enabled="false"/>
      <single_instance/>
      <dependency name="fs-local" grouping="require_all" restart_on="none" type="service">
         <service_fmri value="svc:/system/filesystem/local"/>
      </dependency>
      <exec_method type="method" name="start" exec="/usr/local/sbin/zabbix_agentd" timeout_seconds="60"/>
      <exec_method type="method" name="stop" exec=":kill" timeout_seconds="60"/>
      <stability value="Unstable"/>
      <template>
         <common_name>
            <loctext xml:lang="C">Zabbix Agent</loctext>
         </common_name>
      </template>
   </service>
</service_bundle>

# svccfg import /var/svc/manifest/site/zabbix-agent.xml
# svcadm enable zabbix-agent

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-04-08 (金) 16:48:14