如何在 Debian 11 上安装 LibreNMS
在此页
- 先决条件
- 安装依赖包
- 设置新用户库
- 设置时区系统和 PHP
- 设置 MariaDB 并创建数据库
- 创建一个新的 PHP-FPM 池
- 下载 LibreNMS
- 安装 LibreNMS PHP 依赖项
- 为 LibreNMS 配置 Nginx
- 开始安装 LibreNMS
- - 修复数据库时区
- - 修复系统错误
LibreNMS 是一个基于 PHP 并具有自动发现支持的开源网络监控系统。它是在 GPLv3 许可下发布的 Observium 监控软件的社区分支。使用 LibreNMS,您可以监控 Linux、Windows 和 BSD 等操作系统,它还支持来自 Aruba、Cisco、Dell、D-Link、HP、Mikrotik 等多家供应商的各种网络硬件。
作为一个功能齐全的监控系统,LibreNMS 提供了丰富的功能,具有多种集成和多种协议数据收集功能。
以下是 LibreNMS 的一些显着特性:
- 使用 CDP、BGP、SNMP、OSPF 和 ARP 等多种协议自动发现您的整个网络。
- 使用电子邮件、slacks、IRC、Rocket.chat、Telegram 等的多种警报方法。
- 用于管理、绘制图表和从您的监控系统检索数据的广泛 API。
- 支持计费系统,根据网络使用或传输生成带宽账单。
- 支持多种身份验证方法,例如 MySQL、Radius、LDAP、HTTP 和 Active Directory。
- 支持双因素身份验证
- 与 Graylog、NfSen、Nagios 插件、Oxidized、RANCID 等第三方应用程序的多种集成。
- 广泛支持硬件供应商,请在此处查看您的供应商。
- 用户友好且可自定义的仪表板。
- 让您的 LibreNMS 软件保持自动更新支持。
- Android 和 iOS 原生应用,提供核心功能。
在本指南中,您将学习如何在 Debian 11 Bullseye 上安装和配置 LibreNMS 监控工具。
先决条件
要完成本指南,请确保您满足以下要求:
- 操作系统:Debian 11 Bullseye
- 根权限
现在让我们开始安装。
安装包依赖
在这第一步中,您将为 LireNMS 安装基本和必要的软件包。您将安装 LEMP 堆栈、Python 包、snmpd 和其他系统实用程序,例如 curl、fping、git 和 imagemagick。
1. 使用以下命令刷新和更新 Debian 存储库。
sudo apt update
2. 现在执行以下命令来安装软件包依赖项。
sudo apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-gmp php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-pip python3-systemd rrdtool snmp snmpd whois
输入 y 确认安装,然后按 Enter 继续。
3. 包依赖安装完成后,执行以下命令启动并启用Nginx、MariaDB、PHP-FPM、snmpd等服务。
sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php7.4-fpm
sudo systemctl enable --now snmpd.service现在您已经完成了 LibreNMS 依赖包的安装。
设置新用户 librenms
在此步骤中,您将创建一个新的系统用户 librenms。您的 LibreNMS 监控工具将在 librenms 用户下运行。
1.执行以下命令创建一个新的librenms用户。
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
您必须知道的选项:
- -d /opt/librenms: 将用户 librenms 的默认主目录设置为 /opt/librenms。
- -M: 不要为用户 librenms 创建主目录。
- -r: 将此用户 librenms 设置为系统用户。
- -s \$ (which bash)\:为用户 librenms 设置默认 shell。 shell 将是命令 which bash 的输出。
2. 接下来,使用以下命令为用户 librenms 创建一个新密码。
passwd librenms
输入一个新的强密码并重复。
继续下一阶段,为 LibreNMS 安装配置您的系统。
设置时区系统和 PHP
时间是监控的重要组成部分。在此步骤中,您将为 PHP 和系统时区设置默认时区,确保两个(PHP 和系统)时区同步并使用相同的时区。
1. 使用以下命令编辑 PHP-FPM 和 CLI 的配置 php.ini。
sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.ini取消注释选项 date.timezone 并将您的时区放在它后面。对于此示例,我们使用时区 Europe/Paris。
date.timezone = Europe/Paris
保存两个配置并退出。
2. 现在重新启动 PHP-FPM 以使用以下命令应用新配置。
sudo systemctl restart php7.4-fpm
3. 之后,执行下面的timedatectl 命令将默认系统时区设置为Europe/Paris。
sudo timedatectl set-timezone Europe/Paris
您已经完成了 PHP 和系统的时区配置。
设置 MariaDB 并创建数据库
在此步骤中,您将为 MariaDB 添加配置作为 LibreNMS 的要求,然后为 LibreNMS 安装创建一个新的 MariaDB 数据库和用户。
1. 使用 nano 编辑器编辑 MariaDB 服务器配置 /etc/mysql/mariadb.conf.d/50-server.cnf。
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
在 [mysqld] 部分下添加以下配置。
[mysqld]
.....
....
innodb_file_per_table=1
lower_case_table_names=0保存配置并退出。
2. 要应用新的 MariaDB 配置,请使用下面的 systemctl 命令重新启动服务。
sudo systemctl restart mariadb
现在您已经向 MariaDB 服务器添加了额外的配置。
3. 接下来,以 root 用户身份使用命令 mysql 登录 MariaDB/MySQL shell,如下所示。
mysql -u root -p
输入您的密码或按 Enter 键登录。
4. 现在执行以下 MariaDB 查询以创建新数据库和用户 librenms。并确保使用您的强密码更改密码 LibreNMSPassword。
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'LibreNMSPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;键入 exit 并按 Enter 从 MariaDB shell 注销。
现在您已经为 LibreNMS 安装创建了数据库和用户。
创建一个新的 PHP-FPM 池
FastCGI 进程管理器 (FPM) 或 PHP-FPM 允许您为 PHP 应用程序自定义池。默认情况下,PHP-FPM 使用配置 /etc/php/7.4/fpm/pool.d/www.conf 运行 www 池。
在他的步骤中,您将为 LibreNMS 创建一个新的自定义 PHP-FPM 池。您将使用配置 /etc/php/7.4/fpm/pool.d/librenms.conf 创建一个新的 PHP-FPM 池 librenms,并将运行在用户 librenms。
1. 首先,使用以下命令将默认池配置 www.conf 复制到 librenms.conf。
cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf
2. 使用 nano 编辑器编辑自定义 librenms.conf 池配置。
sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf
在该行的顶部,将默认用户从 [www] 更改为 [librenms]。
[librenms]
将默认用户和组更改为 librenms。
user = librenms
group = librenms将默认的 PHP-FPM sock 文件更改为 /run/php-fpm-librenms.sock。
listen = /run/php-fpm-librenms.sock
保存配置并退出。
3. 接下来,重新启动 PHP-FPM 服务以应用新配置。
sudo systemctl restart php7.4-fpm
现在 PHP-FPM 将使用 sock 文件 /run/php/php-fpm-librenms.sock 生成新的池 librenms。
4. 使用以下命令验证 librenms sock 文件。
ss -anl | grep librenms
您将看到类似如下的输出。
u_str LISTEN 0 511 /run/php/php-fpm-librenms.sock 69199 * 0 users:(("php-fpm7.4",pid=26105,fd=10),("php-fpm7.4",pid=26104,fd=10),("php-fpm7.4",pid=26103,fd=7))
现在您已准备好下载并安装 LibreNMS 监控工具。
下载 LibreNMS
在此步骤中,您将下载 LibreNMS 源代码并为其设置权限和访问控制。
1. 将您的工作目录更改为 /opt 并使用 git 命令下载 LibreNMS 源代码,如下所示。
cd /opt/
git clone https://github.com/librenms/librenms.git您的 LibreNMS 安装是 /opt/librenms 目录。
2. 使用以下命令更改 LibreNMS 安装的所有权和权限。
chown -R librenms:librenms /opt/librenms
chmod 771 /opt/librenms3. 接下来,为 LibreNMS 安装目录设置访问控制列表 (ACL)。允许该组使用以下 setfacl 命令在下面的每个目录上执行读写操作。
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 安装 PHP 依赖项。
安装 LibreNMS PHP 依赖项
要安装 LibreNMS PHP 依赖项,您必须以用户 librenms 身份登录并使用包含在 LibreNMS 源代码中的 composer_wrapper。
1. 使用以下命令以用户 librenms 身份登录。
su - librenms
2. 执行 PHP 脚本 composer_wrapper.php 为 LibreNMS 安装 PHP 包依赖项。
./scripts/composer_wrapper.php install --no-dev
3. 所有下载过程完成后,键入 exit 并按 Enter 从用户 librenms 注销。
现在您已经完成了 LibreNMS 的 PHP 依赖项的安装。
为 LibreNMS 配置 Nginx
在此步骤中,您将为 LibreNMS 监控工具创建一个新的 Nginx 服务器块。此示例将使用域名 librenms.example.io。
1. 使用 nano 编辑器创建一个新的 Nginx 服务器块配置 librenms。
sudo nano /etc/nginx/sites-available/librenms
复制并粘贴以下配置。并确保使用您的域更改域名。
server {
listen 80;
server_name librenms.example.io;
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;
}
}对于安全的 HTTPS LibreNMS 安装,请使用以下配置。并确保更改 SSL 证书的域名和路径。
server {
listen 80;
server_name librenms.example.io;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
server_name librenms.example.io;
root /opt/librenms/html;
index index.php;
listen 443 ssl http2;
server_name example.io;
ssl_certificate /etc/letsencrypt/live/librenms.example.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/librenms.example.io/privkey.pem;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
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/php-fpm-librenms.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
}
location ~ /\.(?!well-known).* {
deny all;
}
}现在保存配置并退出。
2. 接下来,激活新的虚拟主机 librenms 并使用以下命令验证 nginx 配置。
sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
sudo nginx -t如果您的配置正确,您将看到输出消息,例如测试成功。
3. 最后,重启nginx 服务以应用新配置。
sudo systemctl restart nginx
现在您已经完成了 LibreNMS 的 Nginx 服务器块配置。您已准备好开始 LibreNMS 安装。
开始安装 LibreNMS
要开始安装 LibreNMS,请打开 Web 浏览器并在地址栏中输入 LibreNMS 域名。
1. 您将看到 LibreNMS 安装前检查。确保所有检查状态标记为绿色,然后单击图标数据库继续。
2. 键入您的数据库、用户和密码。然后单击按钮检查凭据。
这将执行检查您的 MariaDB 数据库和用户。如果成功,您将在数据库凭据上看到绿色标记。
3. 现在单击“构建数据库”按钮为您的 LibreNMS 导入数据库架构。
数据库配置完成后,确保 Database Credentials 和 Build Database 两个部分都标记为绿色。
4. 现在点击钥匙图标继续。
键入新用户、密码和电子邮件地址以创建 LibreNMS 管理员用户。
单击按钮添加用户。
如果您的管理员用户已创建,您将在如下页面上看到您的用户管理员。
5. 单击标记图标完成安装。以下是您将获得的输出。
要完成 LibreNMS 安装,请打开 LibreNMS 验证页面,如下所示。
6. 您将被重定向到 LibreNMS 登录页面。
输入您的管理员用户和密码,然后单击“登录”按钮
7. 在 LibreNMS 验证页面上,您将看到如下所示的一些错误。
您可能遇到不同的错误,但 LibreNMS 验证页面为您的错误提供了解决方案。
8. 以下是我们安装中的一些错误以及如何修复它们。
- 修复数据库时区
使用您的根用户登录到 MariaDB shell。
mysql -u root -p
将当前数据库更改为 librenms。
use librenms;
现在执行以下查询来修复数据库时区错误。
SET TIME_ZONE='+00:00';
ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' ;
ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT '1970-01-02 00:00:01' ;- 修复系统错误
使用以下命令将二进制命令 LibreNMS lnms 添加到 /usr/bin 目录。
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
为命令 lnms 启用 bash 完成。
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
最后,将 LibreNMS 的 logrotate 配置复制到目录 /etc/logrotate.d/。
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
9. 修复 LibreNMS 错误后,返回 LibreNMS 验证页面并重新加载页面。
现在确保所有状态都正常。
10. 单击概览菜单以显示仪表板。
现在您已经在 Debian 11 Bullseye 上完成了 LibreNMS 安装。
结论
恭喜!您已经在最新的 Debian 11 Bullseye 上成功安装了带有 Nginx、PHP-FPM 和 MariaDB 数据库的 LibreNMS 监控工具。此外,您还学习了如何创建自定义 PHP-FPM 池并修复 LibreNMS 安装的一些错误。
下一步,您将学习如何将要监控的主机添加到 LibreNMS 监控工具。