はじめに
なんやかんやサーバを立てているとサーバのリソースを監視したくなります.
システムを適切に監視できれば良いこといろいろ.
- システムの異常や兆候を検知できる(場合がある)
- リソース使用状況を定量的に把握できるようになる
- システムのサイジング精度が向上する
- などなど
今回はシステム監視の定番 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 もインストールされているので,監視設定の項目についても簡単に確認することができます.
コメント