- 追加された行はこの色です。
- 削除された行はこの色です。
[[監視システム(NMS)]]
目次~
#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 installzabbix-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
-データベースの作成
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]