LibreNMS|Quick install in 5 minutes (NGINX) 最新版

瀏覽人次: 3244
2022-08-30 更新

LibreNMS 是一套開源的網路與服務監控系統,在安裝過程中,常常一個不注意就安裝失敗,就讓 ELK 達人帶領各位一起簡單安裝不踩雷!

ELK 達人是使用 VMware 架設 Ubuntu 20.04 LTS,準備好,就跟著 ELK 達人一起安裝 Let's GO~!

Install Required Packages

$ sudo apt install acl curl fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-json php-mbstring php-mysql php-snmp php-xml php-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd python3-pip

Add Librenms User

$ sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

Download LibreNMS

$ cd /opt
$ sudo git clone https://github.com/librenms/librenms.git

Set Permissions

$ sudo chown -R librenms:librenms /opt/librenms
$ sudo chmod 771 /opt/librenms
$ sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
$ sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

Install PHP dependencies

注意 須分開 單行執行!

$ sudo su - librenms
> ./scripts/composer_wrapper.php install --no-dev
> exit
$ sudo wget https://getcomposer.org/composer-stable.phar
$ sudo mv composer-stable.phar /usr/bin/composer
$ sudo chmod +x /usr/bin/composer

Set Timezone

$ sudo vim /etc/php/8.1/fpm/php.ini
$ sudo vim /etc/php/8.1/cli/php.ini

尋找關鍵字 date.timezone = "Asia/Taipei" 註解要記得拿掉!

$ sudo timedatectl set-timezone Asia/Taipei

Configure MariaDB

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
Within the [mysqld] section add:

innodb_file_per_table=1
lower_case_table_names=0
$ sudo systemctl enable mariadb
$ sudo systemctl restart mariadb
$ sudo mysql -u root

> CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
> CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
> FLUSH PRIVILEGES;
> exit

Configure PHP-FPM

$ sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf
$ sudo vim /etc/php/8.1/fpm/pool.d/librenms.conf
Change [www] to [librenms]:
[librenms]

Change user and group to "librenms":
user = librenms
group = librenms

Change listen to a unique name:
listen = /run/php-fpm-librenms.sock

Configure Web Server

$ sudo vim /etc/nginx/conf.d/librenms.conf
server {
 listen      80;
 server_name librenms.example.com;
 root        /opt/librenms/html;
 index       index.php;

 charset utf-8;
 gzip on;
 gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
 location / {
  try_files $uri $uri/ /index.php?$query_string;
 }
 location ~ [^/].php(/|$) {
  fastcgi_pass unix:/run/php-fpm-librenms.sock;
  fastcgi_split_path_info ^(.+.php)(/.+)$;
  include fastcgi.conf;
 }
 location ~ /.(?!well-known).* {
  deny all;
 }
}
$ sudo rm -rf /etc/nginx/sites-enabled/default
$ sudo systemctl restart nginx
$ sudo systemctl restart php8.1-fpm

Enable lnms command completion

$ sudo ln -s /opt/librenms/lnms /usr/bin/lnms
$ sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

Configure snmpd

$ sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
$ sudo vim /etc/snmp/snmpd.conf

RANDOMSTRINGGOESHERE 修改成 SNMP community

$ sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
$ sudo chmod +x /usr/bin/distro
$ sudo systemctl enable snmpd
$ sudo systemctl restart snmpd

Cron job

$ sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

Copy logrotate config

$ sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Web installer

http://IP/install

librenms

librenms

Password 是建立 mysql 時的密碼。

librenms

librenms

可以自行設置登入時的帳號密碼。


Troubleshooting

sudo su - librenms
./validate.php

Tell LibreNMS to add duplicate devices

$ sudo vim /opt/librenms/config.php

Add

$config['allow_duplicate_sysName'] = true;
快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。