目次
シングル構成のZabbix Proxy(SQLite版)をRocky Linux 8.x系にインストールする手順。
基本的なインストールとして、以下のURLの手順を理解した上で行うものとする。
https://www.zabbix.com/jp/download
| Category | Package & Version | Architecture | Install Type | Repository |
| Zabbix | zabbix-release-6.0-2 | el8.x86-64 | RPM | Zabbix |
| Zabbix | zabbix-proxy-sqlite3-6.0.7-1 | el8.x86-64 | RPM | Zabbix |
| Zabbix | zabbix-sql-scripts-6.0.7-1 | el8.x86-64 | RPM | Zabbix |
| Zabbix | zabbix-js-6.0.7-1 | el8.x86-64 | RPM | Zabbix |
| Zabbix | zabbix-selinux-policy-6.0.7-1 | el8.x86-64 | RPM | Zabbix |
| Category | Package & Version | Architecture | Install Type | Repository |
| Zabbix | zabbix-agent-6.0.7-1 | el8.x86-64 | RPM | Zabbix |
| Zabbix | zabbix-agent2-6.0.7-1 | el8.x86-64 | RPM | Zabbix |
| Category | Package & Version | Architecture | Install Type | Repository |
| Zabbix | zabbix-get-6.0.7-1 | el8.x86-64 | RPM | Zabbix |
| Zabbix | zabbix-sender-6.0.7-1 | el8.x86-64 | RPM | Zabbix |
インストールタイプは「サーバ(GUI使用)」構成を選択。
このタイプではEL6までとの互換性を確保するためのツール類が初めからインストールされるため、使いやすい構成で始めることができる。
サーバ用途ではGUIは不要のため、CLIモードに変更する。
systemctl set-default multi-user.target
# systemctl get-default multi-user.target
ZabbixのSELinux用ポリシーが提供される様になっているため、SELinuxを有効化した状態で導入することが可能となった。
利用環境に合わせてSELinuxの有効/無効を調整すること。
(RHEL9 / CentOS Stream 9以降はSELinuxの無効化が困難となるため、将来的には有効化した状態での運用が標準になると思われる。)
/etc/ssh/sshd_configに対して、適宜設定を行う。
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
※注意※
上記の設定反映後、新たにターミナルセッションを開いてSSH接続ができることを確認すること。
Firewallが不要な場合にはサービスを停止する。
systemctl stop firewalld systemctl disable firewalld
システムの動作上、不要となるサービスは停止する。
# 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
監視システムにおいて時刻のズレは運用上の支障となるため、必ずサーバの時刻同期を設定する。
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] +/- 4093usMS列で「*」が表示されているサーバと同期が完了している。
OS導入段階のパッケージを最新化する。
dnf update
ここまでの設定を一括反映するため、OSの再起動を行う。
reboot
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
dnf install zabbix-proxy-sqlite3 zabbix-sql-scripts zabbix-selinux-policy zabbix-js zabbix-get zabbix-sender
dnf install zabbix-agent
dnf install zabbix-agent2
Zabbixのパッケージインストールだけでは導入されないミドルウェアを先にインストールする。
DBとして使用するSQLite3を導入する。
dnf install sqlite
SNMPTrapを受信するためにsnmptrapdサービスを導入する。
dnf install net-snmp net-snmp-utils net-snmp-perl
操作面での互換性維持、並びにZabbixを運用する上で必要となるツールを導入する。
net-tools bind-utils nmap wget telnet※インストールタイプを「サーバ(GUI使用)」にしていた場合、一部のツールはすでに導入されている。
dnf install net-tools bind-utils nmap wget telnet
mkdir /data mkdir /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
SNMPTrap受信ログを/var/log/snmpd/snmptrap.logへ出力する方式に変更。
SNMPTrap受信時には、zabbix_trap_receiver.plに連携する方式に設定。
OPTIONS="-Lsd -Lf /var/log/snmpd/snmptrap.log -p /var/run/snmptrapd.pid udp:162"
*.info;mail.none;authpriv.none;cron.none;local6.none /var/log/messages
local6.* /var/log/snmpd/snmptrap.log
Zabbixのソースコードに同梱されている zabbix_trap_receiver.pl を用いてSNMPTrapを処理する方式の実装を行う。
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.0.tar.gz
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
vi /usr/local/bin/zabbix_trap_receiver.pl
$SNMPTrapperFile = '/var/log/snmpd/zabbix_traps.log';
authCommunity log,execute public perl do "/usr/local/bin/zabbix_trap_receiver.pl"
disableauthorization yes perl do "/usr/local/bin/zabbix_trap_receiver.pl"
snmp.confを作成し、MIBの読み込みディレクトリの指定を行う。
ファイルは存在しないため、手動で作成する。
MIBDIRS /usr/share/snmp/mibs MIBS all
SNMP関連のログローテーション設定を作成。
/var/log/snmpd/*.log {
weekly
rotate 4
compress
delaycompress
missingok
notifempty
create 0664 root root
}systemctl restart rsyslog
systemctl enable snmptrapd systemctl start snmptrapd
以下は最低限の設定。要件に合わせてパラメータを調整する。
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
セキュリティ的な問題が発生する可能性があるため、パラメータの意味を理解した上で適用して下さい。
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
systemctl start zabbix-proxy systemctl enable zabbix-proxy
systemctl start zabbix-agent systemctl enable zabbix-agent
systemctl start zabbix-agent2 systemctl enable zabbix-agent2