zabbix 3.2.1 WEBインターフェース 初期画面以降 表示崩れについて

お世話になります。当方、自宅にて下記の環境で構築しております。

・CentOS6.8
・apache2.2
・php5.6.22
・zabbix3.2.1

本日、yum-remiリポジトリよりzabbix3.2.1のパッケージをダウンロード・インストールを行まして設定を致しました。DBともにすべて動作はしているようですが、WEBインターフェースの画面で、表示崩れが起きております。

クライアントPC(主に作業で使用している)で使用しているブラウザは以下2つです。2つとも表示崩れのような文字しか表示されていないページが出現しております。また、https://ホストIP/zabbixでアクセスすると画面が真っ白で何も見れません。setup.phpを指定していくとログインはできますが表示崩れを起こしているようです。

・Mozilla/5.0 (Windows NT 6.1; rv:49.0) Gecko/20100101 Firefox/49.0
・Google Chrome バージョン 53.0.2785.143 m

サーバー等の作動はpsコマンドで確認しております。スクリーンショットを添付いたしますのでどうか、解決策をご教示願えればと思います。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

どのようにして環境を構築されたのかをお教えください。

例えば、PHPやZabbixは、どのような手順でインストールされましたか?
パッケージを使用して構築されたのであれば、どこのリポジトリを使用
して、どのパッケージをインストールされたのかもお教えください。
remiのリポジトリには、zabbixのパッケージはなかったと思います。

あと、PHPの実行でエラーが発生している可能性も考えられますので、
エラーログを確認してください。

ユーザー j.hoshikawa0519 の写真

TNK  様

コメントありがとうございます。以下の流れでインストール、設定をしております。長くなりますがご容赦ください。なお、私が勘違いしておりました。remiではPHPをインストールしております。
まず、インストール済みパッケージは以下です。各々のコマンドで確認済みです。

# yum list installed | grep zabbix

fping.i686 2.4b2-16.el6.JP @zabbix-jp-relatedpkgs
iksemel.i686 1.4-2.el6.JP @zabbix-jp-relatedpkgs
zabbix-agent.i686 3.2.1-1.el6 @/zabbix-agent-3.2.1-1.el6.i686
zabbix-get.i686 3.2.1-1.el6 @/zabbix-get-3.2.1-1.el6.i686
zabbix-java-gateway.i686 3.2.1-1.el6 @/zabbix-java-gateway-3.2.1-1.el6.i686
zabbix-proxy-pgsql.i686 3.2.1-1.el6 @/zabbix-proxy-pgsql-3.2.1-1.el6.i686
zabbix-proxy-sqlite3.i686 3.2.1-1.el6 @/zabbix-proxy-sqlite3-3.2.1-1.el6.i686
zabbix-release.noarch 3.2-1.el6 @/zabbix-release-3.2-1.el6.noarch
zabbix-sender.i686 3.2.1-1.el6 @/zabbix-sender-3.2.1-1.el6.i686
zabbix-server-pgsql.i686 3.2.1-1.el6 @/zabbix-server-pgsql-3.2.1-1.el6.i686
zabbix-web.noarch 3.2.1-1.el6 @/zabbix-web-3.2.1-1.el6.noarch
zabbix-web-japanese.noarch 3.2.1-1.el6 @/zabbix-web-japanese-3.2.1-1.el6.noarch
zabbix-web-pgsql.noarch 3.2.1-1.el6 @/zabbix-web-pgsql-3.2.1-1.el6.noarch

# yum list installed | grep 'php'
php.i686 5.6.26-1.el6.remi @remi-php56
php-bcmath.i686 5.6.26-1.el6.remi @remi-php56
php-cli.i686 5.6.26-1.el6.remi @remi-php56
php-common.i686 5.6.26-1.el6.remi @remi-php56
php-gd.i686 5.6.26-1.el6.remi @remi-php56
php-mbstring.i686 5.6.26-1.el6.remi @remi-php56
php-pdo.i686 5.6.26-1.el6.remi @remi-php56
php-pear.noarch 1:1.10.1-7.el6.remi
php-pecl-jsonc.i686 1.3.10-1.el6.remi.5.6 @remi-php56
php-pecl-zip.i686 1.13.2-1.el6.remi.5.6 @remi-php56
php-pgsql.i686 5.6.26-1.el6.remi @remi-php56
php-process.i686 5.6.26-1.el6.remi @remi-php56
php-xml.i686 5.6.26-1.el6.remi @remi-php56

# yum list installed | grep httpd
httpd.i686 2.2.15-54.el6.centos
httpd-manual.noarch 2.2.15-54.el6.centos
httpd-tools.i686 2.2.15-54.el6.centos

各パッケージをインストールしております。

vi /etc/zabbix/zabbix_server.conf
vi /etc/zabbix/zabbix_agentd..conf

2つのファイルを編集し、ホスト名やポートを設定、そして/usr/share/zabbix/配下のすべてのPHPファイルをapacheのドキュメントルート/var/www/html/zabbix配下へコピーし、所有者をapacheに変えております。

more /var/log/httpd/error_log
にて、apacheログを見ると下記のように出力されております。

[Mon Oct 10 19:59:39 2016] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Mon Oct 10 19:59:39 2016] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Oct 10 19:59:40 2016] [notice] Digest: generating secret for digest authentication ...
[Mon Oct 10 19:59:40 2016] [notice] Digest: done
[Mon Oct 10 19:59:50 2016] [notice] Apache/2.2.15 (Unix) DAV/2 mod_ssl/2.2.15 OpenSSL/1.0.1e-fips mod_wsgi/3.2 Python/2.6.6 mod_perl
/2.0.4 Perl/v5.10.1 configured -- resuming normal operations

また、直近のzabbix_server.logを見ると下記が出力されています。

# more /var/log/zabbix/zabbix_server.log

2610:20161010:205648.331 cannot send list of active checks to "192.168.0.100": host [ホスト名] not found

説明がうまくなくて申し訳ありません。エンジニア歴が浅く、見よう見まねでここまでたどり着いた次第です。ここから何か感じ取れるものがありましたら是非、ご教示ください。

ユーザー TNK の写真

3.0の情報ですが、CentOS 6の場合のインストール手順に関しては、
以下のURLの一番最後のセクションに記述してあります。
http://qiita.com/atanaka7/items/389f796b221cc0609379

基本的なパッケージの構成は、3.2.1でも変更はなかったと思いま
すので、私が確認した手順と異なっている点は、2ヶ所です。

1つめは、以下の部分です。

2つのファイルを編集し、ホスト名やポートを設定、そして/usr/share/zabbix/配下のすべてのPHPファイルをapacheのドキュメントルート/var/www/html/zabbix配下へコピーし、所有者をapacheに変えております。

この部分に関しては、パッケージでインストールされたファイルは
そのままで、ドキュメントルートへのコピーは不要です。
代わりに、

 /usr/share/doc/zabbix-web-3.2.1/httpd22-example.conf

というファイルがあると思いますので、このファイルを、

 /etc/httpd/conf.d/zabbix.conf

というファイルにコピーして、httpdを再起動します。

2つめは、PHP関連のパッケージです。
先にご紹介したURLの情報はMySQL用ですので、PostgreSQLを使用さ
れているのであれば、php-mysqlの代わりにphp-pgsqlがインストー
ルされていれば良いはずです。
ただ、php-ldapがインストールされていないようです。

php-ldapもインストールして、httpdを再起動してみてください。

----- 追記 -----
/etc/httpd/conf.d/zabbix.conf 内のtimezoneの設定をお忘れなく。

ユーザー j.hoshikawa0519 の写真

TNK 様

詳細なご説明、ありがとうございました。ご指南いただいた情報をもとに再度、確認いたしました。LDAPが入っていないことを除き、ご指南いただいた設定と現状の設定はすべて合っていました。

>ただ、php-ldapがインストールされていないようです。
>php-ldapもインストールして、httpdを再起動してみてください。

# yum install --enablerepo=remi,remi-php56 php-ldap

このコマンドでLDAPも追加いたしました。そしてzabbix-server,zabbix-agent,httpdを再起動し、WEBインタフェースを確認したところ、うそみたいに表示崩れが改善され、正規の表示になりました。セットアップ画面より再度設定もし直し、ダッシュボードも確認しておりますが、しっかり表示されております。
ご指南ありがとうございました。

ただ、ここで新たな疑問がわきました。

ダッシュボードで、

ホスト 問題 最新の変更 経過時間 情報 コメントあり アクション
Zabbix server Zabbix agent on Zabbix server is unreachable for 5 minutes 2016/10/11 10:39:30 30m 14s はい 1 失敗 1
1件中1件の障害が表示されています更新時刻: 11:09:44

軽度の障害報告がされています。ぐぐったとこと、「Zabbixサーバー自身でZabbixエージェントが見つからない)」とあり、Zabbix-agentを入れれば改善されるとあったのですが、私のZabbixサーバーにはZabbix-agentも入れてあり、既に起動済みです。

# service zabbix-server status
zabbix_server (pid 9009) を実行中...

# service zabbix-agent status
zabbix_agentd (pid 8947) を実行中...

再起動しましたが障害が消えません。この場合、ダッシュボード-設定より、監視対象を無効にした方がよろしいのでしょうか。必要性がなければ無効にしようかと思いますが、この点もご指南いただけますと幸いです。

ユーザー TNK の写真

Zabbixをパッケージからインストールしていれば、ホストの設定で
「Zabbix server」を有効にするだけで問題なく監視できるように
なっています。

「Zabbix server is unreachable for 5 minutes」という障害が検
知されるのであれば、zabbix_serverプロセスからzabbix_agentdプ
ロセスに接続することができていません。

zabbix_agend.confの設定やWebインターフェース上でホストの設定
を変更されませんでしたか?

ユーザー j.hoshikawa0519 の写真

TNK様

ご指南ありがとうございます。

WEBインタフェース上で設定-ホストで見たところ、「Zabbix-server ステータス 有効」となっており、無効にしたところ、表示が消えました。設定をいじったような記憶はないのですが・・・。

ちなみに、これは無効にしていていいものなのでしょうか?

初心者質問で恐縮ですがご指南ください。 

ユーザー TNK の写真

初期設定は「無効」ですが、「無効」にすべきではありません。
「無効」にするということは、Zabbixサーバー自体の監視をしない
ということになってしまいます。

Zabbixサーバ自体の負荷状況を把握して、環境や使用状況に合わせ
てチューニングしたりするのにも必要です。

添付して頂いた画像から推測するに、zabbix_agentd.confの

 ・Server
 ・ListenIP

を変更してZabbixエージェントが接続を受け付けるIPアドレスやポ
ート番号を変更してしまっているか、zabbix_agentdプロセスが起
動していない状態かのどちらかだと思われます。

zabbix_agentd.conf内の設定と、psコマンドでのプロセスの存在確
認、そしてnetstatコマンドなどを使用して、デフォルトの設定で
あれば、ポート番号10050番でLISTEN状態になっているかを確認し
てみてください。

ユーザー j.hoshikawa0519 の写真

TNK 様

度々申し訳ありません。ご指南いただいた内容をもとに調べてみました。現在、このような状態です。

# ps aux | grep zabbix_agent
zabbix 6087 0.0 0.0 10472 892 ? S 22:43 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 6088 0.0 0.0 10472 924 ? S 22:43 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 6089 0.0 0.0 10472 1268 ? S 22:43 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 6090 0.0 0.0 10472 1268 ? S 22:43 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 6091 0.0 0.0 10472 1368 ? S 22:43 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix 6092 0.0 0.0 10484 1356 ? S 22:43 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root 6920 0.0 0.0 5400 796 pts/0 S+ 22:58 0:00 grep zabbix_agent

# netstat -na | grep 10050
tcp 0 0 192.168.0.100:10050 0.0.0.0:* LISTEN
tcp 0 1 192.168.0.100:47190 192.168.0.165:10050 SYN_SENT

# netstat -na | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN
tcp 0 0 192.168.0.100:41412 192.168.0.100:10051 TIME_WAIT
tcp 0 0 192.168.0.100:41478 192.168.0.100:10051 TIME_WAIT
tcp 0 0 192.168.0.100:41444 192.168.0.100:10051 TIME_WAIT
tcp 0 0 192.168.0.100:41432 192.168.0.100:10051 TIME_WAIT
tcp 0 0 192.168.0.100:41488 192.168.0.100:10051 TIME_WAIT
tcp 0 0 192.168.0.100:41468 192.168.0.100:10051 TIME_WAIT
tcp 0 0 192.168.0.100:41440 192.168.0.100:10051 TIME_WAIT
tcp 0 0 192.168.0.100:41494 192.168.0.100:10051 TIME_WAIT
tcp 0 0 :::10051 :::* LISTEN

#vi /etc/zabbix/zabbix_server.conf

# This is a configuration file for Zabbix server daemon
# To get more information about Zabbix, visit http://www.zabbix.com

############ GENERAL PARAMETERS #################

### Option: ListenPort
# Listen port for trapper.
#
# Mandatory: no
# Range: 1024-32767
# Default:
ListenPort=10051

# vi /etc/zabbix/zabbix_agentd.conf

##### Passive checks related

### Option: Server
# List of comma delimited IP addresses (or hostnames) of Zabbix servers.
# Incoming connections will be accepted only from the hosts listed here.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: no
# Default:
# Server=

Server=192.168.0.100

### Option: ListenPort
# Agent will listen on this port for connections from the server.
#
# Mandatory: no
# Range: 1024-32767
# Default:
# ListenPort=10050
ListenPort = 10050
### Option: ListenIP
# List of comma delimited IP addresses that the agent should listen on.
# First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
#
# Mandatory: no
# Default:
# ListenIP=0.0.0.0
ListenIP = 192.168.0.100

##### Active checks related

### Option: ServerActive
# List of comma delimited IP:port (or hostname:port) pairs of Zabbix servers for active checks.
# If port is not specified, default port is used.
# IPv6 addresses must be enclosed in square brackets if port for that host is specified.
# If port is not specified, square brackets for IPv6 addresses are optional.
# If this parameter is not specified, active checks are disabled.
# Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
#
# Mandatory: no
# Default:
# ServerActive=

ServerActive=192.168.0.100

# vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 10051 -j ACCEPT

長くなりすいません。すべて再起動をかけましたが依然として軽度の障害としてログが残りつづけています。ここから何かわかることはありますでしょうか?

ユーザー TNK の写真

zabbix_agentd.confの設定がZabbixサーバー側の設定と合致してい
ないので障害になっていると思われます。

Zabbixサーバーの上のZabbixエージェントの設定としては、以下の
ような設定にするか、Zabbixエージェントをパッケージでインスト
ールしたときから変更しないようにしてみてください。

----- ここから(zabbix_agetd.conf) -----
Server=127.0.0.1
ListenIP=127.0.0.1
ServerActive=127.0.0.1
----- ここまで -----

設定ファイルを変更したら、Zabbixエージェントは再起動してください。

ユーザー j.hoshikawa0519 の写真

TNK 様

度重なるご指南ありがとうございました!ご指摘の通り、zabbix_agentd.confの上記内容に直したところ、障害から正常に戻り、エラーが消えました。度々御厄介おかけいたしまして申し訳ありませんでした。
今後はもう少し内容を確認しつつ設定等を行ってまいります。

ユーザー TNK の写真

少しだけ説明を追記しておきます。

Zabbix LLCのパッケージ(2.2、3.0、3.2)を使用して、RHELやCentOS
にZabbixサーバーを構築して自分自身を監視するためには、各種設
定ファイルで変更するのは、

 ・zabbix_server.confのデータベース接続情報
 ・PHPのtimezone設定

だけで良いようになっています。

今回のエージェントに接続できなかった原因は、zabbix_agentd.conf
内でZabbixエージェントに接続する時の情報を変更したにも関わら
ず、Webインターフェース上のホストの情報を、それに合わせて変
更しなかったのが主な原因です。

デフォルトでは、以下のような設定の組み合わせになっています。

Webインターフェース側:
 ホスト名: Zabbix server
 エージェントのインターフェース:
  IPアドレス: 127.0.0.1
  ポート: 10050

zabbix_agentd.conf:
 Server=127.0.0.1
 ListenPort=10050 (コメントアウト)
 ListenIP=0.0.0.0 (コメントアウト)
 ServerActive=127.0.0.1
 Hostname=Zabbix server

zabbix_server.conf:
 ListenPort=10051 (コメントアウト)
 ListenIP=0.0.0.0 (コメントアウト)

コメントアウトと書いた項目に関しては、コメントアウトされてい
るので、記載したデフォルト値が使用されます。

ListenIPで、0.0.0.0としておくと、そのサーバーのすべてのネッ
トワークインターフェースで接続を受け付ける状態(LISTEN)で待つ
ようになります。
サーバー自体の外向けのIPアドレスが、192.168.0.100であったと
すると、

 ・ローカルループバック (127.0.0.1)
 ・外部向けインターフェース (192.168.0.100)

の両方で、ListenPortのポート番号10050もしくは10051で接続を待
つわけです。

これらの設定が行われた状態で、タイプが「Zabbixエージェント」
のアイテムの値を取得する時には、ZabbixサーバーからZabbixエー
ジェントに接続して値を取得します。

接続する時には、Webインターフェースで登録されたホストのイン
ターフェースの情報を使用します。
つまり、IPアドレスが127.0.0.1でポート番号が10050です。

Zabbixエージェント側は、zabbix_agentd.conf内の設定で起動され
ているので、ListenIPが0.0.0.0ですからすべてのネットワークイ
ンターフェースで、ListenPortの10050番で接続を待ち受けている
ので接続できるわけです。

逆に、タイプが「Zabbixエージェント(アクティブ)」の場合は、
ZabbixエージェントからZabbixサーバーに接続します。

zabbix_agentd.conf内には、ServerやServerActiveの値として、
127.0.0.1というループバックのインターフェースのIPアドレスが
設定されていて、明示的に指定しなければ、デフォルトのポート番
号10051番を使用して、Zabbixサーバーへの接続を試みます。

Zabbixサーバー側は、zabbix_server.conf内の設定で、ListenIPと
してIPアドレス0.0.0.0、ListenPortとして10051番を使用して接続
を待っているので、Zabbixエージェントが接続できるわけです。

Zabbixサーバー上の監視であれば、ローカルループバックを使用す
ることもできましたが、外部のサーバーを監視するには、外部向け
のネットワークを使用することが必要です。
ZabbixサーバーからZabbixエージェントに接続する時、逆の時、そ
れぞれの情報が対応していないと接続できませんのでご注意くださ
い。
今回設定されていたと思いますが、iptablesやfirewalldなどを使
用されている場合は、必要なポート番号での通信を可能とするよう
にしておくこともお忘れなく。