【失敗】HomebrewでMacにLAMP環境を構築 #05:ZABBIX

ZABBIXはネットワークトラフィックが監視できるサーバです。 PCだけでなくSNMPに対応したネットワークスイッチのトラフィックも見られることから、定番ツールの一つになっています。他にはMRTG,Ngios,PandoraFMS,sensu,Hinemos等がありますが、Homebrewで拾えるformuraがMRTG,Nagios,Zabbixしかないので、新しいZabbixで構築してみます。

あ、ちなみに構築失敗していますのであまり参考になりません。でもせっかくやったので記録だけ残しておきます。

ZABBIX用MySQLデータベース・ユーザの作成

ZABBIXのインストール前にデータベースを作成しておく必要があります。

事前にApache・MySQLを起動しておいてください。

rootでMySQLにログイン

$ mysql -uroot -p 

zabbixデータベースの作成

mysql> create database zabbix character set utf8; 

zabbixユーザの作成

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘パスワード’; 

データベースの更新

mysql> flush privileges; 

追加されたか確認

mysql> select Host,User,Password from mysql.user;
+-----------+--------+-------------------------------------------+
| Host      | User   | Password                                  |
+-----------+--------+-------------------------------------------+
| localhost | root   | *0000000000000000000000000000000000000000 |
| localhost | zabbix | *0000000000000000000000000000000000000000 |
| 127.0.0.1 | root   |                                           |
| ::1       | root   |                                           |
+-----------+--------+-------------------------------------------+
4 rows in set (0.00 sec) 

ZABBIXのインストール

$ brew install zabbix --with-mysql
依存関係:fping、libssh2 

ZABBIXサーバの設定

$ vi /usr/local/etc/zabbix_server.conf 

zabbix_server.confには各項目のデフォルト値を入れる欄があるので、そこに書き込んでから設定値を変更してもいいでしょう。

30行目あたり変更:ログファイルの場所 デフォルトだと/tmpという変なところにあるので、ApacheやMySQLのログがあるところに置きます。

LogFile=/usr/local/var/log/zabbix_server.log 

68行目あたりコメント外し

DBHost=localhost 

94行目あたり変更:DB接続ユーザ

DBUser=zabbix 

103行目追記:DBパスワード

DBPassword=MySQLで作成したzabbixユーザのパスワード 

zabbix用SQLのインポート

schema,images,dataのSQLスキーマをインポートします。

$ mysql -uzabbix -p zabbix < /usr/local/Cellar/zabbix/2.4.2/share/zabbix/mysql/schema.sql
$ mysql -uzabbix -p zabbix < /usr/local/Cellar/zabbix/2.4.2/share/zabbix/mysql/images.sql
$ mysql -uzabbix -p zabbix < /usr/local/Cellar/zabbix/2.4.2/share/zabbix/mysql/data.sql 

データベースのテーブル確認

$ mysql -uzabbix -p
mysql> use zabbix
mysql> show tables;
+-----------------------+
| Tables_in_zabbix      |
+-----------------------+
| acknowledges          |
| actions               |
| alerts                |
| application_template  |
… 

ZABBIXのコードをWeb公開フォルダにコピー

$ cp -r /usr/local/Cellar/zabbix/2.4.2/share/zabbix/php/ ~/Sites/zabbix/ 

confフォルダの権限変更

$ chmod 777 ~/Sites/zabbix/conf/ 

zabbixのWebインストーラ

1. Welcome

特にないので「Next」

2. Check of pre-requisites

PHPの設定を確認します。問題がある箇所は赤字で表示されるので、「Required」の数値に従いphp.iniを修正します。 すべてOKであれば「Next」

3. Configure DB connection

MySQL接続のテストをします。 MySQL用zabbixデータベース・ユーザ・パスワードを入れて「Test connection」でテストしてください。 OKであれば「Next」

4. Zabbix server details

特にいじる必要がないので「次へ」

5. Pre-Installation summary

確認画面です。問題がなければ「Next」

6. Install

OKであれば「Finish」

ログイン画面

Username:admin Password:zabbix

ログイン後、画面右上の「Profile」から言語設定を変更できます。 でも、画面上部に「Zabbixサーバーが動作していません」とでてしまいます。

ZABBIXサーバの起動

$ zabbix_server start 

何も反応がないので起動しているように見えますが、実は起動失敗しています。ログを見ると以下のメッセージが残っていました。

80466:20150108:163125.831 cannot allocate shared memory of size 8388583: [22] Invalid argument
80466:20150108:163125.834 cannot allocate shared memory for history cache 

これを解決するには共有メモリを設定する必要があります。

共有メモリの設定

ZABBIXの動作には共有メモリの変更が必須となります。 適当に変更させて動作させている例が多かったのですが、システム系の値を変更することになるので慎重に行きたいところなのですが…

参考サイト

現在のページサイズを確認

$ getconf PAGE_SIZE
4096 

現在のパラメータ値を確認

$ sysctl -a | grep -E "shmall|shmmax" kern.sysv.shmmax: 4194304 kern.sysv.shmall: 1024 

IPCSというコマンドでも確認できます。

$ IPCS -M
IPC status from <running system> as of Thu Jan 8 17:46:20 JST 2015
shminfo:
  shmmax: 4194304 (max shared memory segment size)
  shmmin:       1 (min shared memory segment size)
  shmmni:      32 (max number of shared memory identifiers)
  shmseg:       8 (max shared memory segments per process)
  shmall:    1024 (max amount of shared memory in pages) 

とりあえず設定してみる

一時的な設定はsysctlコマンドで設定できます。

$ sudo sysctl -w kern.sysv.shmmax=67108864
$ sudo sysctl -w kern.sysv.shmmni=128
$ sudo sysctl -w kern.sysv.shmall=2097152
$ kern.sysv.shmall: 1024 -> 2097152 

再度ZABBIXを起動

$ zabbix_server start 

無反応です。ログを見ると以下のようなものがぞろぞろと出てました。

$ tail /usr/local/var/log/zabbix_server.log
1864:20150108:232928.945 2: 14 zabbix_server 0x00000001095de499 daemon_start + 412
1863:20150108:232928.945 1: 15 zabbix_server 0x00000001095a2949 main + 972
1856:20150108:232928.947 One child process died (PID:1861,exitcode/signal:1). Exiting ...
1862:20150108:232928.947 1: 15 zabbix_server 0x00000001095a2949 main + 972
1875:20150108:232928.947 3: 13 zabbix_server 0x00000001095a2e12 MAIN_ZABBIX_ENTRY + 1067
1856:20150108:232930.952 syncing history data...
1856:20150108:232930.956 syncing history data done
1856:20150108:232930.959 syncing trends data...
1856:20150108:232930.962 syncing trends data done
1856:20150108:232930.965 Zabbix Server stopped. Zabbix 2.4.2 (revision 50419). 

もぅマヂ無理・・・

ここの一覧見たら、MacOS Xはエージェントしか用意されてないっぽいですね…システム要件にはサポートとあるけど

【失敗】HomebrewでMacにLAMP環境を構築 #05:ZABBIX” への2件のフィードバック

  1. 初めまして。@yut148と申します。
    Homebrewではないのですが、ソースからビルドしたzabbix-2.4.7なら
    $ sudo sysctl -w kern.sysv.shmmax=67108864
    $ sudo sysctl -w kern.sysv.shmall=2097152
    で動きました。
    御報告まで。
    こちらの記事が参考になり助かりました。
    御礼申し上げます。

    1. コメントありがとうございます
      shm〜の数値って最適な計算方法がわからなかったのですごい助かります。
      今度試してみますね。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中