itamae | itamae를 사용하여 zabbix3.2.4를 Apache2.4.6/PHP7.1.4/MariaDB10.1.22에서 설정

개요



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을 사용하지 않으면 한 줄을 지워야합니다.

  • 포인트



    2. 관리자 사용자 계정을 추가하고 키 인증, 비밀번호 없음 sudo로 설정 정보



    일반적으로 groupadd와 useradd로 추가합니다.
    키 인증의 경우 itaee 실행 서버에서 키를 만들고 원하는 서버에 ~/.ssh/authorized_keys라는 이름으로 복사합니다. .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 설치시에 미리 설치하고 있을 것이다. 두다

    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계에서 변경된 함수를 사용하고 있으므로, 에러가 나옵니다.

    좋은 웹페이지 즐겨찾기