使用 Nginx 在 Ubuntu 22.04 上安装 LibreNMS 开源网络监控系统

news2025/1/13 16:43:46

#LibreNMS 是一个功能强大的开源网络监控系统,它能够为你的网络性能和设备提供全面的监控。本文将引导你通过一系列步骤,在 Ubuntu 22.04 服务器上安装和配置 LibreNMS,使用 Nginx 作为 Web 服务器。

简介

LibreNMS 提供了对网络设备和性能的深入洞察,帮助你监控和管理网络。本文将详细介绍如何在 Ubuntu 22.04 系统上部署 LibreNMS,并通过 Nginx 和 SSL 证书来增强其安全性。我们将覆盖从系统更新到 SSL 配置的全过程,确保你的网络监控系统既安全又高效。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

https://img-blog.csdnimg.cn/img_convert/4c16271f125adea69da6ed9e7b2a4226.png

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

https://img-blog.csdnimg.cn/img_convert/414570cd3da48d4cc4bf51489992000b.png

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

https://img-blog.csdnimg.cn/img_convert/c8afbeb764459a37a8451dd2ed8eeff1.png

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

https://img-blog.csdnimg.cn/img_convert/ea5814f1d1068ca9fa2bb94631cfbdf1.png

  • 到此为止,我们的云服务器就远程连接上了。

开始部署

1. 更新系统包

首先,确保你的系统是最新的,运行以下命令:

sudo apt update
sudo apt upgrade -y

2. 安装必要的依赖

LibreNMS 需要多个依赖,包括 PHP、MariaDB、Nginx 等。使用以下命令安装这些依赖:

apt install -y 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 unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd python3-pip whois traceroute

3. 安装 LibreNMS

首先,创建一个名为 librenms 的用户:

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

接下来,从 GitHub 下载 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/

4. 配置 PHP

安装所需的 PHP 依赖:

su - librenms
./scripts/composer_wrapper.php install --no-dev
exit

如果因为代理问题导致上述脚本失败,可以手动安装 composer 包:

wget <https://getcomposer.org/composer-stable.phar>
mv composer-stable.phar /usr/bin/composer
chmod +x /usr/bin/composer

修改 PHP 配置以设置时区:

nano /etc/php/8.1/fpm/php.ini
nano /etc/php/8.1/cli/php.ini

找到 date.timezone 并设置为 Etc/UTC

date.timezone = Etc/UTC

同时设置系统时区:

timedatectl set-timezone Etc/UTC

接下来,配置 PHP-FPM。创建一个新的 PHP 池,以便设置 sock 文件,并设置用户和组:

cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf
nano /etc/php/8.1/fpm/pool.d/librenms.conf

[www] 改为 [librenms]

[librenms]

更改用户和组为 “librenms”:

user = librenms
group = librenms

更改监听路径以匹配你的 Web 服务器配置:

listen = /run/php-fpm-librenms.sock

如果没有其他 PHP Web 应用程序在此服务器上,可以删除 www.conf 以节省资源。根据需要调整 librenms.conf 中的性能设置。

重启 PHP-FPM 以应用更改:

systemctl restart php8.1-fpm

5. 配置数据库

启动并保护 MariaDB 服务器:

sudo systemctl start mariadb
sudo mysql_secure_installation

在安全安装过程中,设置 root 密码并保护你的 MariaDB 安装。

创建 LibreNMS 的数据库和用户:

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;

6. 配置 Nginx

为 LibreNMS 创建一个 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/librenms.conf

添加以下配置:

server {
 listen      80;
 server_name your_domain;
 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;
 }
}

启用站点并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/librenms.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx

7. 使用 SSL 保护安装

首先,在防火墙中添加 HTTP 和 HTTPS 端口(如果适用):

ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

接下来,使用 Let’s Encrypt 获得免费的 SSL 证书。

安装 Certbot:

sudo apt install certbot python3-certbot-nginx -y

获取并安装证书:

sudo certbot --nginx -d your_domain

按照提示完成 SSL 安装。

8. 启用 lnms 命令补全

此功能允许你在 lnms 命令中使用 Tab 键进行补全,就像普通 Linux 命令一样。

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

9. 配置 SNMP

修改 SNMP 配置文件:

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.conf

RANDOMSTRINGGOESHERE 替换为你选择的社区字符串。根据需要调整 syslocation 和 syscontact。

重启 SNMP 守护进程:

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

10. 设置 Cron 作业和日志轮转

LibreNMS 需要多个 Cron 作业来执行各种任务。创建一个新的 Cron 文件:

cp /opt/librenms/dist/librenms.cron /etc/cron.d/librenms

现在,启用调度器:

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

配置 LibreNMS 日志轮转:复制 logrotate 配置

LibreNMS 将日志保存在 /opt/librenms/logs。随着时间的推移,这些日志可能会变得很大,需要轮转出去。使用提供的 logrotate 配置文件:

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

11. 完成 LibreNMS 安装

通过在 Web 浏览器中访问 http://your_domain/install.php 来导航到 LibreNMS Web 安装程序。

image.png

按照基于 Web 的设置说明进行操作:

  • 数据库连接:输入你之前创建的数据库详细信息。
  • 创建管理员用户:为 LibreNMS 设置管理员用户。
  • 完成安装:按照剩余的提示完成安装。

相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2247864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

elementUI非常规数据格式渲染复杂表格(副表头、合并单元格)

效果 数据源 前端代码 (展示以及表格处理/数据处理) 标签 <el-table :data"dataList" style"width: 100%" :span-method"objectSpanMethod"><template v-for"(item, index) in headers"><el-table-column prop"…

使用脚本实现hadoop-yarn-flink自动化部署

本文使用脚本实现hadoop-yarn-flink的快速部署&#xff08;单机部署&#xff09;。 环境&#xff1a;①操作系统&#xff1a;CentOS 7.6&#xff1b;②CPU&#xff1a;x86&#xff1b;③用户&#xff1a;root。 1.前置条件 把下面的的脚本保存到“pre-install.sh”文件&#x…

Linux系统编程之进程基础知识

概述 在Linux系统中&#xff0c;进程是指一个正在运行的程序实例。每个进程都有一个唯一的进程标识符&#xff0c;即PID&#xff0c;操作系统通过这个PID来唯一识别和管理各个进程。进程不仅仅是程序代码的运行实例&#xff0c;它还包含了程序运行时所需的各种资源&#xff0c;…

H.264/H.265播放器EasyPlayer.js网页全终端安防视频流媒体播放器关于iOS不能系统全屏

在数字化时代&#xff0c;流媒体播放器已成为信息传播和娱乐消遣的主流载体。随着技术的进步&#xff0c;流媒体播放器的核心技术和发展趋势不断演变&#xff0c;影响着整个行业的发展方向。 EasyPlayer播放器属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持…

【数据结构】二叉树的建立与遍历

1.二叉树 1.1 二叉树的定义 首先先来回顾一下什么是二叉树&#xff1a; 二叉树&#xff08;binary tree&#xff09;是指树中节点的度不大于2的有序树&#xff0c;它是一种最简单且最重要的树。二叉树的递归定义为&#xff1a;二叉树是一棵空树&#xff0c;或者是一棵由一个根…

51单片机基础 06 串口通信与串口中断

目录 一、串口通信 二、串口协议 三、原理图 四、串口通信配置参数 1、常用的串行口工作方式1 2、数据发送 3、数据接收 4、波特率计算 5、轮询接收 6、中断接收 一、串口通信 串口通信是一种常见的数据传输方式&#xff0c;广泛用于计算机与外部设备或嵌入式系统之间…

智慧环保大数据解决方案

1. 智慧环保概述 智慧环保是“数字环保”的延伸&#xff0c;借助物联网技术整合环境监控对象&#xff0c;通过云计算实现环境管理与决策的智能化。其核心在于快速感知城市环境指标&#xff0c;保障人体健康与生命安全。 2. 智慧环保总体目标 智慧环保的总体目标是建立全面感…

如何使用identify_debugger去抓取信号

含有identify抓取信号的fpga版本做好了&#xff0c;那如何使用他去抓取信号呢&#xff1f; 1.terminal打开identify_debugger&#xff0c;直接这个命令identify_debugger&#xff0c;前提是你安装了synopsys的synaplify的软件&#xff0c;一般做芯片的都会有的哈。 2.打开界面后…

从 Llama 1 到 3.1:Llama 模型架构演进详解

编者按&#xff1a; 面对 Llama 模型家族的持续更新&#xff0c;您是否想要了解它们之间的关键区别和实际性能表现&#xff1f;本文将探讨 Llama 系列模型的架构演变&#xff0c;梳理了 Llama 模型从 1.0 到 3.1 的完整演进历程&#xff0c;深入剖析了每个版本的技术创新&#…

windows基础

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…

Jmeter中的配置原件

2&#xff09;配置原件 1--CSV Data Set Config 用途 参数化测试&#xff1a;从CSV文件中读取数据&#xff0c;为每个请求提供不同的参数值。数据驱动测试&#xff1a;使用外部数据文件来驱动测试&#xff0c;使测试更加灵活和可扩展。 配置步骤 准备CSV文件 创建一个CSV文…

c++基础知识复习(2)

1. 多态的虚函数的意义 1 案例&#xff1a;父类和子类有同名函数&#xff0c;但是功能不一样&#xff0c;但是同时&#xff0c;子类又继承了父类&#xff0c;就会导致调用的错误&#xff0c;想调用子类的同名函数&#xff0c; 但是在某些情况下&#xff0c;会错误调用父类的同…

NVR管理平台EasyNVR多个NVR同时管理:全方位安防监控视频融合云平台方案

EasyNVR是基于端-边-云一体化架构的安防监控视频融合云平台&#xff0c;具有简单轻量的部署方式与多样的功能&#xff0c;支持多种协议&#xff08;如GB28181、RTSP、Onvif、RTMP&#xff09;和设备类型&#xff08;IPC、NVR等&#xff09;&#xff0c;提供视频直播、录像、回放…

SpringBoot3+Jasypt如何在配置文件中对数据库的密码进行加密以防止密码泄露

在 Spring Boot 3 中&#xff0c;可以通过jasypt-spring-boot-starter对配置文件中的数据库密码或者其他重要密码进行加密&#xff0c;操作非常简单&#xff0c;可以有效防止密码泄露&#xff1a; 1. 使用 Jasypt 加密 添加依赖 在 pom.xml 中添加 Jasypt 依赖&#xff1a; …

ARM(安谋) China处理器

0 Preface/Foreword 0.1 参考博客 Cortex-M23/M33与STAR-MC1星辰处理器 ARM China&#xff0c;2018年4月established&#xff0c;独立运行。 1 处理器类型 1.1 周易AIPU 1.2 STAR-MC1&#xff08;星辰处理器&#xff09; STAT-MC1&#xff0c;主要为满足AIOT应用性能、功…

Adobe Illustrator 2024 安装教程与下载分享

介绍一下 下载直接看文章末尾 Adobe Illustrator 是一款由Adobe Systems开发的矢量图形编辑软件。它广泛应用于创建和编辑矢量图形、插图、徽标、图标、排版和广告等领域。以下是Adobe Illustrator的一些主要特点和功能&#xff1a; 矢量绘图&#xff1a;Illustrator使用矢量…

CVE-2022-26201

打开是这么个页面 左上角找到Admin访问 里面有个Add Users&#xff0c;访问一下&#xff0c;能创建用户&#xff0c;有个能上传图片的地方 普通的一句话木马无法访问flag&#xff0c;需要创建一个权限马 <?php system($_GET[1]);phpinfo();?> 因为只能上传jpg形式的文…

使用 OpenCV 进行视频中的行人检测

在计算机视觉领域&#xff0c;行人检测是一个重要的研究方向&#xff0c;它在视频监控、自动驾驶、人机交互等领域都有着广泛的应用。本文将介绍如何使用 OpenCV 库来实现视频中的行人检测。 环境准备 首先&#xff0c;我们需要安装 OpenCV 库。可以通过以下命令来安装&#…

【K8s】专题十五(4):Kubernetes 网络之 Calico 插件安装、切换网络模式、卸载

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】&#xff08;全…

鸿蒙面试题-某迈-2024年11月22日

某迈-2024年11月22日 1. 自我介绍 2. 鸿蒙中地图功能如何实现&#xff0c;申请流程是什么样的 主要通过 集成 Map Kit 的功能来实现Map Kit 功能很强大&#xff0c;比如有 创建地图&#xff1a;呈现内容包括建筑、道路、水系等。地图交互&#xff1a;控制地图的交互手势和交…