2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Rocky Linux 9】16.Zabbix設定

Posted at

Zabbix設定

サーバー監視ツールとして「Zabbix」を利用する。
Zabbixにてサーバーのシステム、Apache、MariaDBを監視する

Zabbix Repository設定

https://www.zabbix.com/jp/download
上記にて、Zabbixのバージョン、OS、OSバージョン等を選び、適切なRepositoryをインストールする
以下の内容にて選択した際のインストール状況を記す

選択肢 選択内容
Zabbixバージョン 6.2
OSディストリビューション Rocky Linux
OSバージョン 9
Zabbix Component Server, Frontend, Agent
データベース MySQL
Web Server Apache
rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/9/x86_64/zabbix-release-6.2-3.el9.noarch.rpm
dnf clean all

ZabbixServerインストール

dnf install zabbix-server-mysql zabbix-sql-scripts

ZabbixAgent2インストール

dnf install zabbix-agent2

ZabbixWebFrontendインストール

dnf install zabbix-web-mysql zabbix-apache-conf zabbix-web-japanese

ZabbixServer用MariaDBデータベース作成

設定名 設定内容
データベース名 zabbix
ユーザー名 zabbix_user
パスワード zabbix_pass
mysql -u root -p
root@localhost> create database zabbix character set utf8mb4 collate utf8mb4_bin;
root@localhost> grant all privileges on zabbix.* to 'zabbix_user'@localhost identified by 'zabbix_pass';
root@localhost> flush privileges;
root@localhost> exit;

ZabbixServer設定

/etc/zabbix/zabbix_server.conf
- # DBHost=localhost
+ DBHost=localhost

- DBUser=zabbix
+ DBUser=zabbix_user

- # DBPassword=
+ DBPassword=zabbix_pass

- # DBSocket=
+ DBSocket=/var/lib/mysql/mysql.sock

- # DBPort=
+ DBPort=3306

ZabbixServer用MariaDBスキーマ設定

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u zabbix_user -pzabbix_pass zabbix

ZabbixServer起動・自動化

systemctl enable --now zabbix-server

ZabbixAgent2起動・自動化

特に設定は必要無いが、ZabbixAgent2用のMariaDBユーザーを作成する

設定名 設定内容
ユーザー名 zabbix_agent_user
パスワード zabbix_agent_pass
systemctl enable --now zabbix-agent2
mysql -u root -p
root@localhost> grant usage,replication client,process, show databases,show view on *.* to 'zabbix_agent_user'@localhost identified by 'zabbix_agent_pass';
root@localhost> flush privileges;
root@localhost> exit;

Apache設定

Zabbixは「http://zabbix.example.com/」というサブドメイン運用とする
さらに「zabbix.example.com」ドメインに関してもLet's EncryptにてSSLを取得し、SSLにて運用する

mv /etc/httpd/conf.d/zabbix.conf /etc/httpd/conf.d/zabbix.conf.org
/etc/httpd/conf.d/virtualhost.zabbix.example.com.conf
<VirtualHost *:80>
    ServerName      zabbix.example.com
    DocumentRoot    /usr/share/zabbix
    ErrorLog        logs/zabbix.example.com/error_log
    CustomLog       logs/zabbix.example.com/access_log combined env=!no_log
</VirtualHost>

<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule dir_module>
        DirectoryIndex index.php
    </IfModule>

    <FilesMatch \.(php|phar)$>
        SetHandler "proxy:unix:/run/php-fpm/zabbix.sock|fcgi://localhost"
    </FilesMatch>
</Directory>

<Directory "/usr/share/zabbix/conf">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/app">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/local">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/vendor">
    Require all denied
</Directory>
/etc/httpd/conf.modules.d/00-base.conf
# Required for Zabbix
- #LoadModule authz_host_module modules/mod_authz_host.so
- #LoadModule env_module modules/mod_env.so
- #LoadModule status_module modules/mod_status.so
+ LoadModule authz_host_module modules/mod_authz_host.so
+ LoadModule env_module modules/mod_env.so
+ LoadModule status_module modules/mod_status.so

Apache再起動

mkdir /var/log/httpd/zabbix.example.com
systemctl restart httpd

SSL取得(Let's Encrypt)

certbot certonly --webroot -w /usr/share/zabbix -m server@example.com -d zabbix.example.com -n --agree-tos

Apache設定

/etc/httpd/conf.d/virtualhost.zabbix.example.com.conf
<VirtualHost *:80>
    ServerName      zabbix.example.com
    DocumentRoot    /usr/share/zabbix
    ErrorLog        logs/zabbix.example.com/error_log
    CustomLog       logs/zabbix.example.com/access_log combined env=!no_log
</VirtualHost>

+ <VirtualHost *:443>
+     ServerName      zabbix.example.com
+     DocumentRoot    /usr/share/zabbix
+     ErrorLog        logs/zabbix.example.com/ssl_error_log
+     CustomLog       logs/zabbix.example.com/ssl_access_log combined env=!nolog
+     Protocols       h2 http/1.1

+     # Brotli settings
+     SetOutputFilter BROTLI_COMPRESS
+     SetEnvIfNoCase  Requst_URI \.(bmp|gif|htc|ico|jpe?g|mpe?g|png|swf|woff|ttf)$ no-brotli
+     BrotliCompressionQuality 5
+     BrotliCompressionWindow 18
+     BrotliFilterNote Input instream
+     BrotliFilterNote Output outstream
+     BrotliFilterNote Ratio ratio
+     LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' brotli
+     CustomLog "logs/zabbix.example.com/brotli_log" brotli

+     SSLEngine       on
+     SSLCertificateFile      /etc/letsencrypt/live/zabbix.example.com/cert.pem
+     SSLCertificateKeyFile   /etc/letsencrypt/live/zabbix.example.com/privkey.pem
+     SSLCertificateChainFile /etc/letsencrypt/live/zabbix.example.com/chain.pem
+     Header always set Strict-Transport-Security "max-age=31536000"
+ </VirtualHost>

Apache監視用設定

/etc/httpd/conf.d/virtualhost.localhost.conf
<VirtualHost *:80>
    ServerName      localhost
    DocumentRoot    /var/www/html
    ErrorLog        logs/error_log
    CustomLog       logs/access_log combined env=!nolog

    <Location "/server-status">
        SetHandler  server-status
        Require all denied
        Require local
    </Location>
</VirtualHost>

PHP-FPM監視用設定

/etc/php-fpm.d/www.conf
- ;pm.status_path = /status
+ pm.status_path = /php-fpm_status

- ;ping.path = /ping
+ ping.path = /php-fpm_ping
/etc/httpd/conf.d/virtualhost.localhost.conf
    <Location "/server-status">
        SetHandler  server-status
        Require all denied
        Require local
    </Location>
+     <Location ~ /(php-fpm_status|php-fpm_ping)$>
+         SetEnv downgrade-1.0
+         SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
+         Require all denied
+         Require local
+     </Location>

Apache・PHP-FPM再起動

systemctl restart php-fpm
systemctl restart httpd
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?