這是本文件的舊版!
在 K3s 環境透過 Rancher 建立 LibreNMS
- 採用 K3s 環境已經定義好的
- ingress + tls → librenms.k3s.ichiayi.com
- nfs storage
- 使用官方提供的 helm chart 進行安裝配置
安裝程序
- 加入 helm repo
helm repo add librenms https://www.librenms.org/helm-charts helm repo update
- 產生 appkey Exp.
$ echo "base64:$(head -c 32 /dev/urandom | base64)" base64:SkGsCIF2TZtQZx8swneh80I1sHQ3AYRD8UCkeze70Bs=
- 設定配置檔 librenms-values.yaml
librenms: appkey: "base64:dC6DWwcnR6zeFEhd3kgIO1PN3djVfVBhfiHCxjicOXw=" timezone: "Asia/Taipei" configuration: |- $config['distributed_poller'] = true; $config['distributed_poller_group'] = 0; $config['rrdcached'] = "librenms-rrdcached:42217"; ### RRD 設定 $config['rrd_dir'] = "/data/rrd"; $config['rrdtool_version'] = "1.8.0"; ### 確保使用 UTC 時間戳 $config['rrd']['step'] = 300; $config['rrd']['heartbeat'] = 600; image: repository: librenms/librenms tag: "25.11.0" frontend: replicas: 1 resources: requests: cpu: 200m memory: 512Mi limits: cpu: 500m memory: 1Gi poller: replicas: 3 resources: requests: cpu: 500m memory: 1Gi limits: cpu: 1 memory: 2Gi # ---------------------------------------------- # RRDcached 服務 (不再包含 persistence 設定) # ---------------------------------------------- rrdcached: enabled: true persistence: enabled: true journal: size: 1Gi storageClassName: "nfs-client" rrdcached: size: 10Gi storageClassName: "nfs-client" envs: - name: WRITE_JITTER value: "1800" - name: WRITE_TIMEOUT value: "1800" - name: LOG_LEVEL value: "LOG_INFO" # 關鍵:確保 rrdcached 監聽所有介面 - name: LISTEN value: "0.0.0.0:42217" resources: requests: cpu: 100m memory: 500Mi limits: cpu: 500m memory: 1Gi # ---------------------------------------------- # MySQL(採用 Bitnami 內建,可用 NFS 做為 PVC) # ---------------------------------------------- mysql: enabled: true architecture: standalone image: repository: bitnamilegacy/mysql auth: rootPassword: "change_me_root" password: "change_me_librenms" database: "librenms" username: "librenms" primary: extraEnvVars: - name: TZ value: "Asia/Taipei" - name: MYSQL_EXTRA_FLAGS value: "--default-time-zone=+08:00" extraFlags: "--default-time-zone=+08:00 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci" persistence: enabled: true size: 10Gi storageClass: nfs-client accessModes: - ReadWriteOnce # MySQL 建議 RWO(安全) resources: requests: cpu: 200m memory: 512Mi # ---------------------------------------------- # Redis(建議用 NFS PVC, 但也可用 emptyDir) # ---------------------------------------------- redis: enabled: true architecture: standalone master: persistence: enabled: true size: 2Gi storageClass: nfs-client accessModes: - ReadWriteOnce resources: requests: cpu: 100m memory: 256Mi # ---------------------------------------------- # Ingress # ---------------------------------------------- ingress: enabled: true className: nginx annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/proxy-body-size: "64m" nginx.ingress.kubernetes.io/ssl-redirect: "false" hosts: - host: librenms.k3s.ichiayi.com paths: - path: / pathType: Prefix tls: - secretName: wildcard-k3s-ichiayi-com-tls hosts: - librenms.k3s.ichiayi.com
- 執行安裝
helm install librenms -f librenms-values.yaml librenms/librenms- 如果安裝後要調整參數(修改 librenms-values.yaml), 需要修改後執行 helm upgrade
helm upgrade librenms -f librenms-values.yaml librenms/librenms
- 進入 Librenms 網頁 Exp. https://librenms.k3s.ichiayi.com
- 預設帳號密碼 admin / librenms
FAQ
1. 如果無法使用預設帳號密碼登入
- 找到 frontend 的 pod(或任意一個 librenms pod 都可以)
- 在容器內部執行建立帳號指令
php /opt/librenms/artisan user:add admin \ --password=librenms \ [email protected] \ --role=admin
