Zabbixをインストールしてみる・まだ続き

昨日の続き、/usr/share/doc/zabbix-server-mysql-3.0.9/へ移動し、create.sql.gzファイルを解凍したところから。
以下のコマンドでZabbixサーバの初期データを投入してみる。

# mysql -uzabbix zabbix < schema.sql
# mysql -uzabbix zabbix < images.sql
# mysql -uzabbix zabbix < data.sql

あれ?うまくいかない。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

mysqldを起動していないだけでした。
改めて上記コマンドを入力。今度はちゃんと入りました。
/etc/zabbix/zabbix_server.confに下記情報を追記。DBpasswordは、zabbixユーザのパスワードを設定していないなら記入しない。←間違い。後述

DBName=zabbix
DBUser=zabbix
DBPassword=password
※この辺の設定はcreate databaseの辺りでやっているはず。

次は、ZabbixのWEBインターフェースをインストールする。Zabbix本体とは別にインストールする必要があるのね。

yum install zabbix-web zabbix-web-mysql zabbix-web-japanese

Zabbixリポジトリを追加してるから、この時点でyumでインストールできるようになってるんじゃないかな。
というわけで、webからzabbixにアクセスしてみようとしたが、アクセスできない。
/etc/httpd/conf.dにzabbix.confが存在していない。これが原因かも。
しょうがないので、前回の構築の際に残ったらしい、zabbix.conf.rpmsaveをリネームして使ってみる。
↑解消せず。
/var/log/zabbix/zabbix-server.logを確認すると、以下のエラーログが出力されていた。

[Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: NO)

パスワードのせいで入れないらしい。
/etc/zabbix/zabbix-server.confに設定を記述する際、MySQLのパスワードを設定していない場合はDBPassword
=(空白)と記入する必要が有り、DBPassword=そのものを記述しないとエラーになる模様。
あと、調べてる途中でこのような情報を発見。Apacheのバージョンが2.4以上だと別途手順が必要なようだ。
が、apachectl -vで確認したところ、こちらの検証環境のapacheは2.2だった。関係なさそうなのでパス。
しかしこれでもWebにアクセスできず。/var/log/zabbix/zabbix-server.logを見ると、また別なエラーが吐き出されていた。

3640:20170629:162853.910 database is down: reconnecting in 10 seconds
3640:20170629:162903.914 [Z3001] connection to database 'zabbix' failed: [0] could not connect to server: Connection refused
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
could not create socket: Address family not supported by protocol

このログでググったところ、こちらの記事がヒット。
どうやら、こっちはMySQLで構築してるのに、Zabbix君はPostgreSQLで接続しようとしているようで、それがダメらしい。
yum list installed *pg*(PostgreSQL関係のパッケージを捜索)してみたところ、現在の環境で以下のパッケージがヒットした。

# yum list installed *pg*
Installed Packages
gnupg2.i686 2.0.14-8.el6 @base
gpgme.i686 1.1.8-3.el6 @anaconda-CentOS-201311271240.i386/6.5
libgpg-error.i686 1.7-4.el6 @anaconda-CentOS-201311271240.i386/6.5
pgdg-centos96.noarch 9.6-3 @/pgdg-centos96-9.6-3.noarch
pygpgme.i686 0.1-18.20090824bzr68.el6 @anaconda-CentOS-201311271240.i386/6.5
zabbix-server-pgsql.i686 3.0.9-1.el6 @zabbix

一番下のやつ…インストールした記憶がないんだけど…(でもzabbix-server辺りをインストールした時に何故か入ってたのは見た気がする)
というわけで、zabbix-server-pgsql.i686を削除。zabbix-server-mysqlはインストール済みだった。そしてzabbix-serverを起動、httpdを再起動。一応mysqldも再起動。
…それでもダメだった。今度は何だね。

[Z3005] query failed: [1146] Table 'zabbix.users' doesn't exist [select userid from users limit 1]

調べたらデータベースの復元時に出るようなエラーらしい。そもそもこの環境ではZabbixのデータベースは作られたものの、テーブルが全く作られていないような状態だったので、初期設定でデータベースやテーブルを作成するに当たって何かしくじったのかもしてない。
一旦zabbix-server-mysqlを削除し、再度インストール。
ところでこの時に気づいたんだけど、yum installでパッケージをzabbix-serverと指定すると、zabbix-server-pgsql.i686をインストールしようとする動きをするみたい。前日の手順でzabbix-serverをコマンドで指定してインストールしてたけど、あれよくないかも。
インストールが完了したら、mysqldを起動し、/usr/share/doc/zabbix-server-mysql-3.0.9へ移動。下記のコマンドを実行。

[root@localhost zabbix-server-mysql-3.0.9]# zcat create.sql.gz | mysql -u root -p zabbix
Enter password:   ←/etc/zabbix/zabbix-server.confで指定したパスワードを入力

これでちゃんとテーブルはできた。できたがWebに接続できないのは相変わらず…
このエラーが原因?

5059:20170629:172917.334 cannot send list of active checks to "127.0.0.1": host [Zabbix server] not monitored