【背景】
客先サーバ室内など、インターネットアクセスが不可能な環境でZabbixをインストールしたい。
他のエントリにもあるものの、ところどころはまったのでまとめ。
【環境】
今回検証したのは以下の環境。Centos6とかだと同様にはいかないかも。
● OS:Centos7
● DB:Postgresql 9.6
● Zabbix:Ver3.4
● ユーザ:zabbix
● repoフォルダ:/home/zabbix/repo
【手順(インターネット接続環境)】
おおまかな手順は以下の通り。
リポジトリフォルダの作成
$mkdir /home/zabbix/repo
リポジトリの追加
→zabbix,postgreSqlのリポジトリを以下の手順で追加
$sudo rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
$sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
rpmの入手
→インターネットアクセス可能な環境にて、必要なrpmを入手
配布元からrpmを直接wgetしてもよさそうだが、依存性を満たしたいので
$sudo yum install [パッケージ名] --downloadonly --downloaddir=[ダウンロード先]
とし、本体+依存関係を満たすパッケージをDL。
今回は[ダウンロード先]を./repoとしたので、例えばcreaterepoをDLする際は
$sudo yum install createrepo --downloadonly --downloaddir=repo
とした。今回入手したrpmは以下の通り。
● createrepo
● postgresql96-server
● postgresql96-contrib
● zabbix-server-pgsql
● zabbix-web-pgsql
● zabbix-agent
【手順(インターネット非接続環境)】
リポジトリのローカル化
インターネット接続環境からrepoフォルダをコピー
→scp [コピー元] [コピー先] なり ファイル転送ソフトなりで…
今回はコピー元環境で
$sudo tar cvzf repo.tar.gz repo
↓ファイル転送ソフトでコピー先へ…
$sudo tar xvzf repo.tar.gz
とした。
デフォルトのyumリポジトリの無効化
→デフォルトでインターネット上のリポジトリを見に行くため、これを無効化する。
$sudo mv /etc/yum.repos.d/CentOS-Base.repo{*,_bak}
ローカルリポジトリの所在や表示名称を指定
$sudo nano /etc/yum.repos.d/MyRepo.repo
[local-myrepository]
name=My repository
baseurl=file:///home/zabbix/repo
gpgcheck=0
enabled=1
createrepoのインストール
$sudo rpm -i repo/createrepo_c-libs-0.9.0-1.el7.centos.x86_64.rpm
$sudo rpm -i repo/createrepo_c-0.9.0-1.el7.centos.x86_64.rpm
createrepoを使用してローカルリポジトリを作成
$sudo yum clean all
$sudo rm -rf /var/cache/yum/
$createrepo --simple-md-filenames repo ←これやらないと更新されない?
$sudo yum list
PostgreSqlのインストールと初期処理
こちらを参照し、インストール
※postgresユーザのパスワード設定まで
インストールと初期化
$sudo yum install -y postgresql96-server postgresql96-contrib
$sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
起動と自動起動化
$sudo systemctl start postgresql-9.6.service
$sudo systemctl enable postgresql-9.6.service
postgresユーザの設定
$sudo passwd postgres
ユーザー postgres のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
DBへの接続設定
$sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
# "local" is for Unix domain socket connections only
# local all all peer
local all all trust
# IPv4 local connections:
# host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 trust
# IPv6 local connections:
# host all all ::1/128 ident
host all all ::1/128 trust
$sudo nano /var/lib/pgsql/9.6/data/postgresql.conf
# listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*' # what IP address(es) to listen on;
# port = 5432 # (change requires restart)
port = 5432 # (change requires restart)
zabbixのインストールと初期設定
インストール
$sudo yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent -y
ユーザとDBの作成
$sudo -u postgres createuser --pwprompt zabbix
$sudo -u postgres createdb -O zabbix zabbix
zabbixの初期DBを構築
$zcat /usr/share/doc/zabbix-server-pgsql-3.4.14/create.sql.gz | sudo -u zabbix psql zabbix
zabbixサーバの設定
こちらを参考に以下の設定を変更
$sudo nano /etc/zabbix/zabbix_server.conf
DBHost= ←デフォルトはlocalhostなので、コメント解除&empty化
DBName=zabbix
DBUser=zabbix
DBPassword=<username_password>
DBPort=5432 ←デフォルトは3306なので、コメント解除&5432に変更
$sudo nano /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Tokyo
firewallを無効に
こちらを参考にfirewallを設定(今回は無効化した)
$sudo systemctl stop firewalld
$sudo systemctl disable firewalld
SELinuxを無効に
こちらを参考にSELinuxを設定(今回は無効化した)
$sudo nano /etc/selinux/config
# $SELINUX=enforcing
$SELINUX=disabled
起動と自動起動化
$sudo systemctl restart zabbix-server zabbix-agent httpd
$sudo systemctl enable zabbix-server zabbix-agent httpd
Zabbixの初期設定
→ブラウザにて「http://[サーバのIP]/zabbix」にアクセス、初期インストールを行う
「Next step」を押下
「Next step」を押下
Database port:5432
Password:[前項「zabbixサーバの設定」で指定したパスワード]
を入力し「Next step」を押下
「Next step」を押下
「Next setp」を押下
「Finish」を押下
Username:Admin
Password:zabbix
にてログインできることを確認
【まとめ】
ローカルインストールは上記にて終了。
長くなったので、その後の設定は別エントリにて。