【Linux】Zabbixサーバー構築【CentOS 7】

Linux
この記事は約25分で読めます。

CentOS7にZabbix4.0をインストールして、初期設定および管理コンソールへログイン出来るまでの手順をまとめています。

統合監視ソフトウェア Zabbix とは

サーバー・ネットワーク・アプリケーションを集中監視することができる、オープンソースの統合監視ソフトウェアです。

Zabbixエージェントとは、監視対象のサーバー上で動作させ、監視データのステータスを収集します。受信した監視データは、Zabbixサーバーに送られます。

Zabbixサーバーは、監視項目 [アイテム] を設定して、監視対象 [ホスト] から、「Zabbixエージェント」や「SNMP」などを使用して 定期的にステータス情報を収集し、データベースに保存します。
アイテムで収集した情報をもとに、閾値を設けて障害を検知できます。

図3: ZABICOM / Zabbixの処理の流れ

構築方法

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サーバーの起動に支障が出るので変更しておきます。

Zabbix 3.0をCentOS 6上で動かす(インストール編) - Qiita
注意事項先日公開していたAmazon Linux用のパッケージ「zabbix-3.0.1-2.amzn1.src.rpm」にはCentOS 6上でビルドする時に不備があったので、「zabbix-3…

# 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-mysqlZabbixサーバ本体
zabbix-web-mysqlWebサーバ(Webインターフェース)
zabbix-web-japanese日本語環境に必要なパッケージ
zabbix-agentZabbixエージェント

設定変更

# 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」ボタンをクリックして進みましょう。

Zabbix4.0のインストール

※Webインターフェースを利用するためのWebブラウザは、いろいろあります。
 Google Chrome, Firefox, Safari, Internet Explorer 11, Opera, etc…

「Check of pre-requisites」

以下のように、「Check of pre-requisites」内がすべてOKになっていることを確認し、「Next step」ボタンをクリックします。

Zabbix4.0のインストール

Configure DB connection

以下のとおり入力します。

※「データベースの作成とユーザーの追加」でパスワードを変更した場合は、設定したパスワードを入力して下さい。「Next step」ボタンをクリックします。

  • Database type:MySQL
  • Database host:localhost
  • Database port:0
  • Database name:zabbix
  • User:zabbix
  • Password:Zabbix2021#  ←以前にデータベース作成時に任意で設定したパスワード
Zabbix4.0のインストール

Zabbix server details

以下のとおり入力し、「Next step」ボタンをクリックします。

Zabbix4.0のインストール

Pre-Installation summary

内容を確認し、「Next step」ボタンをクリックします。
次の「Install」画面で、「Finish」ボタンをクリックして完了です。

Zabbix4.0のインストール
Zabbix4.0のインストール

Zabbix管理コンソールへのサインイン

ブラウザを起動していなければ起動し、「http://<ZabbixサーバーのIPアドレス>/zabbix/」にアクセスします。

以下のユーザー名とパスワードを入力し、「Sign in」ボタンをクリックします。

Username:Admin  ※大文字、小文字は正しく入力して下さい
Password:zabbix

Zabbix4.0のインストール

問題なくサインインできれば完了です。

Zabbix4.0のインストール

以上が 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]