概要
zabbix3.2.4を CentOS7/Apache2.4.6/PHP7.1.4/MariaDB10.1.22でitamaeからセットアップする
- CentOS7サーバーをminimalでインストールする
- 管理者ユーザーアカウントを追加し、鍵認証、パスワードなしsudoに設定
- selinuxをDisabled、yum upgradeで最新に更新したのちに、OSを再起動する
- yumリポジトリ、epel/remi/zabbix/mariadbを追加
- 共通ツール追加など、個人的な標準CentOSセットアップを行う
- ldap clientやOS周りをldap認証設定セットアップ
- apache(httpd)/php7.1.4をインストール
- mariadb10.1.22をインストール
- mariadbでzabbix用のユーザー・DBを追加
- zabbix3.2.4をインストール
- mariadbに initial schema と data を追加
- zabbix serverにzabbix_server.conf、Apache用zabbix.confの変更
- zabbix server/Apache の起動(再起動)
内容
-
概要の1〜3までは、直接コンソールから手動コマンドで行う。
-
4〜13は、itamae実行サーバーから、目的のサーバーへ向けて実行する。
逐一itamaeコマンドでセットアップすると、Infrastructure as codeが台無しになるので、実行シェルスクリプトにまとめて構築・管理する
# 一応、一度 dry-runモードで動作確認をしておく ./itamae_centos7-zabbix.sh --dry-run # 本実行 ./itamae_centos7-zabbix.sh
使用するitamaeのレシピとレシピ実行スクリプトは、githubに上げてある。
実行スクリプトは、RVMのgemset対応になっているのでRVMを使用しないならば、その1行を消す必要あり
ポイント
2. 管理者ユーザーアカウントを追加し、鍵認証、パスワードなしsudoに設定について
普通に、groupadd と useradd で追加する。
鍵認証では、itamae実行サーバーで鍵を作成し、目的のサーバーに ~/.ssh/authorized_keys という名前でコピーしておく、この時 ~のパーミッションは700、~/.ssh のパーミッションは700、~/.ssh/authorized_keys のパーミッションは600にする必要がある
3. selinuxをDisabled、yum upgradeで最新に更新したのちに、OSを再起動する
SELINUX=disabled
# yumのアップグレード
yum -y upgrade
# OSの再起動
sync;sync; init 6
7. apache(httpd)/php7.1.4をインストール
yumで使用するリポジトリをoptions "--enablerepo=remi-php71"でremi-php71に使用するようにする
[
"libpng",
"libXpm",
"libX11",
"libxslt",
"dejavu-fonts-common",
"dejavu-sans-fonts",
"t1lib",
"fontpackages-filesystem",
"libXau",
"php",
"php-devel",
"php-cli",
"php-gd",
"php-bcmath",
"php-ldap",
"php-xml",
"php-common",
"php-json",
"php-mysqlnd",
"php-opcache",
"php-mbstring",
"php-pecl-mysql"
].each{| pkg |
package pkg do
action :install
options "--enablerepo=remi-php71"
end
}
9. mariadbでzabbix用のユーザー・DBを追加
実行するSQLをファイルにまとめ、一度/tmpにコピーしてそのSQLを実行する
CREATE DATABASE zabbix character set utf8;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';
DROP DATABASE test;
FLUSH PRIVILEGES;
execute "CREATE DATABASE" do
action :run
command "/bin/mysql -uroot < /tmp/mariadb_zabbix.sql"
end
10. zabbix3.2.4をインストール
基本的に、依存関係でPHP関連のパッケージはPHPインストール時に予めインストールしている筈だが、一応インストール漏れがあった場合に、php7.1系関連をインストールするために、remi-php71を有効にしておく
[
"zabbix-server-mysql",
"zabbix-web-mysql",
"zabbix-web-japanese",
].each{| pkg |
package pkg do
action :install
options "--enablerepo=remi-php71"
end
}
11. mariadbに initial schema と data を追加
zabbix-serverをインストール際にコピーされるsqlファイルを実行させる
execute "import initial schema and data" do
action :run
command "zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | /bin/mysql -uzabbix -pzabbix -Dzabbix"
end
12. zabbix serverにzabbix_server.conf、Apache用zabbix.confの変更
zabbix serverに対して、DBへの接続設定を追加する
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
Apacheにincludeするzabbix.confは基本的に標準でも構わないのだが、php5系用になっているので、php7系用に変更する必要がある
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
</IfModule>
現状
zabbix自体のソースコードがphp5系向けに書いてあるようで、php7系で変更になった関数を使ってあるので、エラーが出ます。