LoginSignup
3

More than 5 years have passed since last update.

itamae | itamaeを使用してzabbix3.2.4をApache2.4.6/PHP7.1.4/MariaDB10.1.22でセットアップする

Last updated at Posted at 2017-04-18

概要

zabbix3.2.4を CentOS7/Apache2.4.6/PHP7.1.4/MariaDB10.1.22でitamaeからセットアップする

  1. CentOS7サーバーをminimalでインストールする
  2. 管理者ユーザーアカウントを追加し、鍵認証、パスワードなしsudoに設定
  3. selinuxをDisabled、yum upgradeで最新に更新したのちに、OSを再起動する
  4. yumリポジトリ、epel/remi/zabbix/mariadbを追加
  5. 共通ツール追加など、個人的な標準CentOSセットアップを行う
  6. ldap clientやOS周りをldap認証設定セットアップ
  7. apache(httpd)/php7.1.4をインストール
  8. mariadb10.1.22をインストール
  9. mariadbでzabbix用のユーザー・DBを追加
  10. zabbix3.2.4をインストール
  11. mariadbに initial schema と data を追加
  12. zabbix serverにzabbix_server.conf、Apache用zabbix.confの変更
  13. 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を再起動する

/etc/selinux/config
SELINUX=disabled
# yumのアップグレード
yum -y upgrade

# OSの再起動
sync;sync; init 6

7. apache(httpd)/php7.1.4をインストール

yumで使用するリポジトリをoptions "--enablerepo=remi-php71"でremi-php71に使用するようにする

php71.rb
[
    "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を実行する

mariadb_zabbix.sql
CREATE DATABASE zabbix character set utf8;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';
DROP DATABASE test;
FLUSH PRIVILEGES;

mariadb_zabbix.rb
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を有効にしておく

zabbix32.rb
[
    "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ファイルを実行させる

zabbix32.rb

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への接続設定を追加する

zabbix_server.conf

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock

Apacheにincludeするzabbix.confは基本的に標準でも構わないのだが、php5系用になっているので、php7系用に変更する必要がある

zabbix.conf
    <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系で変更になった関数を使ってあるので、エラーが出ます。
スクリーンショット 2017-04-18 20.06.13.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3