タグ: Zabbix

Ubuntu 22.04でZabbix 6.2(MySQL/nginx構成)を設定するときにハマったこと。

以下の環境でZabbixを導入してみましたが、いくつかハマったことがあったのでメモを残しておきます。

導入した環境

  • Ubuntu 22.04
  • 導入しようとしたZabbix : 6.2
  • MySQL / nginx構成
  • 他サービス未導入(OSインストールと初期設定を終えたのみです)
  • ドメイン登録済みです。
  • ワイルドカードSSL証明書を発行済みです。

導入手順(ハマりポイント込み)

前提

  • 全て管理者権限で実施しています。
  • パッケージ管理は基本的にaptitudeを利用しています。
  • ローカルNWで設定しているのでufwなどは考慮していません。

参考URL

Zabbixレポジトリを追加してインストールします。

aptitude update
aptitude upgrade
wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.2-1+ubuntu22.04_all.deb
aptitude update
aptitude install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

MySQLの初期設定

aptitude install mysql-server
systemctl start mysql
systemctl enable mysql

必要に応じて: mysql_secure_installation

参考 https://level69.net/archives/28557
vi /etc/mysql/mysql.conf.d/mysqld.cnf
追記内容
#末尾に以下を追加
default_authentication_plugin=mysql_native_password

設定後にmysqlサービス再起動

systemctl restart mysql

MySQL rootパスワード設定

mysql -u root -p
# 未設定のためパスワードは不要です
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';
#パスワードは任意のものを入力ください
flush privileges;
exit

mysql初期設定

mysql_secure_installation
初期設定内容
Enter password for user root: 
# 上記で設定したパスワードを入力します

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: 
# Yを入力してEnter

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
# ポリシーに合わせて0/1/2を入力(ローカル環境のため0としました)

Estimated strength of the password: 50 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : 
# 既に設定しているのでn

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : 
# anonymousユーザーを削除するためY

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : 
# rootユーザのリモートログインを禁止するためY

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 
# テストDBを削除するためY

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : 
# 設定を反映するためy

MySQLでZabbix用のユーザーを作成

mysql -uroot -p
# 上記で設定したパスワードを入力します
CREATE DATABASE zabbix character set utf8mb4;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'パスワード';
# 任意のパスワードを設定
GRANT ALL ON redmine.* TO 'zabbix'@'localhost';
flush privileges;
exit

ハマりポイント1:SQL実行時にエラーが出る

ERROR 1419 (HY000) at line 2123: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

と出たので、設定をしておきます。

対処方法
mysql -uroot -p

rootでmysqlにログイン後、以下を実行します。

SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
# OFF を確認
set global log_bin_trust_function_creators=1;
# 設定を有効化
 SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
 # ONを確認

ハマりポイント2: インポート用SQLが存在しない(正しい手順を後述)

Webサイトの手順によると、

zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

とありますが、該当ディレクトリにmysql用のSQLが存在しません。

対処方法
apt reinstall zabbix-sql-scripts

として、sqlを再インストールします。

updatedb
 locate server.sql.gz
 →  /usr/share/zabbix-sql-scripts/mysql/server.sql.gz

SQLをインポートします。

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
# zabbixのDBパスワードを入力します。

Zabbixの設定を行います。

vi /etc/zabbix/zabbix_server.conf
追記/編集内容
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

nginx用のconfファイルを設定します。

vi /etc/zabbix/nginx.conf
編集内容
        listen          443 ssl http2 default_server;
        # ポートを443のみで受け付けるようにします。
        server_name     ドメイン名;

        ssl_certificate "/SSL証明書と中間証明書を結合したファイル";
        ssl_certificate_key "秘密鍵ファイル";
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA";
        ssl_prefer_server_ciphers off;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 10m;

設定内容を確認します。

nginx -t
# Syntax OKを確認します

設定内容を反映します。

systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm

セットアップ確認

ブラウザから

https://ドメイン名/setup.php

が表示されれば問題ないです。その後、Next Stepに進んでください。

自室内サーバの監視・運用状況。

本格運用一ヶ月経過

「検証機ではなく、redmine専用サーバを作る。そのバックアップサーバも用意して監視する」を初めて一ヶ月。

そこで少し見えてきたことを報告です。

ディスク使用量

バックアップサーバ兼Zabbixサーバ

写真アルバムもあるので/home領域は結構利用しています。場合によってはSSDの差し替えも考慮に入れます。

redmine サーバ

redmine は余裕の容量。ただ、データは確実に膨れ上がるので、注視する必要があります。

CPU 利用率

夜中の3時に少し上昇。これは

ClamAV でウイルススキャンを行っている状態。逆に言えば、この上昇率があることで定期スキャンは動いていると判断できます。

今後の展望

  • バックアップサーバの容量不足は今年中に考えておく。
  • redmine は予定通り。
  • 各種障害に対する備えを決めておく。

自宅サーバの監視システム。(Ubuntu 20.04にZabbix追加)

Zabbixサーバ追加

宅内サーバの障害の切り分けのため、監視システムであるZabbixを導入しました。

環境

  • Kubuntu 20.04
  • MySQL / Apache導入済み

手順

LAMP設定

aptitude install libapache2-mod-php
aptitude install php php-mbstring php-gd php-xml php-bcmath php-ldap php-mysql

PHP構成変数の更新

vi /etc/php/7.4/apache2/php.ini
変更内容
memory_limit 256M
upload_max_filesize 16M
post_max_size 16M
max_execution_time 300
max_input_time 300
max_input_vars 10000
date.timezone = 'Asia/Tokyo'

Zabbix リポジトリの設定

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb 
dpkg -i zabbix-release_5.0-1+focal_all.deb

Zabbix サーバのインストール

aptitude update
aptitude install zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-apache-conf

Zabbixデータベースとユーザの作成

mysql -u root -p 
CREATE DATABASE zabbixdb character set utf8 collate utf8_bin; 
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'パスワード'; 
GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbix'@'localhost' WITH GRANT OPTION; 
FLUSH PRIVILEGES;
quit
cd /usr/share/doc/zabbix-server-mysql 
zcat create.sql.gz | mysql -u zabbix -p zabbixdb

Zabbix構成の更新

vi /etc/zabbix/zabbix_server.conf
ファイルの内容
  DBHost=localhost
  DBName=zabbixdb
  DBUser=zabbix
  DBPassword=パスワード

zabbix有効化

systemctl enable zabbix-server 
systemctl restart zabbix-server

ディレクトリ権限変更

ここで [サーバIPorドメイン/zabbix]を入力しましたが404 Not Found。以下を施しました。

cd /usr/share
chown -R www-data:www-data zabbix
systemctl restart apache2

その後、インストーラ画面が出てきたので後に続きます。

サーバ追加後

このように、監視システムが現れました。

  • 監視設定の精査
  • メール通知などの追加

が残っていますけれど、まずは一歩前進。

余談

Zabbix-AgentはWindowsにも対応しています。そこでメインで使っているデスクトップにもAgentを入れてみたら

  • マザーボード備え付けのLANポートが認識しない
  • 同様にマザーボードのサウンドも認識しない
  • 壁紙設定が強制的に上書きされる

などの不具合が発生し、やむなくWindowsからエージェントをアンインストールしました。

Powered by WordPress & Theme by Anders Norén