如何在 Ubuntu 22.04 上使用 Nginx 安装 LibreNMS
本教程适用于这些操作系统版本
- Ubuntu 16.04(Xenial Xerus)
在此页
- 先决条件
- 开始
- 安装 Nginx、PHP 和 MariaDB 服务器
- 创建 LibreNMS 数据库
- 安装和配置 LibreNMS
- 为 LibreNMS 创建 Nginx 虚拟主机
- 访问 LibreNMS 网络界面
- 结论
LibreNMS 是一款免费、开源且功能强大的网络监控工具,适用于基于 Linux 的操作系统。它允许您通过 Web 浏览器监控所有主要操作系统以及网络设备,包括 Cisco、Juniper、Foundry、FreeBSD、Brocade 等。 LibreNMS 使用多种网络协议,如 SNMP、ARP、CDP、FDP、LLDP、OSPF 和 BGP 来自动发现所有网络操作系统和设备。它提供了广泛的功能,包括自动发现、API 访问、可定制的警报、自动更新等等。
在本教程中,我们将向您展示如何在 Ubuntu 22.04 上安装 LibreNMS 的分步说明。
先决条件
- 一台运行 Ubuntu 22.04 的服务器。
- 在您的服务器上配置了根密码。
入门
首先,建议将您的系统包更新到最新版本。您可以使用以下命令执行此操作:
apt-get update -y
更新所有包后,使用以下命令安装 LibreNMS 所需的所有依赖项:
apt-get install rrdtool whois fping imagemagick graphviz mtr-tiny nmap python3-mysqldb snmp snmpd python3-pip python3-memcache mtr-tiny acl unzip git curl wget -y
安装所有依赖项后,您可以继续下一步。
安装 Nginx、PHP 和 MariaDB 服务器
接下来,您需要在服务器中安装 Nginx 服务器、MariaDB 服务器、PHP 和其他 PHP 扩展。我们将使用 php fastcgi 进程管理器 (PHP-FPM)。您可以通过运行以下命令来安装所有这些:
apt-get install nginx mariadb-server php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-bcmath php-imap php-json php-xml php-snmp php-fpm php-zip -y
安装所有包后,您需要在 php.ini 文件中设置时区。
nano /etc/php/8.1/fpm/php.ini
nano /etc/php/8.1/cli/php.ini
定义您的系统时区,如下所示:
date.timezone = UTC
完成后保存并关闭 conf 文件。然后,重新启动 PHP-FPM 服务以应用更改:
systemctl restart php8.1-fpm
完成后,您可以继续下一步。
创建 LibreNMS 数据库
接下来,您需要为 LibreNMS 创建数据库和用户。
首先,使用以下命令登录到 MariaDB shell:
mysql
登录后,使用以下命令创建数据库和用户:
MariaDB [(none)]> create database librenmsdb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> grant all privileges on librenmsdb.* to IDENTIFIED by "password";
接下来,使用以下命令刷新权限并退出 MariaDB shell:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
接下来,编辑 MariaDB 配置文件并修改一些推荐设置:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
在 [mysqld] 部分中添加以下行:
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
保存并关闭文件,然后重新启动 MariaDB 服务以应用更改:
systemctl restart mariadb
此时,您的 MariaDB 已配置完毕。您现在可以继续下一步。
安装和配置 LibreNMS
首先,您需要为 LibreNMS 创建一个专用用户。您可以使用以下命令添加它:
useradd -r -M -d /opt/librenms librenms
接下来,使用以下命令将 librenms 用户添加到 www-data 组:
usermod -a -G librenms www-data
接下来,将目录更改为 /opt 并使用以下命令下载最新版本的 LibreNMS:
cd /opt
git clone https://github.com/librenms/librenms.git librenms
接下来,使用以下命令为 LibreNMS 创建一个日志文件:
touch /opt/librenms/logs/librenms.log
接下来,使用以下命令复制 SNMP 示例配置文件:
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
接下来,编辑 snmpd.conf 文件:
nano /etc/snmp/snmpd.conf
找到以下行:
com2sec readonly default RANDOMSTRINGGOESHERE
并且,将其替换为以下行:
com2sec readonly default mysnmpserverkey
保存并关闭文件,然后下载 SNMP 发行版二进制文件并将其复制到所需位置:
curl -o distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x distro
mv distro /usr/bin/distro
接下来,重新启动 SNMP 服务以应用更改:
systemctl restart snmpd
接下来,您还需要将 LibreNMS cron 和 logrotate 文件复制到所需位置。您可以使用以下命令复制它们:
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
接下来,将目录更改为 librenms 并使用以下命令安装所需的依赖项:
cd /opt/librenms
./scripts/composer_wrapper.php install --no-dev
安装所有依赖项后,更改 librenms 目录的所有权并使用以下命令授予必要的权限:
chown -R www-data:librenms /opt/librenms
chmod -R 775 /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/
完成后,您可以继续下一步。
为 LibreNMS 创建 Nginx 虚拟主机
接下来,您需要为 LibreNMS 创建一个 Nginx 虚拟主机配置文件。您可以使用以下命令创建它:
nano /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 /api/v0 {
try_files $uri $uri/ /api_v0.php?$query_string;
}
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
保存并关闭文件,然后使用以下命令检查 Nginx 是否存在任何语法错误(nginx 错误):
nginx -t
您应该看到以下输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
我们还想重新启动 PHP 一次,以确保您不会收到“librenms 502 bad gateway”,这可能意味着 php8.1-fpm 未启动。
systemctl php8.1-fpm restart
可以肯定的是,我们将运行一个命令来停止 Apache2,以防万一,它已安装在您的系统上。因此,如果下一个命令失败,那么#s 非常好,因为它只是意味着您只有 Nginx 按预期运行。
systemctl stop apache2
现在我们重新启动 Nginx 服务以应用更改:
systemctl restart nginx
您还可以使用以下命令验证 Nginx 服务状态:
systemctl status nginx
您应该得到以下输出:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-07-02 08:35:53 UTC; 8s ago
Docs: man:nginx(8)
Process: 49538 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 49539 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 49543 (nginx)
Tasks: 3 (limit: 4579)
Memory: 3.3M
CPU: 43ms
CGroup: /system.slice/nginx.service
??49543 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
??49544 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
??49545 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Jul 02 08:35:53 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 02 08:35:53 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
完成后,您可以继续下一步。
访问 LibreNMS Web 界面
现在,打开您的 Web 浏览器并输入 URL http://librenms.example.com 以访问 LibreNMS。您将被重定向到预安装检查页面:

确保安装了所有必需的扩展,然后单击数据库设置。您应该会看到以下页面:

提供您的数据库用户名、数据库名称、密码,然后单击“检查凭据”按钮。一旦成功,您应该会看到以下页面:

现在,单击“构建数据库”按钮。您应该会看到以下页面:

接下来,单击管理员用户创建按钮。您应该会看到以下页面:

提供您的管理员用户名、电子邮件、密码,然后单击“添加用户”按钮。您应该会看到以下页面:

接下来,单击完成安装按钮。您应该会看到以下页面:

接下来,单击“验证您的安装”。您应该会看到 LibreNMS 登录页面:

提供您的 LibreNMS 管理员用户名和密码,然后单击“登录”按钮。您应该会看到 LibreNMS 仪表板:

结论
恭喜!您已经在 Ubuntu 22.04 服务器上成功安装并配置了 LibreNMS。您现在可以从 LibreNMS 仪表板添加远程服务器或网络设备,并通过网络浏览器开始监控。如果您有任何问题,请随时问我。