RIGHT:[[フリーソフトウェアのコンパイル]]

#contents

*CentOS 5.5 [#hf9d2bf4]
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.
と出るが無視していいのか?

その他,
-依存パッケージの追加インストール
-ZABBIX-JP の GPG キーのインポート

を許可を聞かれるが,"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 欄の[アイテム]から必要の無いものの
[ステータス]を[無効]にする.

ていうか
->リストの対象サーバの[アイテム]から必要の無いものの[ステータス]を[無効]にする.
->リストの対象サーバの[トリガ]からも必要の無いものの[ステータス]を[無効]にする.

-FTP server is running
-IMAP server is running
-News server is running
-Number of running processes zabbix_server(クライアントのみ)
-Number of running processes apache(DB サーバのみ)
-Number of running processes inetd
-Number of running processes mysqld(クライアントのみ)
-POP3 server is running
-WEB(HTTP) server is running (DB サーバのみ)

その他,エラー[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) ユーザとグループの設定
-ゲストユーザを無効にする
[管理]->[ユーザ]->右のプルダウンメニューから[ユーザグループ]
Guests の[ユーザの状態]を[無効]にする

-管理者のパスワード
[管理]->[ユーザ]->右のプルダウンメニューから[ユーザ]
Admin
[パスワード変更]

-管理者の E-mail アドレス設定
[管理]->[ユーザ]->右のプルダウンメニューから[ユーザ]
Admin
メディアの[追加]
 タイプ: Email
 送信先: email アドレス


(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}]
とする.


*意図したとおりに動かない [#ec166487]
Zabbix エージェントタイプのアイテムで,
イベントが複数同時に起こる(というか zabbix_agentd 同時に
障害が起こる)とアクションが実行されない.

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

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

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

*Twitter へ投稿 [#nbdd0350]
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 のアレイサイズ [#v2215997]
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 にエージェントをインストールする [#dd6c762f]
**エージェントインストール [#rf909586]
 $ 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

**エージェントの設定 [#fb5d7e59]
/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 の設定 [#b1756b6b]
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