目次~
#contents

*概要 [#wc0db44c]
シングル構成のZabbix Server、及びZabbix FrontendをCentOS Stream 8.x系にインストールする手順。~
基本的なインストールとして、以下のURLの手順を理解した上で行うものとする。~

https://www.zabbix.com/jp/download


**前提環境 [#l444da6a]
-OS/MW
|BGCOLOR(#7498FF):Category|BGCOLOR(#7498FF):Package & Version|BGCOLOR(#7498FF):Architecture|BGCOLOR(#7498FF):Install Type|BGCOLOR(#7498FF):Repository|
|BGCOLOR(#9898FF):OS|CentOS Stream release 8|x86-64|RPM|CentOS-Stream-AppStream|
|BGCOLOR(#9898FF):MariaDB |mariadb-10.3.28-1|el8.x86-64|RPM|CentOS-Stream-AppStream|
|BGCOLOR(#9898FF):PHP|php-7.4.19-2|el8.x86-64|RPM|CentOS-Stream-AppStream|
|BGCOLOR(#9898FF):PHP-FPM|php-fpm-7.4.19-2|el8.x86-64|RPM|CentOS-Stream-AppStream|
|BGCOLOR(#9898FF):HTTPD|httpd-2.4.37-43|el8.x86-64|RPM|CentOS-Stream-AppStream|
|BGCOLOR(#9898FF):SNMP|net-snmp-5.8-25|el8.x86-64|RPM|CentOS-Stream-AppStream|

-Zabbix Server
|BGCOLOR(#7498FF):Category|BGCOLOR(#7498FF):Package & Version|BGCOLOR(#7498FF):Architecture|BGCOLOR(#7498FF):Install Type|BGCOLOR(#7498FF):Repository|
|BGCOLOR(#9898FF):Zabbix|zabbix-release-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-server-mysql-6.2.0-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-sql-scripts-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-js-6.2.0-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-selinux-policy-6.2-1|el8.x86-64|RPM|Zabbix|

-Zabbix Web UI
|BGCOLOR(#7498FF):Category|BGCOLOR(#7498FF):Package & Version|BGCOLOR(#7498FF):Architecture|BGCOLOR(#7498FF):Install Type|BGCOLOR(#7498FF):Repository|
|BGCOLOR(#9898FF):Zabbix|zabbix-web-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-web-mysql-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-web-deps-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-web-japanese-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-apache-conf-6.2-1|el8.x86-64|RPM|Zabbix|

-Zabbix Web Service
|BGCOLOR(#7498FF):Category|BGCOLOR(#7498FF):Package & Version|BGCOLOR(#7498FF):Architecture|BGCOLOR(#7498FF):Install Type|BGCOLOR(#7498FF):Repository|
|BGCOLOR(#9898FF):Zabbix|zabbix-web-service-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Chrome|google-chrome-stable|x86-64|RPM|Google|

-Zabbix Agent
|BGCOLOR(#7498FF):Category|BGCOLOR(#7498FF):Package & Version|BGCOLOR(#7498FF):Architecture|BGCOLOR(#7498FF):Install Type|BGCOLOR(#7498FF):Repository|
|BGCOLOR(#9898FF):Zabbix|zabbix-agent-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-agent2-6.2-1|el8.x86-64|RPM|Zabbix|

-Zabbix Commands
|BGCOLOR(#7498FF):Category|BGCOLOR(#7498FF):Package & Version|BGCOLOR(#7498FF):Architecture|BGCOLOR(#7498FF):Install Type|BGCOLOR(#7498FF):Repository|
|BGCOLOR(#9898FF):Zabbix|zabbix-get-6.2-1|el8.x86-64|RPM|Zabbix|
|BGCOLOR(#9898FF):Zabbix|zabbix-sender-6.2-1|el8.x86-64|RPM|Zabbix|


*1. OS設定 [#b21d2108]
**インストール [#w744f123]
***インストールタイプ [#ca1dfe14]
インストールタイプは「サーバ(GUI使用)」構成を選択。~
このタイプではEL6までとの互換性を確保するためのツール類が初めからインストールされるため、使いやすい構成で始めることができる。~

***ランレベル [#z988a625]
サーバ用途ではGUIは不要のため、CLIモードに変更する。

-設定
 systemctl set-default multi-user.target

-確認
 # systemctl get-default
 multi-user.target


**セキュリティ設定 [#w66425a0]
***SELinux [#u9fe5e23]
ZabbixのSELinux用ポリシーが提供される様になっているため、SELinuxを有効化した状態で導入することが可能となった。~
利用環境に合わせてSELinuxの有効/無効を調整すること。~
(RHEL9 / CentOS Stream 9以降はSELinuxの無効化が困難となるため、将来的には有効化した状態での運用が標準になると思われる。)~

***SSH [#t066944e]
/etc/ssh/sshd_configに対して、適宜設定を行う。~

-rootログイン禁止
 PermitRootLogin no

-パスワード認証禁止(鍵認証のみ許可)
 PasswordAuthentication no

-空パスワード禁止
 PermitEmptyPasswords no

-設定反映
設定後、sshdを再起動すると設定が反映される。

※注意※~
上記の設定反映後、新たにターミナルセッションを開いてSSH接続ができることを確認すること。~


***Firewallの無効化 [#b68df161]
Firewallが不要な場合にはサービスを停止する。

 systemctl stop firewalld
 systemctl disable firewalld


***不要なサービスの停止 [#x8d8f860]
システムの動作上、不要となるサービスは停止する。~
 # systemctl disable [Service Name]

***時刻同期 [#bdab67a2]
監視システムにおいて時刻のズレは運用上の支障となるため、必ずサーバの時刻同期を設定する。~

-設定
国内で使用する場合にはNICTのntpサーバを使うなどの方式となる。(大学私設のNTPサーバは避けること)~
クローズドなNTPが存在する場合には、そのアドレスを設定する。~

-/etc/chrony.conf 
 pool ntp.nict.jp iburst

-設定の反映~
サービスを再起動して、設定変更を反映させる。~
 systemctl restart chronyd.service 

-動作確認~
時刻同期の状況を確認。~
 chronyc sources
 
 MS Name/IP address         Stratum Poll Reach LastRx Last sample               
 ===============================================================================
 ^* ntp-b2.nict.go.jp             1   6    37     9    -49us[-1008us] +/- 3416us
 ^- ntp-k1.nict.jp                1   6    37     9   +972us[ +972us] +/- 9645us
 ^- ntp-a2.nict.go.jp             1   6    37     9  +1330us[+1330us] +/- 4894us
 ^- ntp-b3.nict.go.jp             1   6    37    10    +21us[  +21us] +/- 4093us
MS列で「*」が表示されているサーバと同期が完了している。~

***システムのアップデート [#o91e4d44]
OS導入段階のパッケージを最新化する。~
 dnf update


***設定の反映 [#je0ef401]
ここまでの設定を一括反映するため、OSの再起動を行う。~
 reboot


*パッケージ導入 [#h040f358]
**Zabbixインストール [#j9122e5b]
Zabbixリポジトリをインストールする。~

-リポジトリの組み込み
 rpm -ivh https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-1.el8.noarch.rpm
 dnf clean all

-Zabbixのインストール
 dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-web-service zabbix-js zabbix-get zabbix-sender

-Zabbix Agentの導入~
Zabbix Agentは2種類のバージョンが提供されている。~
新しい機能はAgent2に付加されていくため、これらを使用したい場合にはAgent2を使用する。
--Zabbix Agent(C言語版)
 dnf install zabbix-agent
--Zabbix Agent2(Go言語版)
 dnf install zabbix-agent2


**ミドルウェアの導入 [#vb0c2eb9]
Zabbixのパッケージインストールだけでは導入されないミドルウェアを先にインストールする。~

***MariaDB [#he8b2ab4]
DBMSとして使用するMariaDBのサーバサービスを導入する。~

-インストール
 dnf install mariadb-server

***NET-SNMP [#xd895d62]
SNMPTrapを受信するためにsnmptrapdサービスを導入する。~

-インストール
 dnf install net-snmp net-snmp-utils net-snmp-perl

***PHP [#p7f82412]
PHPのバージョンを7.4へ変更する。~
PHPのスクリプトを動作させることを想定し、コマンドラインPHPも導入する。~

-操作手順
 dnf module switch-to php:7.4

-コマンドラインPHPの導入
 dnf install php php-cli


***Google Chrome [#w5f9788f]
zabbix-web-service(定期レポートの生成に使用)が使用するGoogle Chromeのパッケージを導入する。~
リポジトリから自動的に取得することが出来ないため、手動でパッケージを入手して導入する。~

-パッケージ入手先~
https://www.google.com/chrome/?platform=linux

-インストール
 dnf install ./google-chrome-stable_current_x86_64.rpm 


**コマンドラインツール類の導入 [#p878d9f6]
操作面での互換性維持、並びにZabbixを運用する上で必要となるツールを導入する。

-対象
 net-tools
 bind-utils
 nmap
 wget
 telnet
※インストールタイプを「サーバ(GUI使用)」にしていた場合、一部のツールはすでに導入されている。~

-手順
 dnf install net-tools bind-utils nmap wget telnet

**MariaDB設定 [#u8aa8c9f]
***動作設定 [#s22463dc]
-/etc/my.cnf.d/mariadb-server.cnf
 [mysqld]
 datadir=/var/lib/mysql
 socket=/var/lib/mysql/mysql.sock
 log-error=/var/log/mariadb/mariadb.log
 pid-file=/run/mariadb/mariadb.pid
 
--以下を追記
 port=3306
 user=mysql
 
 character-set-server = utf8
 skip-character-set-client-handshake
 default-storage-engine = Innodb
 skip-name-resolve
 collation-server = utf8_general_ci
 
 max_connections=200
 
 innodb_data_home_dir=/var/lib/mysql
 innodb_file_format=Barracuda
 innodb_file_per_table
 
 innodb_buffer_pool_size = 2G
 
 innodb_log_file_size = 256M
 
 thread_cache_size=250
 
 sort_buffer_size=8M 
 tmp_table_size=256M
 max_heap_table_size=256M
 query_cache_size=64M
 
 query_cache_type=1
 
 join_buffer_size = 1M
 read_buffer_size = 1M
 read_rnd_buffer_size = 1M
 
 innodb_log_files_in_group = 2
 innodb_flush_method=O_DIRECT
 sql_mode=''

-/etc/my.cnf.d/auth_gssapi.cnf 
 [mariadb]
 # plugin-load-add=auth_gssapi.so ←コメントアウトする


***サービス動作設定 [#l659ef60]
-起動設定
 systemctl enable mariadb
 systemctl start mariadb

***セキュリティ設定 [#jc10ee95]
パスワード設定などのセキュリティ関連の最低限の設定は付属のスクリプトを用いて設定を行う。~

-セキュリティ設定
 mysql_secure_installation

***Zabbixデータベース作成 [#he128491]
-データベースに接続
 mysql -uroot -p

-データベース作成
 create database zabbix character set utf8mb4 collate utf8mb4_bin;
 create user zabbix@localhost identified by 'zabbix';
 grant all privileges on zabbix.* to zabbix@localhost;
 set global log_bin_trust_function_creators = 1;
 quit;

-スキーマ投入
 zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
 zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix


**Apache設定 [#d4bd4f27]
***動作設定 [#s9ad156b]
-/etc/httpd/conf/httpd.conf
 ServerName [FQDN]:80

***URL転送 [#b14ceb5a]
-/var/www/html/index.html
 <!DOCTYPE html>
 <html lang="ja">
 <head> 
 <meta charset="uft-8">
 <script>
 setTimeout("location.href='/zabbix/'",0);
 </script>
 <title>redirect</title>
 </head>
 <body>
 </body>
 </html>

***設定の反映 [#vc6e08ea]
-設定の確認
 # service httpd configtest                                                                                              
 Syntax OK

-サービス起動
 systemctl enable httpd
 systemctl start httpd


**PHP-FPM設定 [#tad1935a]
***動作設定 [#qa5837a1]
-/etc/php-fpm.d/zabbix.conf
 php_value[memory_limit] = 512M

***設定の反映 [#m22b5f1a]
-サービス起動
 systemctl enable php-fpm
 systemctl start php-fpm


**NET-SNMP設定 [#jbbf980b]
***ログ出力先の変更 [#he289d99]
SNMPTrap受信ログを/var/log/snmpd/snmptrap.logへ出力する方式に変更。~
SNMPTrap受信時には、zabbix_trap_receiver.plに連携する方式に設定。~

-/etc/sysconfig/snmptrapd
 OPTIONS="-Lsd -Lf /var/log/snmpd/snmptrap.log -p /var/run/snmptrapd.pid udp:162"

-/etc/rsyslog.conf
--messagesへのSNMPTrapログを出力させない
 *.info;mail.none;authpriv.none;cron.none;local6.none                /var/log/messages
--SNMPTrapログはlocal6として別のファイルに出力させる
 local6.*                                                /var/log/snmpd/snmptrap.log


***SNMPTrapの処理方法を変更 [#z88a8667]
Zabbixのソースコードに同梱されている zabbix_trap_receiver.pl を用いてSNMPTrapを処理する方式の実装を行う。~

-Zabbixのソースコードを取得
 wget https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.0.tar.gz

-zabbix_trap_receiver.plの取得と配置
 tar xfvz zabbix-6.2.0.tar.gz
 ln -s zabbix-6.2.0 zabbix
~
 cp ./zabbix/misc/snmptrap/zabbix_trap_receiver.pl /usr/local/bin/
 chmod 755 /usr/local/bin/zabbix_trap_receiver.pl
 mkdir /var/log/snmpd/
 touch /var/log/snmpd/zabbix_traps.log

-zabbix_trap_receiver.plの設定変更
 vi /usr/local/bin/zabbix_trap_receiver.pl
--zabbix_trap_receiver.pl
 $SNMPTrapperFile = '/var/log/snmpd/zabbix_traps.log';

-/etc/snmp/snmptrapd.conf
--特定のコミュニティ名のみを受信する場合
 authCommunity log,execute public
 perl do "/usr/local/bin/zabbix_trap_receiver.pl"
--全てのコミュニティ名を受信する場合
 disableauthorization yes
 perl do "/usr/local/bin/zabbix_trap_receiver.pl"


***MIBの読み込み設定 [#p247fc08]
snmp.confを作成し、MIBの読み込みディレクトリの指定を行う。
ファイルは存在しないため、手動で作成する。~
-/etc/snmp/snmp.conf
 MIBDIRS /usr/share/snmp/mibs
 MIBS all


***ログローテーション [#j8fdb310]
SNMP関連のログローテーション設定を作成。
-/etc/logrotate.d/snmp
 /var/log/snmpd/*.log {
         weekly
         rotate 4
         compress
         delaycompress
         missingok
         notifempty
         create 0664 root root
 }


***設定の反映 [#jf3889c3]
-サービス再起動
 systemctl restart rsyslog

-サービス起動
 systemctl enable snmptrapd
 systemctl start snmptrapd



**Zabbix設定 [#v7226c68]
以下は最低限の設定。要件に合わせてパラメータを調整する。~

***Zabbix Server [#n7586427]
-/etc/zabbix/zabbix_server.conf
 LogFile=/var/log/zabbix/zabbix_server.log
 LogFileSize=0
 PidFile=/run/zabbix/zabbix_server.pid
 SocketDir=/run/zabbix
 DBName=zabbix
 DBUser=zabbix
 DBPassword=zabbix
 AllowUnsupportedDBVersions=1
 StartPollers=5
 StartIPMIPollers=1
 StartPreprocessors=3
 StartPollersUnreachable=5
 StartHistoryPollers=5
 StartTrappers=5
 StartPingers=5
 StartDiscoverers=1
 StartHTTPPollers=1
 StartVMwareCollectors=2
 VMwareCacheSize=32M
 SNMPTrapperFile=/var/log/snmpd/zabbix_traps.log
 StartSNMPTrapper=1
 CacheSize=64M
 Timeout=4
 LogSlowQueries=3000
 StatsAllowedIP=127.0.0.1

***Zabbix Agent [#x09c5652]
セキュリティ的な問題が発生する可能性があるため、パラメータの意味を理解した上で適用して下さい。~

-/etc/zabbix/zabbix_agentd.conf
 PidFile=/run/zabbix/zabbix_agent2.pid
 LogFile=/var/log/zabbix/zabbix_agent2.log
 LogFileSize=0
 Server=127.0.0.1
 ServerActive=127.0.0.1
 # Hostname=Zabbix server
 HostnameItem=system.hostname
 Include=/etc/zabbix/zabbix_agent2.d/*.conf
 ControlSocket=/tmp/agent.sock
 AllowKey=system.run[*]
 Include=./zabbix_agent2.d/plugins.d/*.conf

***サービス制御 [#y458e0f3]

-Zabbixサービスの起動
 systemctl start zabbix-server
 systemctl start zabbix-web-service
 systemctl enable zabbix-server
 systemctl enable zabbix-web-service

-自動起動設定
--Zabbix Agent(C言語版)
 systemctl start zabbix-agent
 systemctl enable zabbix-agent

--Zabbix Agent2(Go言語版)
 systemctl start zabbix-agent2
 systemctl enable zabbix-agent2

*参考情報 [#l5cc26a9]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS