Rocky Linux 9.5 LibreNMS 安裝教學 安裝環境 參考資料 LibreNMS官網 https://docs.librenms.org/Installation/Install-LibreNMS/ 安裝過程 以下作業如果未特別說明皆是以 root 執行 (因為我懶得打 sudo ... =_=a ) 前置作業 首先到DNS主機建立一筆 LibreNMS 的 A Rec 然後回到Linux進行作業系統更新、安裝EPEL Release。 dnf update -y dnf install epel-release -y 安裝一些常用的工具,安裝完之後重新開機。 dnf install btop htop glances fastfetch iotop iftop -y systemctl reboot 開始安裝 鍵人我選擇用Apache dnf -y install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm dnf module reset php dnf module enable php:8.2 dnf install bash-completion cronie fping gcc git httpd ImageMagick mariadb-server mtr net-snmp net-snmp-utils nmap php-fpm php-cli php-common php-curl php-gd php-gmp php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-devel python3-PyMySQL python3-redis python3-memcached python3-pip python3-systemd rrdtool unzip 新增LibreNMS User useradd librenms -d /opt/librenms -M -r -s "$(which bash)" 下載 LibreNMS cd /opt git clone https://github.com/librenms/librenms.git 設定權限 chown -R librenms:librenms /opt/librenms chmod 771 /opt/librenms setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ 安裝PHP相依性套件 先切換為使用者 librenms su - librenms 執行批次檔 ./scripts/composer_wrapper.php install --no-dev exit 設定PHP時區 編輯 /etc/php.ini vim /etc/php.ini #找到 ;date.timezone = #改寫為 date.timezone = "Asia/Taipei" ESC => :wq 存檔離開 順便確認一下系統時區 timedatectl 如果時區不對可以透過下面指令變更時區 timedatectl set-timezone "Asia/Taipei" 設定MariaDB 編輯 mariadb-server.cnf vim /etc/my.cnf.d/mariadb-server.cnf 在 [mysqld] 下面加入下面的設定後存檔離開 innodb_file_per_table=1 lower_case_table_names=0 重新啟動 MariaDB Service 並設定為開機自動啟動 systemctl enable mariadb systemctl restart mariadb systemctl status mariadb 執行下面指令新增mysql使用者及密碼 mysql -u root CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'librenms'@'localhost' IDENTIFIED BY '改你要設定的密碼'; GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; exit 設定PHP-FPM cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf vim /etc/php-fpm.d/librenms.conf 變更下面設定如圖片所示後存檔離開 [librenms] user = librenms group = librenms listen = /run/php-fpm-librenms.sock 設定Apache 建立librenms.conf vim /etc/httpd/conf.d/librenms.conf 貼上下面設定值,修改LibreNMS主機FQDN,並存檔離開 DocumentRoot /opt/librenms/html/ ServerName LibreNMS主機FQDN AllowEncodedSlashes NoDecode Require all granted AllowOverride All Options FollowSymLinks MultiViews # Enable http authorization headers SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php-fpm-librenms.sock|fcgi://localhost" 設定開機啟動 httpd、php-fpm systemctl enable --now httpd systemctl enable --now php-fpm 執行下面指令 chcon -t httpd_sys_rw_content_t /opt/librenms/.env 關閉 SELinux 編輯SELinux設定檔 vim /etc/selinux/config 將SELINUX設定改為disabled,存檔之後重新開機 SELINUX=disabled systemctl reboot 允許fping 其實關閉了SELinux應該不用做這一段,但反正官方文件有就加減做 在root建立temp資料匣 cd / mkdir temp chmod 777 temp cd /temp 建立http_fping.tt檔案 touch http_fping.tt vim http_fping.tt 將下面內容貼入 http_fping.tt 後存檔離開 module http_fping 1.0; require { type httpd_t; class capability net_raw; class rawip_socket { getopt create setopt write read }; } #============= httpd_t ============== allow httpd_t self:capability net_raw; allow httpd_t self:rawip_socket { getopt create setopt write read }; 執行下面指令 checkmodule -M -m -o http_fping.mod http_fping.tt semodule_package -o http_fping.pp -m http_fping.mod semodule -i http_fping.pp 設定Firewall 先確認Firewall狀態 firewall-cmd --list-all 允許 http、https、syslog、snmp 服務 syslog服務後面會用到,snmp是當建置DR另一台LibreNMS反向偵測時會用到 firewall-cmd --permanent --add-service http --add-service https --add-service syslog --add-service snmp Reload設定,再次確認 firewall狀態 firewall-cmd --reload firewall-cmd --list-all 設定lnms指令連結 ln -s /opt/librenms/lnms /usr/bin/lnms cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/ 設定 snmpd cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf vim /etc/snmp/snmpd.conf 將下面community置換為你所設定的值,其他資訊自己改一改後存檔離開 安裝LibreNMS Linux Distro 直接執行BJ4,設定啟動並執行SNMP Service curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x /usr/bin/distro systemctl enable snmpd systemctl restart snmpd systemctl status snmpd 複製Cron Job cp /opt/librenms/dist/librenms.cron /etc/cron.d/librenms 啟動排程Timer cp /opt/librenms/dist/librenms-scheduler.service /opt/librenms/dist/librenms-scheduler.timer /etc/systemd/system/ systemctl enable librenms-scheduler.timer systemctl start librenms-scheduler.timer 複製循環Log設定值 cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms 初始設定LibreNMS Browser 開啟 http://LibreNMS.主機.FQDN/install,點擊資料庫 進行DB設定 建立DB DB建立完成,繼續設定admin帳號密碼 鍵入自己喜歡的使用者 Add User 完成設定 驗證安裝 出現這個問題不用驚慌,修改 .env 即可 cd /opt/librenms vim .env 或者也可以透過CLI執行下面指令驗證 cd /opt/librenms/ su librenms ./validate.php 到此LibreNMS基本安裝完成,優化校調、Plugins安裝 下回分解。