実際の商用環境などでは、監視項目の移行などをしっかり検討する必要があると思うが、今回は自分の検証環境であり影響など皆無であるため、心機一転MIRACLE ZBX 3.0で新規構築を行うことにした。
いろいろな都合があって、ZabbixではなくMIRACLE ZBXで構築しているが、インストール方法や設定方法に差は無いはずである。したがって記事内では、MIRACLE ZBXもZabbixもどちらも同じ意味として扱うことにする。
なお、MIRACLE ZBXの詳細については、以下メーカーURLを参照してほしい。
・コミュニティ版 統合監視ソフトウェア「MIRACLE ZBX」
https://www.miraclelinux.com/product-service/zabbix/lineup/oss
また、ZabbixはMySQLとPostgreSQLの2種類のDBを選択することができるが、今回はPostgreSQLを利用する前提の構築手順となる。また、インターネット接続環境が無いことによるyumによるインストールが不可であることを想定して、RPMによる個別インストールの方法を記載する。
環境
・OS:CentOS 7.4.1708・Zabbix:Miracle ZBX 3.0
事前準備
SELinuxが有効の場合、Zabbixの起動に失敗するため停止しておく。<変更前>
# cat /etc/selinux/config | grep -v -e "^#" -e "^$"
------------------------------
SELINUX=enforcing
SELINUXTYPE=targeted
------------------------------
<変更後>
# cat /etc/selinux/config | grep -v -e "^#" -e "^$"
------------------------------
SELINUX=disabled
SELINUXTYPE=targeted
------------------------------
有効化のためOSを再起動する。
# reboot
再起動後、設定が反映されていることを確認する。
# getenforce
------------------------------
Disabled
------------------------------
firewalldが有効となっている場合、Zabbixの管理画面へのWebアクセスができないため無効化しておく。
# systemctl stop firewalld
# systemctl disable firewalld
CentOSのインストールメディア内のRPMパッケージを使ってインストールを行うため、事前にメディアをマウントしておく。読み取り専用である旨のメッセージが表示されるが、特に問題はない。
# mount /dev/cdrom /media/
------------------------------
mount: /dev/sr0 is write-protected, mounting read-only
------------------------------
PostgreSQLのインストール
ZabbixのDBとしてPostgreSQLを使うので、まずはPostgreSQLをインストールする。# cd /media/Packages
# rpm -ivh postgresql-libs-9.2.18-1.el7.x86_64.rpm
------------------------------
準備しています... ################################# [100%]
更新中 / インストール中...
1:postgresql-libs-9.2.18-1.el7 ################################# [100%]
------------------------------
以降、rpmコマンド実行時の表示については省略して、インストールコマンドのみ記載していく。PostgreSQLは他に以下2つのRPMもインストールしておく。
# rpm -ivh postgresql-9.2.18-1.el7.x86_64.rpm
# rpm -ivh postgresql-server-9.2.18-1.el7.x86_64.rpm
確認して、3つのRPMがインストールされていればOK。
# rpm -qa | grep postgre
------------------------------
postgresql-libs-9.2.18-1.el7.x86_64
postgresql-server-9.2.18-1.el7.x86_64
postgresql-9.2.18-1.el7.x86_64
------------------------------
MIRACLE ZBX 3.0のダウンロード
MIRACLE ZBXのコミュニティ版(無償版)を公式サイトからダウンロードする。・Index of /zbx/3.0/7.x/x86_64/RPMS
http://ftp.miraclelinux.com/zbx/3.0/7.x/x86_64/RPMS/
MIRACLE ZBX3.0のPostgreSQL版であれば、以下ファイルをダウンロードしておけばよい。
------------------------------
fping-2.4b2-17.el7.centos.x86_64.rpm
iksemel-1.4-2.1.el7.centos.x86_64.rpm
miracle-zbx-agent-3.0.11-1.ML7.x86_64.rpm
miracle-zbx-get-3.0.11-1.ML7.x86_64.rpm
miracle-zbx-sender-3.0.11-1.ML7.x86_64.rpm
miracle-zbx-server-pgsql-3.0.11-1.ML7.x86_64.rpm
miracle-zbx-web-3.0.11-1.ML7.x86_64.rpm
miracle-zbx-web-japanese-3.0.11-1.ML7.x86_64.rpm
miracle-zbx-web-pgsql-3.0.11-1.ML7.x86_64.rpm
------------------------------
また、後ほど追加で必要となるRPMもあるので、こちらはインターネット検索をしてダウンロードしておく。
------------------------------
php-bcmath-5.4.16-42.el7.x86_64.rpm
php-mbstring-5.4.16-42.el7.x86_64.rpm
php-mbstring-5.4.16-42.el7.x86_64.rpm
------------------------------
・Welcome to the RPM repository on fr2.rpmfind.net
https://www.rpmfind.net/linux/RPM/index.html
ダウンロードリンクは変更となる可能性があるが、以下2つがダウンロードURLとなる。
・php-mbstring-5.4.16-42.el7.x86_64.rpm
ftp://195.220.108.108/linux/centos/7.4.1708/os/x86_64/Packages/php-mbstring-5.4.16-42.el7.x86_64.rpm
・php-bcmath-5.4.16-42.el7.x86_64.rpm
ftp://195.220.108.108/linux/centos/7.4.1708/os/x86_64/Packages/php-bcmath-5.4.16-42.el7.x86_64.rpm
これらのファイルは「/root/ZBX」ディレクトリに配置しておく。
Perlのインストール
PerlはRPMで入れようと思うと依存関係が複雑すぎていつまでもインストールができない。そこで、インストールメディアのPackagesディレクトリをリポジトリ登録して、yumを使ってインストールすることにする。この方法は以下の過去記事にも記載している。
・Red Hat Enterprise LinuxやCentOSでローカルディレクトリをyumのリポジトリとして設定する方法
https://tech-mmmm.blogspot.jp/search?q=yum
まずは、createrepoをインストールする。
# cd /media/Packages
# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
# rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
# rpm -ivh createrepo-0.9.9-26.el7.noarch.rpm
OSメディアのPackagesディレクトリは読み取り専用となっているので、一度ローカルにコピーしておく。
# mkdir /root/perl_rpms
# cp /media/Packages/perl* /root/perl_rpms/
# createrepo /root/perl_rpms/
------------------------------
Spawning worker 0 with 218 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
------------------------------
次にyumのリポジトリ設定を行う。/etc/yum.repos.dディレクトリをバックアップしたのち、ディレクトリの中身を空にし、local.repoというファイルを新規作成する。
# cp -r /etc/yum.repos.d /etc/yum.repos.d_bak
# rm -f /etc/yum.repos.d/*
# vi /etc/yum.repos.d/local.repo
------------------------------
[local-repository]
name=local repository
baseurl=file:///root/perl_rpms/
gpgcheck=0
enabled=1
------------------------------
yumを実行して、リポジトリリストにlocal-repositoryが表示され、「有効」となっていればOK。
# yum check-update
------------------------------
読み込んだプラグイン:fastestmirror
local-repository | 2.9 kB 00:00
local-repository/primary_db | 166 kB 00:00
Loading mirror speeds from cached hostfile
------------------------------
# yum repolist all
------------------------------
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
リポジトリー ID リポジトリー名 状態
local-repository local repository 有効: 218
repolist: 218
------------------------------
yumを使ってperl-libsをインストールする。
# yum -y install perl-libs
------------------------------
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ perl-libs.x86_64 4:5.16.3-291.el7 を インストール
--> 依存性の処理をしています: perl(:MODULE_COMPAT_5.16.3) のパッケージ: 4:perl-libs-5.16.3-291.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ perl.x86_64 4:5.16.3-291.el7 を インストール
~(中略)~
perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7
perl-threads.x86_64 0:1.87-4.el7 perl-threads-shared.x86_64 0:1.43-6.el7
完了しました!
------------------------------
zabbix-serverのインストール
前提パッケージが多数必要となるので、以下順にRPMファイルをインストールしていく。# cd /media/Packages/
# rpm -ivh OpenIPMI-modalias-2.0.19-15.el7.x86_64.rpm
# rpm -ivh OpenIPMI-libs-2.0.19-15.el7.x86_64.rpm
# rpm -ivh unixODBC-2.3.1-11.el7.x86_64.rpm
# rpm -ivh net-snmp-libs-5.7.2-24.el7_2.1.x86_64.rpm
# rpm -ivh lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64.rpm
# rpm -ivh net-snmp-agent-libs-5.7.2-24.el7_2.1.x86_64.rpm
# rpm -ivh perl-Data-Dumper-2.145-3.el7.x86_64.rpm
# rpm -ivh net-snmp-5.7.2-24.el7_2.1.x86_64.rpm
# cd /root/ZBX
# rpm -ivh fping-2.4b2-17.el7.centos.x86_64.rpm
# rpm -ivh iksemel-1.4-2.1.el7.centos.x86_64.rpm
# rpm -ivh miracle-zbx-server-pgsql-3.0.11-1.ML7.x86_64.rpm
zabbix-webのインストール
こちらも前提パッケージをインストールしたのち、zabbix-webをインストールする。なお、zabbix-webは、3つのRPMファイルを同時にインストールしなければ失敗するため注意する。# cd /media/Packages/
# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm
# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
# rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm
# rpm -ivh httpd-tools-2.4.6-45.el7.centos.x86_64.rpm
# rpm -ivh httpd-2.4.6-45.el7.centos.x86_64.rpm
# rpm -ivh libzip-0.10.1-8.el7.x86_64.rpm
# rpm -ivh php-common-5.4.16-42.el7.x86_64.rpm
# rpm -ivh php-cli-5.4.16-42.el7.x86_64.rpm
# rpm -ivh php-5.4.16-42.el7.x86_64.rpm
# rpm -ivh traceroute-2.0.22-2.el7.x86_64.rpm
# rpm -ivh libXpm-3.5.11-3.el7.x86_64.rpm
# rpm -ivh t1lib-5.1.2-14.el7.x86_64.rpm
# rpm -ivh php-gd-5.4.16-42.el7.x86_64.rpm
# rpm -ivh php-pdo-5.4.16-42.el7.x86_64.rpm
# rpm -ivh php-pgsql-5.4.16-42.el7.x86_64.rpm
# rpm -ivh vlgothic-p-fonts-20130607-2.el7.noarch.rpm
# rpm -ivh php-xml-5.4.16-42.el7.x86_64.rpm
# rpm -ivh php-ldap-5.4.16-42.el7.x86_64.rpm
# rpm -ivh php-ldap-5.4.16-42.el7.x86_64.rpm
# cd /root/ZBX
# rpm -ivh php-bcmath-5.4.16-42.el7.x86_64.rpm
# rpm -ivh php-mbstring-5.4.16-42.el7.x86_64.rpm
# rpm -ivh miracle-zbx-web-3.0.11-1.ML7.x86_64.rpm miracle-zbx-web-pgsql-3.0.11-1.ML7.x86_64.rpm miracle-zbx-web-japanese-3.0.11-1.ML7.x86_64.rpm
------------------------------
警告: miracle-zbx-web-3.0.11-1.ML7.x86_64.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID ca5c2834: NOKEY
準備しています... ################################# [100%]
更新中 / インストール中...
1:miracle-zbx-web-pgsql-3.0.11-1.ML################################# [ 33%]
2:miracle-zbx-web-3.0.11-1.ML7 ################################# [ 67%]
3:miracle-zbx-web-japanese-3.0.11-1################################# [100%]
------------------------------
その他zabbix関連のRPMインストール
後はzabbixのエージェントとツールをインストールすれば、RPMインストール作業は終了となる。# rpm -ivh miracle-zbx-agent-3.0.11-1.ML7.x86_64.rpm
# rpm -ivh miracle-zbx-sender-3.0.11-1.ML7.x86_64.rpm
# rpm -ivh miracle-zbx-get-3.0.11-1.ML7.x86_64.rpm
最終的にzabbixのインストール状態は以下の通りとなる。
# rpm -qa | grep zbx
------------------------------
miracle-zbx-web-3.0.11-1.ML7.x86_64
miracle-zbx-get-3.0.11-1.ML7.x86_64
miracle-zbx-server-pgsql-3.0.11-1.ML7.x86_64
miracle-zbx-web-pgsql-3.0.11-1.ML7.x86_64
miracle-zbx-web-japanese-3.0.11-1.ML7.x86_64
miracle-zbx-sender-3.0.11-1.ML7.x86_64
miracle-zbx-agent-3.0.11-1.ML7.x86_64
------------------------------
PostgreSQL初期設定
PostgreSQLを初期化コマンドにて初期化する。# postgresql-setup initdb
------------------------------
Initializing database ... OK
------------------------------
PostgreSQLを起動させる。
# systemctl start postgresql
# systemctl status postgresql
------------------------------
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: active (running) since 水 2017-11-08 22:56:00 JST; 3s ago
~(以下略)~
------------------------------
PostgreSQLにZabbix用のユーザーの作成を行う。
# su - postgres
とりあえず、postgresユーザーのパスワードを変更しておく。
-bash-4.2$ psql -c "alter user postgres with password '<任意のパスワード>'"
------------------------------
ALTER ROLE
------------------------------
-bash-4.2$ createuser zabbix -P -S -R -D
------------------------------
新しいロールのためのパスワード:
もう一度入力してください:
------------------------------
※createuserのオプションの意味
-P:ユーザーのパスワードを設定
-S:スーパーユーザーにならない
-R:新しいロールの作成を禁止
-D:データベースの作成を禁止
次にデータベースの作成を行う。
-bash-4.2$ createdb -O zabbix -E UTF8 zabbix
※createdbのオプションの意味
-O:データベースの所有者ユーザーを指定
-E:文字コードを設定 (今回はUTF-8で設定)
-bash-4.2$ exit
PostgreSQLのアクセス設定を行う。
# vi /var/lib/pgsql/data/pg_hba.conf
<設定前>
# cat pg_hba.conf | grep -v -e "^#" -e "^$"
------------------------------
local all all peer
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
------------------------------
<設定後>
# cat pg_hba.conf | grep -v -e "^#" -e "^$"
------------------------------
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
------------------------------
設定反映のため、一度PostgreSQLを再起動させる。
# systemctl restart postgresql
Zabbixにはデータベースの初期設定用のSQLが用意されているので、以下コマンドにて流し込みを行う。
# zcat /usr/share/doc/miracle-zbx-server-pgsql-3.0.11/create.sql.gz | psql -U zabbix zabbix -W
------------------------------
ユーザ zabbix のパスワード:
NOTICE: CREATE TABLE / PRIMARY KEYはテーブル"maintenances"に暗黙的なインデックス"maintenances_pkey"を作成します
CREATE TABLE
CREATE INDEX
CREATE INDEX
NOTICE: CREATE TABLE / PRIMARY KEYはテーブル"hosts"に暗黙的なインデックス"hosts_pkey"を作成します
CREATE TABLE
CREATE INDEX
CREATE INDEX
~(中略)~
INSERT 0 1
INSERT 0 1
COMMIT
------------------------------
※psqlのオプションの意味
-U:データベースへの接続ユーザーを指定
-W:パスワード入力を求める
以上でPostgreSQLの設定は完了となる。
Zabbix初期設定
最後にZabbixの設定となる。PostgreSQLの接続情報を追記する。<設定前>
# cat /etc/zabbix/zabbix_server.conf | grep -v -e "^#" -e "^$"
------------------------------
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
SNMPTrapperFile=/var/log/zabbix/zabbix_traps.tmp
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
------------------------------
<設定後>
# cat /etc/zabbix/zabbix_server.conf | grep -v -e "^#" -e "^$"
------------------------------
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=<PostgreSQLのzabbixユーザーのパスワード>
DBPort=5432
SNMPTrapperFile=/var/log/zabbix/zabbix_traps.tmp
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
------------------------------
ZabbixのApacheの設定ファイルがすべてコメントアウトされているため、行頭の#を削除しアンコメントする。ただし、「Apache 2.2」と表示されている箇所は不要なので削除する。最終的には以下の通りの設定となる。
# cat /etc/httpd/conf.d/zabbix.conf | grep -v -e "^#" -e "^$"
------------------------------
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options -FollowSymLinks
AllowOverride Limit
<LimitExcept POST GET>
Order deny,allow
Deny from all
</LimitExcept>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
php_value max_execution_time 600
php_value date.timezone Asia/Tokyo
php_value memory_limit 256M
php_value post_max_size 32M
php_value upload_max_filesize 16M
php_value max_input_time 600
php_value always_populate_raw_post_data -1
</Directory>
<Directory ~ "^/usr/share/zabbix/(conf|api|include|local)/">
<IfModule mod_authz_core.c>
# Apache 2.4
Require all denied
</IfModule>
<files *.php>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</files>
</Directory>
------------------------------
以上でZabbixの設定は完了となる。
Zabbix起動
それではZabbixを起動させていく。# systemctl start zabbix-server
# systemctl start zabbix-agent
# systemctl start httpd
合わせて、OS起動時の自動起動設定も有効にしておく。
# systemctl enable postgresql
# systemctl enable zabbix-server
# systemctl enable zabbix-agent
# systemctl enable httpd
管理画面にアクセス確認
管理画面にアクセスして、初期設定とログイン確認を行う。http://<インストールしたサーバーのIPアドレス>/zabbix
初回アクセス時はセットアップ画面が表示されるので、「Next step」ボタンを押下する。
前提条件の確認が行われるので、すべて「OK」であることを確認したのち、「Next step」ボタンを押下する。
以下値を入力し、「Next step」ボタンを押下する。
・Database port:5432
・Password:<PostgreSQLのzabbixユーザーのパスワード>
そのまま「Next step」ボタンを押下する。
そのまま「Next step」ボタンを押下する。
「Finish」ボタンを押下する。
ログイン画面が表示されるので、以下でログインする。
・ユーザー名:Admin (大文字小文字に注意)
・パスワード:zabbix
Zabbixのダッシュボードが正常に表示されればOK。
「設定」→「ホスト」を選択すると、Zabbix serverが監視登録されている。デフォルトでは「ステータス」が「無効」となっているので、「無効」の文字をクリックして、監視を有効化しておこう。
以上でZabbixのインストールは終了となる。
ここから使える監視サーバーにするためには、監視対象の追加や通知設定等を実施していく必要があるが、それはまた別の機会に記すことにする。
0 件のコメント:
コメントを投稿