CentOS7にZabbix4.0をインストールして、初期設定および管理コンソールへログイン出来るまでの手順をまとめています。
統合監視ソフトウェア Zabbix とは
サーバー・ネットワーク・アプリケーションを集中監視することができる、オープンソースの統合監視ソフトウェアです。
Zabbixエージェントとは、監視対象のサーバー上で動作させ、監視データのステータスを収集します。受信した監視データは、Zabbixサーバーに送られます。
Zabbixサーバーは、監視項目 [アイテム] を設定して、監視対象 [ホスト] から、「Zabbixエージェント」や「SNMP」などを使用して 定期的にステータス情報を収集し、データベースに保存します。
アイテムで収集した情報をもとに、閾値を設けて障害を検知できます。
構築方法
Zabbixのインストールには、一般的なアプリケーションのインストール方法である「パッケージシステムを利用した方法」と、「ソースコードからコンパイルを行ってインストールを行う方法」があります。
今回は、導入や管理の容易さから、RPMパッケージシステムを利用したインストール方法で進行します。
今回の環境
OS:CentOS 7.9.2009
PHP:7.2.34
Apache:2.4.6(CentOS 7標準)
MySQL:8.0.23
SSHによるリモート接続で操作しています。
CentOS7のインストール
サーバー構築の基本 CentOS7をインストールします。
手順は割愛しますが、以下のリンク先を参考にインストールできます。
SELinuxをdisabledにする
これをしないとのちにZabbixサーバーの起動に支障が出るので変更しておきます。
# vi /etc/selinux/config
SELINUX=enforcing
↓
SELINUX=disabled
SELinuxの設定を変更した場合は再起動してください。
# reboot
Firewall
サービスの停止
# systemctl stop firewalld.service
サービスの自動起動解除
# systemctl disable firewalld.service
PHPのインストール
リポジトリの登録
# yum -y install epel-release
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
インストール
# yum -y install --enablerepo=remi,remi-php72 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-ldap php-bcmath
iniファイルの設定変更
# vi /etc/php.ini
;date.timezone =
↓
date.timezone = Asia/Tokyo
Apacheの設定
CentOS7にはApacheは標準でインストールされているためそのまま利用します。
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 16 2020 16:18:20
httpdサービスの起動
# systemctl start httpd
サービスの自動起動設定
# systemctl enable httpd
MySQLの設定
リポジトリの登録
# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
インストール
# yum -y install mysql-community-server mysql-community-devel mysql-utilities
バージョン確認
# mysql --version
mysql Ver 8.0.23 for Linux on x86_64 (MySQL Community Server - GPL)
設定変更
MySQL8.0の認証処理はより安全で高速なプラグイン(caching_sha2_password)に変更されましたが、 Zabbixが未対応のため従来のプラグイン(mysql_native_password)を使用できるようにします。
#vi /etc/my.cnf
# default-authentication-plugin=mysql_native_password
↓
default-authentication-plugin=mysql_native_password
サービスの起動
# systemctl start mysqld ※少し時間が掛かるかもしれませんが、操作せずに待ちます。
サービスの自動起動設定
# systemctl enable mysqld
MySQLで使用するrootアカウントの初期パスワードを変更します。
# grep password /var/log/mysqld.log
2021-02-20T11:14:42.668302Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 0CSikliwks-Z
太字がroot@localhost ユーザーのパスワードです
# mysql_secure_installation –use-default
Securing the MySQL server deployment.
Enter password for user root:上記の太字のパスワードを入力
The existing password for the user account root has expired. Please set a new password.
New password:新しいパスワードを入力
Re-enter new password:新しいパスワードを再入力
新しいパスワードは8文字以上で英数大文字小文字と記号が含まれていることが必須となっています
Zabbixのインストール
リポジトリの登録
# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
インストール
# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent
パッケージ名 | 内容 |
---|---|
zabbix-server-mysql | Zabbixサーバ本体 |
zabbix-web-mysql | Webサーバ(Webインターフェース) |
zabbix-web-japanese | 日本語環境に必要なパッケージ |
zabbix-agent | Zabbixエージェント |
設定変更
# vi /etc/zabbix/zabbix_server.conf
# DBPassword=
↓
DBPassword=Zabbix2021#
# vi /etc/httpd/conf.d/zabbix.conf
<IfModule mod_php5.c>
↓
<IfModule mod_php7.c>
# php_value date.timezone Europe/Riga
↓
php_value date.timezone Asia/Tokyo
データベースの作成とユーザーの追加
# mysql -u root -p
Enter password:先ほど設定したrootの新しいパスワードを入力
zabbixというデータベースを作成
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected, 2 warnings (0.22 sec)
mysql> CREATE USER zabbix@localhost IDENTIFIED BY 'Zabbix2021#';
Query OK, 0 rows affected (0.14 sec)
アカウント zabbix と、パスワード Zabbix2021# を設定
パスワードは任意に変更して下さい
mysql> GRANT ALL ON zabbix.* TO zabbix@localhost;
Query OK, 0 rows affected (0.12 sec)
zabbix@localhostに、zabbixデータベースのすべてのテーブルに対しあらゆる権限を付与する(権限の付与以外の)
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
mysql> quit;
Bye
スキーマとデータベースのインポート
# zcat /usr/share/doc/zabbix-server-mysql-4.0.28/create.sql.gz | mysql -u zabbix --password=Zabbix2021# zabbix
4.0.28の部分はインストールしたバージョンによって変わります。
--password=の部分も、設定したパスワードに差し替えてください。
インストールしたバージョンは以下のコマンドで確認できます。
# find /usr/share/doc/ -name “zabbix-server-mysql*”
/usr/share/doc/zabbix-server-mysql-4.0.28
「mysql: [Warning] Using a password on the command line interface can be insecure.」と表示された場合は、「警告:コマンドラインインターフェイスでパスワード使うのは安全ではない場合があります」というメッセージです。プロンプトが戻らず固まったようになりますが、処理に時間が掛かるので待ちましょう。
※ちなみに、ここでは設定しませんが、このWarningは、パスワードを外部ファイルから読み出すようにすれば出なくなります。
具体的には、MySQLのユーザー名とパスワードを保存したファイルを別に作成します。
# vi /etc/mysql-dbaccess.cnf ※ファイル名は任意
[client]
user = zabbix ※先ほど設定したmysqlユーザー名
password = Zabbix2021# ※先ほど設定したmysqlパスワード
# mysqldump --defaults-extra-file=/etc/mysql-dbaccess.cnf
とすれば、エラーなく実行できます。(※mysqldump だけでなく mysql も同じ)
ステータスの確認
systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled)
Active: inactive (dead)
サービスの起動
# systemctl start zabbix-server
# systemctl enable zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled)
Active: active (running) since 土 2021-02-20 21:25:49 JST; 2s ago
Process: 11553 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 11556 (zabbix_server)
Tasks: 34
CGroup: /system.slice/zabbix-server.service
tq11556 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
・・略・・
サービスの自動起動設定
# systemctl enable zabbix-server
systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2021-02-20 21:25:49 JST; 3min 0s ago
Main PID: 11556 (zabbix_server)
CGroup: /system.slice/zabbix-server.service
tq11556 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
・・略・・
Zabbixエージェントの起動
# systemctl start zabbix-agent
各種サービスデーモンの確認
各サービスの起動状態を確認して、自動起動の設定も再確認しておきます。
サービスが停止していると、Zabbixのページが開けなかったりエラーとなります。
ステータスの確認
# systemctl status zabbix-server
# systemctl status zabbix-agent
# systemctl status httpd
サービスの起動
# systemctl start zabbix-server
# systemctl start zabbix-agent
# systemctl start httpd
自動起動の設定をする
# systemctl enable zabbix-server
# systemctl enable zabbix-agent
# systemctl enable httpd
Zabbixサーバの設定
ブラウザを起動し、「http://<ZabbixサーバーのIPアドレス>/zabbix/」にアクセスします。
まず右下の「Next step」ボタンをクリックして進みましょう。
※Webインターフェースを利用するためのWebブラウザは、いろいろあります。
Google Chrome, Firefox, Safari, Internet Explorer 11, Opera, etc…
「Check of pre-requisites」
以下のように、「Check of pre-requisites」内がすべてOKになっていることを確認し、「Next step」ボタンをクリックします。
Configure DB connection
以下のとおり入力します。
※「データベースの作成とユーザーの追加」でパスワードを変更した場合は、設定したパスワードを入力して下さい。「Next step」ボタンをクリックします。
- Database type:MySQL
- Database host:localhost
- Database port:0
- Database name:zabbix
- User:zabbix
- Password:Zabbix2021# ←以前にデータベース作成時に任意で設定したパスワード
Zabbix server details
以下のとおり入力し、「Next step」ボタンをクリックします。
Pre-Installation summary
内容を確認し、「Next step」ボタンをクリックします。
次の「Install」画面で、「Finish」ボタンをクリックして完了です。
Zabbix管理コンソールへのサインイン
ブラウザを起動していなければ起動し、「http://<ZabbixサーバーのIPアドレス>/zabbix/」にアクセスします。
以下のユーザー名とパスワードを入力し、「Sign in」ボタンをクリックします。
Username:Admin ※大文字、小文字は正しく入力して下さい
Password:zabbix
問題なくサインインできれば完了です。
以上が CentOS7にZabbix4.0をインストールして、初期設定および管理コンソールへログイン出来るまでの手順となります。
その他コマンド
サーバーとエージェントがちゃんと起動しているかの確認コマンド
$ ps -ef|grep zabbix
Zabbixでデフォルトの10051ポートがTCPでリッスンしているかの確認コマンド
ss -nlt
付録:とりあえず見つけたものを貼りました
監視対象となるWindowsとLinuxそれぞれのサーバーへZabbixエージェントをインストールする手順および基本設定
Zabbix Agentのインストールと設定手順をWindows、Linuxともに詳しく解説
Zabbixホスト設定
使ってみよう Zabbix③ : ホスト設定編
https://tech-lab.sios.jp/archives/11970
メンテナンスモードのドキュメント(古い)
Zabbix Documentation 3.0 (英語)
10. Maintenance [Zabbix Documentation 3.0]
Zabbix Documentation 2.4 (日本語)
10. メンテナンス [Zabbix Documentation 2.2]