ZABBIX でサーバ監視その1 サーバ構築編

はじめに

なんやかんやサーバを立てているとサーバのリソースを監視したくなります.

システムを適切に監視できれば良いこといろいろ.

  • システムの異常や兆候を検知できる(場合がある)
  • リソース使用状況を定量的に把握できるようになる
  • システムのサイジング精度が向上する
  • などなど

今回はシステム監視の定番 ZABBIX のサーバを構築します.

ZABBIX について

ZABBIX を使うとシステムの様々な状態を監視し,メール等での通知やイベントに応じたアクションを実行することができます.

  • CPU 使用率
  • メモリ使用率
  • ディスク使用率
  • ディスク I/O
  • マウント状態
  • NIC の死活監視
  • サービスのステータス監視
  • ログ監視
  • SNMP トラップ
  • などなど

ZABBIX サーバ構築

構築環境

今回は CentOS8 上に ZABBIX サーバを構築します.

$ cat /etc/centos-release
 CentOS Linux release 8.3.2011

Apache インストール

ZABBIX では管理用の WEB-UI のバックエンドに Apahce もしくは NGINX を選択することができます.

今回は Apache(httpd) を使って構築を進めます.インストールしたらサービスの起動と自動起動を有効化します.

$ sudo dnf install httpd
$ sudo systemctl start httpd.service 
$ sudo systemctl enable httpd.service 

MySQL インストール

DB のバックエンドは MySQL もしくは PostgreSQL を選択することができます.

今回は MySQL を使って構築を進めます.Apache と同様にインストール,サービス起動,自動起動有効化を行います.

$ sudo dnf install mysql-server
$ sudo systemctl start mysqld.service 
$ sudo systemctl enable mysqld.service

インストールが完了したら MySQL を初期設定します.次のコマンドでインタラクティブに初期設定を進めることができます.

$ mysql_secure_installation

初期設定が完了したら ZABBIX 用のテーブルとアカウントを作成します.

$ mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit; 

ZABBIX インストール

CentOS8 用のリポジトリを登録します.

$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
$ sudo dnf clean all

ZABBIX サーバとエージェントのパッケージをインストールします.

$ sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent

ZABBIX のテーブル情報を MySQL にインポートします.

$ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix 

vi などのエディタで DB のパスワードを ZABBIX サーバの設定ファイルに記載します.

$ sudo cat /etc/zabbix/zabbix_server.conf | grep ^DBPassword
 DBPassword=password

php のタイムゾーンをサーバに合わせて設定します.タイムゾーンは /etc/php-fpm.d/zabbix.conf で設定してもいいし,/etc/php.ini で設定してもいい.

$ timedatectl | grep 'Time zone'
                 Time zone: Asia/Tokyo (JST, +0900)
$ cat /etc/php.ini | grep timezone
 ; Defines the default timezone used by the date functions
 ; http://php.net/date.timezone
 ;date.timezone =
 date.timezone = "Asia/Tokyo"

サービスを起動して自動起動を有効化します.

$ sudo systemctl restart zabbix-server zabbix-agent httpd php-fpm
$ sudo systemctl enable zabbix-server zabbix-agent httpd php-fpm 

ZABBIX サーバ初期設定

ブラウザから ZABBIX サーバ (http://${server_ip_or_name}/zabbix) に接続して初期設定を進めます.

初期アカウントで正常にログインでき,ZABBIX サーバが動作していれば構築は完了です.

  • Username: Admin
  • Password: zabbix

おわりに

ZABBIX サーバ構築の流れを説明しました.サーバの構築とともに ZABBIX サーバ自身の監視が出来るよう zabbix-agent もインストールされているので,監視設定の項目についても簡単に確認することができます.

コメント

タイトルとURLをコピーしました