ZABBIX

システムの状態を監視し、以上があった場合にアラートを上げたりしてくれます。また、複数のサーバーの情報を集約してくれるので、台数が多い場合でも管理が楽になります。

インストール

基本は公式サイトのdocumentationにあるserver installation with mysqlと、frontend installationを参考にしています。

  1. インストールします。
    # apt install zabbix-server-mysql zabbix-agent zabbix-frontend-php
  2. DBの準備として、ZABBIX用のデータベースとユーザーを作成します。
    # mariadb ※これだけでMariaDBにrootでログインできます。
    MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
    Query OK, 1 row affected (0.06 sec)
    
    MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'パスワード';
    Query OK, 0 rows affected (0.06 sec)
    
    MariaDB [(none)]> quit
    Bye
    utf8mb4ではなく普通のutf8でDBを作成していますが、ZABBIXはまだutf8mb4に対応していませんのでこれで正しいです
  3. 作成したユーザーの情報などを、/etc/zabbix/zabbix_server.confに記載します。
    ### Option: DBHost
    #       Database host name.
    #       If set to localhost, socket is used for MySQL.
    #       If set to empty string, socket is used for PostgreSQL.
    #
    # Mandatory: no
    # Default:
    # DBHost=localhost
    
    DBHost=localhost
    (中略)
    ### Option: DBPassword
    #       Database password. Ignored for SQLite.
    #       Comment this line if no password is used.
    #
    # Mandatory: no
    # Default:
    # DBPassword=
    
    DBPassword=zabbix
    
  4. DBの中身を作成します。マニュアルとは違う場所にsql文があるので注意してください。また、3つのsql文の実行順はこちらのDatabase creation scriptsに書いてあります。
    $ cd /usr/share/zabbix-server-mysql ※docディレクトリではありません
    zcat schema.sql.gz | mariadb -uzabbix -pパスワード zabbix
    zcat images.sql.gz | mariadb -uzabbix -pパスワード zabbix
    zcat data.sql.gz | mariadb -uzabbix -pパスワード zabbix
  5. web UIのためのconfファイルとして/etc/apache2/conf-available/zabbix-frontend-php.confがありますが、タイムゾーンは手で設定しなければならないので修正します。
    <IfModule mod_php5.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
        php_value date.timezone Asia/Tokyo
    </IfModule>
    
    <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 date.timezone Europe/Riga
        php_value date.timezone Asia/Tokyo
    </IfModule>
    
  6. ここからの作業はweb UIからになるので、UIを準備します。
    といっても、必要な設定は/etc/apache2/conf-available/zabbix-frontend-php.confにあるので、それをzabbixのUIを表示したいバーチャルホストで有効化するだけです。
    <VirtualHost *:443>
            Servername example.com
            (中略)
            Include /etc/apache2/conf-available/zabbix-frontend-php.conf
    </VirtualHost>
    # a2enconf zabbix-frontend-phpとすればすべてのバーチャルホストでzabbixが見えるようにもできますが、そんなに見える必要もないのでここでは特定ホストだけにしています。
  7. https://.../zabbixにアクセスして、インストール画面を出します。
    1. Welcomeがの画面が表示されたら開始です。Next stepをクリックします。
    2. Check of pre-requisitesで、何か必要な設定が足りないとNGが出ます。全部OKになるまで、必要な設定を修正してください。
    3. Configure DB connectionで、先に作成したDBやユーザー情報を入れてください。
    4. Zabbix server detailsはデフォルトで良いです。Nameがどこで使われるのかはよく分かりません…。
    5. Pre-installation summaryで設定内容を確認します。
    6. Installでエラーが出ますが、指定されたファイルをダウンロードして、/etc/zabbix/zabbix.conf.phpとして保存すれば良いだけです。
    7. インストールが完了すると、ログイン画面が出ます。初期ユーザーはユーザー名がAdmin(Aは大文字)で、パスワードはzabbixです。
  8. サーバーを起動します。
    # service zabbix-server start

ユーザー追加

ユーザーの追加は、公式ドキュメントにスクリーンショット付きで説明があるので、ここでは割愛します。
https://www.zabbix.com/documentation/3.0/manual/quickstart/login

デフォルトで存在する管理者のAdminアカウントは初期パスワードも公開されているので、適宜別のパスワードに変更します。

監視対象の追加

基本的には、zabbix-agentだけ監視対象に用意すれば良いです。

  1. インストールします。
    # apt install zabbix-agent
  2. /etc/zabbix/zabbix_agent.confに接続先サーバー情報を設定します。
    ### Option: Server
    #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.
    #       Incoming connections will be accepted only from the hosts listed here.
    #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
    #
    # Mandatory: no
    # Default:
    # Server=
    
    Server=xxx.xxx.xxx.xxx
    (中略)
    ### Option: ServerActive
    #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix servers for active checks.
    #       If port is not specified, default port is used.
    #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
    #       If port is not specified, square brackets for IPv6 addresses are optional.
    #       If this parameter is not specified, active checks are disabled.
    #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
    #
    # Mandatory: no
    # Default:
    # ServerActive=
    
    ServerActive=xxx.xxx.xxx.xxx
    

ZABBIXそのものの使い方

ZABBIXの公式サイトにスクリーンショット付きの説明があるので、監視対象の設定のしかたや通知方法の設定などはこちらを参照してください。
https://www.zabbix.com/documentation/3.0/start


目次へ戻る