2020.03.18   インフラ

[Zabbix] ゼロから始めるZabbix -構築-

はじめに

NW監視の学習として、監視用ツールとして良く使われている「Zabbix」とネットワーク監視方法で良く使われている「snmp」と「snmptrap」の監視環境を構築をしてみる。それらの内容を数回に分けて掲載していく。

■掲載内容
1 – ゼロから始めるZabbix -構築- (本記事)
2 – ゼロから始めるZabbix -snmp-
3 – ゼロから始めるZabbix -snmptrap-

Zabbixとは?

Zabbix はアレクセイ・ウラジシェフ(Alexei Vladishev)によって作られた、ネットワーク管理ソフトウェアである。様々なネットワークサービス、サーバ 、その他のネットワークハードウェアのステータスを監視・追跡できる。現在はウラジシェフが設立したZabbix社によって開発が継続されている。(フリー百科事典『ウィキペディア(Wikipedia)』より)

■筆者のZabbixに対する認識
・オープンソースのネットワーク管理ソフトウェア
・色々なプラットフォームに対応している
・GUIで操作が可能
・全世界で30万以上インストールして使用されている為、調べるにあたり情報が多い

構成.jpg

構築環境

・Centos 7
・zabbix 4.0 LTS
2020/3/5現在の最新バージョンは4.4になるが、
LTS(Long Term Support)バージョンの最新は4.0を選択。

作業

1.Zabbixリポジトリをインストール

# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
Retrieving https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.kt5NZI: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-release-4.0-2.el7         ################################# [100%]

2.Zabbix server(本体)、frontend(Webインターフェース)、agent(自分を監視するエージェント)をインストール

2-1 yumコマンドを実施
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent 
※ログが多いので選択項目以外は省略

2-2 yを押下しenter
Total download size: 13 M
Installed size: 47 M
Is this ok [y/d/N]: y

2-3 yを押下しenter
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
Importing GPG key 0x79EA5ED4:
 Userid     : "Zabbix SIA <packager@zabbix.com>"
 Fingerprint: fbab d5fb 2025 5eca b22e e194 d13d 58e4 79ea 5ed4
 Package    : zabbix-release-4.0-2.el7.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
Is this ok [y/N]: y

2-4 yを押下しenter
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Is this ok [y/N]: y

3.Webインターフェースで日本語フォントを使用できるようにするためにzabbix-web-japaneseをインストール

3-1 yumコマンドを実施
# yum install zabbix-web-japanese
※ログが多いので選択項目以外は省略

3-2 yを押下しenter
Total download size: 2.2 M
Installed size: 4.0 M
Is this ok [y/d/N]: y

4.MariaDBサーバをインストール
※CentOS7からは、標準ではDBのパッケージはMysqlではなく、
MariaDBを使用しているとのことで、MariaDBをインストールする

4-1 yumコマンドを実施
# yum install mariadb mariadb-server
※ログが多いので選択項目以外は省略

4-2 yを押下しenter
Total download size: 2.2 M
Installed size: 4.0 M
Is this ok [y/d/N]: y

5.MariaDB設定
server.cnfの[mysqld]に下記設定を追加
※Zabbixで日本語が文字化けしないように文字コードをutf8に設定。
※innodb~はONにするとファイルI/O分散や、DBAの管理性向上が見込まれるので設定。

# vi /etc/my.cnf.d/server.cnf

[mysqld]
character-set-server = utf8
collation-server     = utf8_bin
skip-character-set-client-handshake
innodb_file_per_table

6.MariaDBの起動

6-1 MariaDBの起動
# systemctl start mariadb

6-2 MariaDBのenable化
# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

7.初期パスワード設定

7-1 mysql_secure_installationを実行
#mysql_secure_installation
※ログが多いので選択項目以外は省略

7-2 MariaDBのrootパスワードを設定している場合は入力。していない場合はenterを押下。
Enter current password for root (enter for none):

7-3 rootパスワードを設定しますか。
Set root password? [Y/n] Y

7-4 新しいパスワードを(任意)を入力
New password:【rootパスワード】

7-5 新しいパスワードを(任意)を再度入力
Re-enter new password:【rootパスワード】

7-6 匿名ユーザの削除をしますか。
Remove anonymous users? [Y/n] Y

7-7 リモートからの root ログインを禁止しますか?
Disallow root login remotely? [Y/n] n

7-8 テストデータベースとそのアクセスを削除しますか。
Remove test database and access to it? [Y/n] Y

7-9 設定を反映してリロードしますか。
Reload privilege tables now? [Y/n] Y

8.初期DBとユーザの作成

8-1 DBにログイン
#mysql -uroot -p
Enter password:【rootパスワード】(7-4で設定したパスワードを使用)

8-2 DBを作成
> create database 【DB名】;
Query OK, 1 row affected (0.00 sec)

8-3 作成したDBを確認
> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
|【DB名】            |
+--------------------+
4 rows in set (0.00 sec)

8-3 作成したDBにアクセスするユーザを作成
> grant all privileges on 【DB名】.* to 【DBユーザ名】@localhost identified by '【DBパスワード】';
Query OK, 0 rows affected (0.00 sec)

8-4 作成したホストとユーザが紐づいたことを確認
> select user, host from mysql.user;
+----------------+------------+
| user           | host       |
+----------------+------------+
| root           | 127.0.0.1  |
| root           | ::1        |
| root           | localhost  |
|【DBユーザ名】  | localhost  |
+----------------+------------+
4 rows in set (0.00 sec)

8-5 DBから抜ける
> exit

9.初期データをインポート


9-1 zabbix-server-mysql-X.X.X のファイル名(バージョン)を確認
#ls -l /usr/share/doc | grep zabbix-server-mysql
drwxr-xr-x   2 root root  100 Mar 13 15:40 zabbix-server-mysql-4.0.18

⇒zabbix-server-mysql-4.0.18だということが分かる

9-2上記のファイル名を4.0.18に置き換え、DB名を入れて実行
#zcat /usr/share/doc/zabbix-server-mysql-4.0.18/create.sql.gz | mysql -u【DBユーザ名】 -p 【DB名】
Enter password:【DBパスワード】

10.Zabbixサーバのデータベース設定

10-1 viでファイルを開き、下記を変更する
#vi /etc/zabbix/zabbix_server.conf

10-2 DBHostのコメントアウトを取る
[before]
# DBHost=localhost
[after]
DBHost=localhost

10-3 DBNameがzabbixではない場合は修正
[before]
DBName=zabbix
[after]
DBName=【DB名】

10-4 DBuserがzabbixではない場合は修正
[before]
DBUser=zabbix
[after]
DBUser=【DBユーザー名】

10-5  DBPasswordのコメントアウトを取り、設定したパスワードを入力
[before]
# DBPassword=
[after]
DBPassword=【DBパスワード】

10-6  StatsAllowedIPを下記の様に変更
[before]
# StatsAllowedIP=
[after]
StatsAllowedIP=127.0.0.1

11.zabbixフロントエンドのタイムゾーン設定

11-1 viでzabbix.confを開く
# vi /etc/httpd/conf.d/zabbix.conf

11-2 php_value date.timezone を下記の様に変更
[before]
 # php_value date.timezone Europe/Riga
[after]
php_value date.timezone Asia/Tokyo

12.各種デーモンを起動

12-1 Zabbixサーバを起動
# systemctl start zabbix-server

12-2 Zabbixエージェンントを起動
# systemctl start zabbix-agent

12-3 Webサーバを起動
# systemctl start httpd

12-4 Zabbixサーバをenable化
# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.

12-5 Zabbixエージェントをenable化
# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.

12-6 Webサーバをenable化
# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

13.Webインターフェースを開く
インストールしたzabbixのページにを下記手順でアクセスし、Next stepを押下
アドレス:http://【自分のIP】/zabbix

1.png

14.全てOKであることを確認し、Next stepを押下

2.png

15.下記を入力し、Next stepを押下

項目
Database name 【DB名】
User 【DBユーザ名】
Password 【DBパスワード】

DB_2.png

16.Next stepを押下

4.png

17.入力した内容に不備がないことを確認し、Next stepを押下

6_2.png

18.finishを押下

7.png

19.下記を入力してログイン

種別
USERNAME Admin
PASSWORD zabbix

10.png

20.Zabbixのダッシュボードが確認できれば構築完了

end.png

おわりに

Zabbixをサーバーにインストールすることが出来た。
これだけでは何も監視は出来ない為、監視対象を登録し、機器情報を受け取る設定が必要。
その為、次回は監視対象の登録と、監視をする上で必要なSNMPの設定を学習していく。

[blogcard url=” https://www.cyberfortress.jp/contact/ “]

参考文献

Zabbix公式
Zabbixwiki
【3分でわかるシリーズ】CentOSとは?
Zabbix 3.0をCentOS 7にインストール
MariaDB
Zabbix用サーバでのMySQL my.cnf 設定

Written by CYBERFORTRESS, INC.

サイバーフォートレス CYBERTHREATS TODAY 編集チーム

サイバーフォートレスは、サイバーセキュリティ対策を提供するセキュリティ専門企業です。

セキュリティ対策や、最新のセキュリティ脅威、サイバー攻撃のトレンドなど、当社が研究開発や情報収集した内容をもとに、最新のセキュリティ脅威・セキュリティ対策についてお伝えします。

関連記事

よく読まれている記事