こんにちは。FL.OPSの中の人モルです。
さてさてウッシーさんから依頼されておりましたので、
今回はZabbix検証環境のバージョンアップをしていきますよー。
・・・といいたいところですが、
諸事情により今までの検証環境が使えなくなってしまったので、
今回はバージョンアップではなく新規インストールとなります。
まず構築作業に入る前に、Zabbix3.0の要件を確認します。
Zabbix3.0からの変更点は、PHPのバージョンが「5.4以降」に変更されているところぐらいでしょうか。
※ 詳細はマニュアルページを参照ください。
https://www.zabbix.com/documentation/3.0/manual/installation/requirements
それではさっそく構築作業に入りましょう。
今回使用するバージョンは以下のとおり。
OS:CentOS Linux 7.1
Zabbix:3.0(Alpha4)
①SELinuxの無効化
今回は仮想マシンを立ててなにも設定を変更していない状態からのスタートなので、
まずはSELinuxを無効化していきます。
設定を変更したらサーバを再起動して設定を確認します。
# shutdown -r now
# getenforce
Disabled
しっかり無効化されております。
②firewalldの設定
まずはゾーンを確認・・・
# firewall-cmd --get-active-zones
public
interfaces: eth0
publicというゾーンにNIC[eth0]が紐付けられています。
(検証環境のNICはeth0のみ)
では設定を追加していきます。
「firewalld」はコマンドによる設定の追加が可能です。
今回実行したコマンドは以下のとおり。
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=10050/tcp --permanent
# firewall-cmd --zone=public --add-port=10051/tcp --permanent
「--add-port」 指定したポート番号へのアクセス許可の付与
「--permanent」 OS再起動後も設定が有効
アクセス許可の設定が完了したら「firewalld」を再起動しましょう。
# systemctl restart firewalld
ちなみに、上記のコマンドを実行すると「public.xml」の内容が更新されます。
/etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> <port protocol="tcp" port="10050"/> <port protocol="tcp" port="80"/> <port protocol="tcp" port="10051"/> </zone> |
とりあえず一旦全部開けちゃいたいという方は、
以下のコマンドで「firewalld」を無効化しちゃいましょう。
# systemctl stop firewalld
# systemctl disable firewalld
③zabbixグループ、ユーザの作成
# groupadd zabbix
# useradd -g zabbix zabbix
OSの設定は以上!
では、Zabbixを利用する上で必要なパッケージをどんどんインストールしていきます。
④httpdインストール
# yum install httpd
バージョン要件(1.3.12以上)を満たしているので問題なし!
自動起動を有効化
# systemctl enable httpd
⑤phpインストール
# yum install php
バージョン要件(5.4.0以上)を満たしているので問題なし!
※OSバージョンによってはリポジトリ内のPHPバージョンが要件を満たしていない場合があります!!
その他拡張モジュールもどんどんインストール・・・
# yum install php-xml
# yum install php-mysql
# yum install php-bcmath php-mbstring php-gd
⑥mariaDBインストール
CentOS7からはOS標準パッケージが「mysql」から「mariaDB」なるものに変わっていました。
聞くところによると「mysql」とほぼ同じものらしいです。
ということで今回は「mariaDB」をインストールします。
# yum install mariadb-server mariadb-devel
自動起動を有効化
# systemctl enable mariadb
⑦DB設定
次に「mariaDB」の設定ファイルを編集します。
# vi /etc/my.cnf.d/server.cnf
以下3点、設定を追加します。
[mysqld] character-set-server=utf8 skip-character-set-client-handshake innodb_file_per_table |
いざ、mariaDB起動!
# systemctl start mariadb
⑧ZabbixDB作成
DBを起動したらZabbix用のデータベースを作成します。
# mysql -u root
MariaDB [(none)]> CREATE DATABASE zabbix CHARACTER SET UTF8;
MariaDB [(none)]> GRANT ALL PRIVILEGES on zabbix.* to zabbix@localhost IDENTIFIED BY 'zabbixpass word';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
⑨zabbixソースインストール
いよいよメインのZabbix様の登場!
まずはソースファイルを入手します。
# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Development/3.0.0alpha4/zabbix-3.0.0alpha4.tar.gz
# tar zcvxvf zabbix-3.0.0alpha4.tar.gz
時は満ちた。
さっそくコンパイルしていきます。
# ./configure --prefix=/etc/zabbix --enable-server --enable-agent --with-libcurl --with-mysql --with-net-snmp --with-libxml2
こんな感じでめっちゃ怒られた_(X3 」∠)_
ので、以下を追加インストール!
# yum install net-snmp net-snmp-devel
# yum install libcurl libcurl-devel
リベンジ!!
うまく通ってくれたようです。
# make
# make install
インストールは以上!!
⑩Zabbixの設定
ソースインストールが完了すると、以下の設定ファイルが生成されます。
# cd /etc/zabbix/etc
# ll
total 44
-rw-r--r-- 1 root root 2684 Dec 20 12:40 zabbix_agent.conf
drwxr-xr-x 2 root root 4096 Dec 20 12:40 zabbix_agent.conf.d
-rw-r--r-- 1 root root 9885 Dec 20 12:40 zabbix_agentd.conf
drwxr-xr-x 2 root root 4096 Dec 20 12:40 zabbix_agentd.conf.d
-rw-r--r-- 1 root root 14476 Dec 20 12:40 zabbix_server.conf
drwxr-xr-x 2 root root 4096 Dec 20 12:40 zabbix_server.conf.d
とりあえず最低限のDBパスワードだけ変更
# vi zabbix_server.conf
DBPassword=zabbixpassword
⑪ZabbixWebインターフェイスのインストール
Apacheのドキュメントルートを確認
# cat httpd.conf | grep Document
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/var/www/html"
確認したドキュメントルート配下に「zabbix」ディレクトリを作成し、
ZabbixWebインターフェイスのphpファイルをごっそりコピー!
# mkdir /var/www/html/zabbix
# cd /home/zabbix/zabbix-3.0.0alpha4/frontends/php
# cp -rp * /var/www/html/zabbix
ではサービスを起動してアクセスしてみましょう!
# systemctl start httpd
https://<検証環境アドレス>/zabbix
見事に「Fail」が輝きを放つ。早とちりました。_(:3 」∠)_
⑫PHPの設定
タイムゾーンやら怒られたところを修正します。
# vi /etc/php.ini
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia/Tokyo
⑬ZabbixWebインターフェイスのインストールリベンジ!
リベンジ成功
このままwebインターフェースに表示される項目を入力し、
順調にインストール完了!!と思いきや、
confファイルが作成できない・・・。
とりあえず表示されたとおりに設定ファイルをダウンロードして
指定されたパスにファイルを作成してもう一度アクセス。
ドドン
⑭自動起動設定
最後に、「zabbix-server」「zabbix-agent」のserviceファイルを作成し、自動起動の設定をしていきます。
[Unit]
Description=Zabbix Server After=network.target mariadb.service [Service]
Type=oneshot ExecStart=/etc/zabbix/sbin/zabbix_server -c /etc/zabbix/etc/zabbix_server.conf ExecReload=/etc/zabbix/sbin/zabbix_server -R config_cache_reload PIDFile=/tmp/zabbix_server.pid RemainAfterExit=yes [Install]
WantedBy=multi-user.target |
[Unit]
Description=Zabbix Agentd After=network.target [Service]
Type=oneshot ExecStart=/etc/zabbix/sbin/zabbix_agentd -c /etc/zabbix/etc/zabbix_agentd.conf PIDFile=/tmp/zabbix_agentd.pid RemainAfterExit=yes [Install]
WantedBy=multi-user.target |
自動起動を有効化
# systemctl enable zabbix-server
# systemctl enable zabbix-agent
以上!!!!
これでZabbix3.0で自由に遊べますぞ。