#author("2025-10-25T07:50:04+00:00","default:t_take","t_take") 目次~ #contents *概要 [#z6851c41] シングル構成のZabbix Proxy(SQLite版)をRocky Linux 8.x系にインストールする手順。~ 基本的なインストールとして、以下のURLの手順を理解した上で行うものとする。~ https://www.zabbix.com/jp/download **前提環境 [#t49e781e] -OS/MW |BGCOLOR(#7498FF):Category|BGCOLOR(#7498FF):Package & Version|BGCOLOR(#7498FF):Architecture|BGCOLOR(#7498FF):Install Type|BGCOLOR(#7498FF):Repository| |BGCOLOR(#9898FF):OS|Rocky Linux release 8.6 (Green Obsidian)|x86-64|RPM|Rocky-Stream-AppStream| |BGCOLOR(#9898FF):SQLite |sqlite-3.26.0-15|el8.x86-64|RPM|Rocky-Stream-AppStream| |BGCOLOR(#9898FF):SNMP|net-snmp-5.8-25|el8.x86-64|RPM|Rocky-Stream-AppStream| -Zabbix Proxy |BGCOLOR(#7498FF):Category|BGCOLOR(#7498FF):Package & Version|BGCOLOR(#7498FF):Architecture|BGCOLOR(#7498FF):Install Type|BGCOLOR(#7498FF):Repository| |BGCOLOR(#9898FF):Zabbix|zabbix-release-6.0-2|el8.x86-64|RPM|Zabbix| |BGCOLOR(#9898FF):Zabbix|zabbix-proxy-sqlite3-6.0.7-1|el8.x86-64|RPM|Zabbix| |BGCOLOR(#9898FF):Zabbix|zabbix-sql-scripts-6.0.7-1|el8.x86-64|RPM|Zabbix| |BGCOLOR(#9898FF):Zabbix|zabbix-js-6.0.7-1|el8.x86-64|RPM|Zabbix| |BGCOLOR(#9898FF):Zabbix|zabbix-selinux-policy-6.0.7-1|el8.x86-64|RPM|Zabbix| -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.0.7-1|el8.x86-64|RPM|Zabbix| |BGCOLOR(#9898FF):Zabbix|zabbix-agent2-6.0.7-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.0.7-1|el8.x86-64|RPM|Zabbix| |BGCOLOR(#9898FF):Zabbix|zabbix-sender-6.0.7-1|el8.x86-64|RPM|Zabbix| *1. OS設定 [#caec7c76] **インストール [#i14c8391] ***インストールタイプ [#g4671e04] インストールタイプは「サーバ(GUI使用)」構成を選択。~ このタイプではEL6までとの互換性を確保するためのツール類が初めからインストールされるため、使いやすい構成で始めることができる。~ ***ランレベル [#b6342ae1] サーバ用途ではGUIは不要のため、CLIモードに変更する。 -設定 systemctl set-default multi-user.target -確認 # systemctl get-default multi-user.target **セキュリティ設定 [#a7bf9b73] ***SELinux [#ac17cb81] ZabbixのSELinux用ポリシーが提供される様になっているため、SELinuxを有効化した状態で導入することが可能となった。~ 利用環境に合わせてSELinuxの有効/無効を調整すること。~ (RHEL9 / CentOS Stream 9以降はSELinuxの無効化が困難となるため、将来的には有効化した状態での運用が標準になると思われる。)~ ***SSH [#m94e2fb3] /etc/ssh/sshd_configに対して、適宜設定を行う。~ -rootログイン禁止 PermitRootLogin no -パスワード認証禁止(鍵認証のみ許可) PasswordAuthentication no -空パスワード禁止 PermitEmptyPasswords no -設定反映 設定後、sshdを再起動すると設定が反映される。 ※注意※~ 上記の設定反映後、新たにターミナルセッションを開いてSSH接続ができることを確認すること。~ ***Firewallの無効化 [#d50b56ea] Firewallが不要な場合にはサービスを停止する。 systemctl stop firewalld systemctl disable firewalld ***不要なサービスの停止 [#bc212ccc] システムの動作上、不要となるサービスは停止する。~ # systemctl disable [Service Name] 何が不要なサービスであるかは用途・環境により差異があるため個別に検討が必要。~ -ポートをバインドしているサービスの確認~ 以下のコマンドにてポートの待受状況を確認し、不要なものは停止させる。~ ss -tulpn -起動サービスの確認~ 以下のコマンドにて、起動状態となっているサービスから不要なものを選定する。~ systemctl list-units --type service ~ 個人的に不要と思うサービスは以下。~ systemctl disable avahi-daemon.service systemctl disable cups.service systemctl disable gssproxy.service systemctl disable import-state.service systemctl disable iscsi-shutdown.service systemctl disable kdump.service systemctl disable nis-domainname.service systemctl disable selinux-autorelabel-mark.service systemctl disable sssd.service systemctl disable unbound-anchor.timer ***時刻同期 [#nbf4ccf1] 監視システムにおいて時刻のズレは運用上の支障となるため、必ずサーバの時刻同期を設定する。~ -設定 国内で使用する場合には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列で「*」が表示されているサーバと同期が完了している。~ ***システムのアップデート [#cfe78123] OS導入段階のパッケージを最新化する。~ dnf update ***設定の反映 [#u94797d2] ここまでの設定を一括反映するため、OSの再起動を行う。~ reboot *パッケージ導入 [#b4e6b3fe] **Zabbixインストール [#j9122e5b] Zabbixリポジトリをインストールする。~ -リポジトリの組み込み rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm dnf clean all -Zabbixのインストール dnf install zabbix-proxy-sqlite3 zabbix-sql-scripts zabbix-selinux-policy 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 **ミドルウェアの導入 [#ec44207f] Zabbixのパッケージインストールだけでは導入されないミドルウェアを先にインストールする。~ ***SQLite [#a8199985] DBとして使用するSQLite3を導入する。~ -インストール dnf install sqlite ***NET-SNMP [#i8c83a69] SNMPTrapを受信するためにsnmptrapdサービスを導入する。~ -インストール dnf install net-snmp net-snmp-utils net-snmp-perl **コマンドラインツール類の導入 [#p878d9f6] 操作面での互換性維持、並びにZabbixを運用する上で必要となるツールを導入する。 -対象 net-tools bind-utils nmap wget telnet ※インストールタイプを「サーバ(GUI使用)」にしていた場合、一部のツールはすでに導入されている。~ -手順 dnf install net-tools bind-utils nmap wget telnet ***Zabbixデータベース作成 [#va7bd457] -データベース格納領域の作成 mkdir /data mkdir /data/sqlite_db chwon zabbix.zabbix /data/sqlite_db chown zabbix.zabbix /data/sqlite_db -データベースの作成 cd /data/sqlite_db cat /usr/share/doc/zabbix-sql-scripts/sqlite3/proxy.sql | sqlite3 zabbix-proxy.db chown zabbix.zabbix zabbix-proxy.db **NET-SNMP設定 [#jf0b8992] ***ログ出力先の変更 [#vf909957] 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の処理方法を変更 [#tcc5de53] Zabbixのソースコードに同梱されている zabbix_trap_receiver.pl を用いてSNMPTrapを処理する方式の実装を行う。~ -Zabbixのソースコードを取得 wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.0.tar.gz -zabbix_trap_receiver.plの取得と配置 tar xfvz zabbix-6.0.0.tar.gz ln -s zabbix-6.0.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の読み込み設定 [#da99ccec] snmp.confを作成し、MIBの読み込みディレクトリの指定を行う。 ファイルは存在しないため、手動で作成する。~ -/etc/snmp/snmp.conf MIBDIRS /usr/share/snmp/mibs MIBS all ***ログローテーション [#c9315114] SNMP関連のログローテーション設定を作成。 -/etc/logrotate.d/snmp /var/log/snmpd/*.log { weekly rotate 4 compress delaycompress missingok notifempty create 0664 root root } ***設定の反映 [#a8dc84bc] -サービス再起動 systemctl restart rsyslog -サービス起動 systemctl enable snmptrapd systemctl start snmptrapd **Zabbix Proxy設定 [#sa4fffa4] 以下は最低限の設定。要件に合わせてパラメータを調整する。~ ***Zabbix Proxy [#j9555063] -/etc/zabbix/zabbix_proxy.conf Server=[Zabbix Server IP] HostnameItem=system.hostname LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 EnableRemoteCommands=1 PidFile=/run/zabbix/zabbix_proxy.pid SocketDir=/run/zabbix DBName=/data/sqlite_db/zabbix-proxy.db ProxyOfflineBuffer=4 ConfigFrequency=600 StartPollers=3 StartIPMIPollers=1 StartPollersUnreachable=1 StartTrappers=3 StartPingers=3 StartDiscoverers=1 StartHTTPPollers=1 StartVMwareCollectors=1 VMwareCacheSize=8M SNMPTrapperFile=/tmp/zabbix_traps.tmp StartSNMPTrapper=1 CacheSize=8M Timeout=4 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1 ***Zabbix Agent [#n08e1ade] セキュリティ的な問題が発生する可能性があるため、パラメータの意味を理解した上で適用して下さい。~ -/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 ***サービス制御 [#c08c34cc] -Zabbixサービスの起動 systemctl start zabbix-proxy systemctl enable zabbix-proxy -自動起動設定~ --Zabbix Agent(C言語版) systemctl start zabbix-agent systemctl enable zabbix-agent --Zabbix Agent2(Go言語版) systemctl start zabbix-agent2 systemctl enable zabbix-agent2 *参考情報 [#h18a1700]