LibreNMS:从docker出发

引言

LibreNMS 是一个免费开源的网络监控和自动化工具,用于监视网络设备、服务器和应用程序的性能和状态。它提供了一个集中的管理平台,帮助管理员实时监控和管理整个网络基础设施。

以下是 LibreNMS 的一些主要特点和功能:

  • 自动发现:LibreNMS 可以自动发现和添加网络设备,无需手动配置。它支持各种网络设备,如路由器、交换机、防火墙、服务器等。
  • 实时监控:LibreNMS 提供实时监控功能,可以监测设备的性能指标、接口流量、CPU 和内存利用率等。它还支持 SNMP、LLDP 和其他协议,以获取详细的设备信息。
  • 告警和通知:LibreNMS 可以根据预定义的规则生成告警,并通过电子邮件、Slack、PagerDuty 等方式发送通知。管理员可以根据需要定制告警规则和通知方式。
  • 图形化界面和报表:LibreNMS 提供直观的图形化界面,显示设备的状态和性能图表。它还提供各种报表和分析工具,帮助管理员进行容量规划和故障排除。
  • 集成和扩展性:LibreNMS 支持与其他系统和工具的集成,如 SNMP Trap 收集、Syslog 日志分析等。它还提供了强大的 API,方便开发者进行自定义扩展和集成。
  • 多用户支持:LibreNMS 允许创建多个用户账户,并为不同的用户分配不同的权限和访问级别。这对于团队协作和分工非常有用。
  • 社区支持和更新:LibreNMS 是一个活跃的开源项目,拥有庞大的社区支持。它经常发布更新和新功能,以改进性能和安全性。

安装docker

详细可以查看我之前发的博客:无桌面版docker在Ubuntu系统上安装

docker compose

下载

sudo curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

可以选择下载上述二进制文件,到制定目录。因为比较慢,所以建议可以直接通过科学上网手段加快速度。也可以打开https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64下载到指定位置之后/usr/local/bin/,更改文件名为docker-compose

权限

下载完之后需要将可执行权限应用于安装目标路径中的独立二进制文件。

sudo chmod +x /usr/local/bin/docker-compose

LibreNMS 安装

关于libreNMS的docker安装可以参见官网:Docker - LibreNMS Docs

关于其中的参数说明可以参见:GitHub - librenms/docker: LibreNMS Docker image

如果你对docker的流程十分熟悉,那么看上面两个网页可以完全自行完成安装。

如果你不是很熟悉docker,那么请看下面的详细教程:

获取镜像

从docker官方镜像(https://hub.docker.com/r/librenms/librenms)获取镜像:

docker pull librenms/librenms

下载librenms配置文件

可以从github上拉去镜像,并且进入他的docker compose示例目录中去:

git clone https://github.com/librenms/docker.gitcd ./examples/compose # 进入docker compose示例文件夹

然后可以看见里面有以下几个文件,在linux中可以使用ls来查看,.env文件会自动隐藏,但是他是存在的:

修改原有的docker compose示例

.env

用你喜欢的编辑器打开.env文件

TZ=Europe/Paris
PUID=1000
PGID=1000MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword

我们需要再这里修改自己的mysql数据库还有时区(TZ),关于这几个参数

如果你没有新建自己的MySQL数据库则不需要更改,如果你已经有了mysql数据库,则要匹配到自己mysql数据库的用户名和密码。

时区建议修改为Asia/Shanghai

compose.yml

name: librenmsservices:db:image: mariadb:10.5container_name: librenms_dbcommand:- "mysqld"- "--innodb-file-per-table=1"- "--lower-case-table-names=0"- "--character-set-server=utf8mb4"- "--collation-server=utf8mb4_unicode_ci"volumes:- "./db:/var/lib/mysql"environment:- "TZ=${TZ}"- "MYSQL_ALLOW_EMPTY_PASSWORD=yes"- "MYSQL_DATABASE=${MYSQL_DATABASE}"- "MYSQL_USER=${MYSQL_USER}"- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"restart: alwaysredis:image: redis:5.0-alpinecontainer_name: librenms_redisenvironment:- "TZ=${TZ}"restart: alwaysmsmtpd:image: crazymax/msmtpd:latestcontainer_name: librenms_msmtpdenv_file:- "./msmtpd.env"restart: alwayslibrenms:image: librenms/librenms:latestcontainer_name: librenmshostname: librenmscap_add:- NET_ADMIN- NET_RAWports:- target: 8000published: 8000protocol: tcpdepends_on:- db- redis- msmtpdvolumes:- "./librenms:/data"env_file:- "./librenms.env"environment:- "TZ=${TZ}"- "PUID=${PUID}"- "PGID=${PGID}"- "DB_HOST=db"- "DB_NAME=${MYSQL_DATABASE}"- "DB_USER=${MYSQL_USER}"- "DB_PASSWORD=${MYSQL_PASSWORD}"- "DB_TIMEOUT=60"restart: alwaysdispatcher:image: librenms/librenms:latestcontainer_name: librenms_dispatcherhostname: librenms-dispatchercap_add:- NET_ADMIN- NET_RAWdepends_on:- librenms- redisvolumes:- "./librenms:/data"env_file:- "./librenms.env"environment:- "TZ=${TZ}"- "PUID=${PUID}"- "PGID=${PGID}"- "DB_HOST=db"- "DB_NAME=${MYSQL_DATABASE}"- "DB_USER=${MYSQL_USER}"- "DB_PASSWORD=${MYSQL_PASSWORD}"- "DB_TIMEOUT=60"- "DISPATCHER_NODE_ID=dispatcher1"- "SIDECAR_DISPATCHER=1"restart: alwayssyslogng:image: librenms/librenms:latestcontainer_name: librenms_syslognghostname: librenms-syslogngcap_add:- NET_ADMIN- NET_RAWdepends_on:- librenms- redisports:- target: 514published: 514protocol: tcp- target: 514published: 514protocol: udpvolumes:- "./librenms:/data"env_file:- "./librenms.env"environment:- "TZ=${TZ}"- "PUID=${PUID}"- "PGID=${PGID}"- "DB_HOST=db"- "DB_NAME=${MYSQL_DATABASE}"- "DB_USER=${MYSQL_USER}"- "DB_PASSWORD=${MYSQL_PASSWORD}"- "DB_TIMEOUT=60"- "SIDECAR_SYSLOGNG=1"restart: alwayssnmptrapd:image: librenms/librenms:latestcontainer_name: librenms_snmptrapdhostname: librenms-snmptrapdcap_add:- NET_ADMIN- NET_RAWdepends_on:- librenms- redisports:- target: 162published: 162protocol: tcp- target: 162published: 162protocol: udpvolumes:- "./librenms:/data"env_file:- "./librenms.env"environment:- "TZ=${TZ}"- "PUID=${PUID}"- "PGID=${PGID}"- "DB_HOST=db"- "DB_NAME=${MYSQL_DATABASE}"- "DB_USER=${MYSQL_USER}"- "DB_PASSWORD=${MYSQL_PASSWORD}"- "DB_TIMEOUT=60"- "SIDECAR_SNMPTRAPD=1"restart: always

如果你已经有自己的redis也需要对自己的redis参数进行修改,其余的几乎不需要更改,但是需要将所有的DB_HOST参数修改为自己的主机ip。

关于详细的参数配置可以查看这个网站https://github.com/librenms/docker/tree/master里的说明。

剩下的两个文件几乎不需要更改,保留即可。

安装启动

在your_path/examples/compose目录下,输入以下命令,启动docker-container

sudo docker compose up -d

如果已经成功运行,你可以输入http://localhost:8000,访问librenms UI界面。

应该会需要创建用户,如果没有创建用户环节,则默认密码和账户都是librenms。如果需要更改,可以在个人设置里修改自己的密码。

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

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

相关文章

TikTok矩阵玩法分享,如何建立TikTok矩阵?

矩阵是在 TikTok 上非常常见的营销方式,很多卖家想要通过矩阵化运营快速涨粉。但要想做好TikTok矩阵,需要有明确的方向和计划。下面东哥我将分享一些做TikTok矩阵的玩法,帮助大家更好地搭建自己的TikTok矩阵。 了解TikTok矩阵 TikTok矩阵是一…

同时获取el-select的label和value

ui如下: 需求如下: 在点击确认的时候,将id和name都传给一个接口,但是ui只用展示name,name用v-model绑定给input框,但是id不知道怎么传给后端。 解决方法如下: vue中elementUi的el-select同时…

JVM-9-Class类文件的结构

Java技术能够一直保持着非常良好的向后兼容性,Class文件结构的稳定功不可没。 Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中。 Class文件格式采用一种类似于C语言结构体的伪结构来存储数据&#xff0c…

c语言突击

一:前序 1.一个c语言程序有且只有一个main函数,是程序运行的起点! 每个c语言程序写完后,都是先编译(.c---),后链接(.obj---),最后运行(.exe&…

JAVA的三大版本

🍎个人主页 🏆​​​​​​​个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 一、Java 二、JavaSE(Java Standard Edition) 三、JavaME(Java Micro Edition) 四、JavaE…

文件操作(下)

标题的顺序是接着之前写的,希望这篇博客对你有帮助 七. 随机读写函数 实际上,无论是读还是写,在一次调用顺序读写函数,文件指针会移到已经读过或者写过的下一个位置,从那个位置开始下一次读和写(在文件没有…

制作RK3568 ubuntu20.04桌面版镜像

平台 主控: RK3568 编译主机: Ubuntu 20.04 AMD64 目标版本: Ubuntu 20.04 概述 RK3568是极具性价比的高能国产“芯“ , 是Rockchip面向与AIOT和工业市场打造的一款高性能、低功耗、功能丰富的国产化应用处理器。采用四核64位Cortex-A55架构,主频高达2.0GHz&#x…

基于车载ESAM(ETC)系统设计(程序+原理图+PCB源文件+硬件资料+元器件清单等)方案

OBE-SAM 安全模块,通过车规 AEC-Q100 Grade1 认证。主要应用于 ETC(不停车收费)系统,内 嵌于车载设备 OBU 中。 OBE-SAM安全模块中保存了车辆相关信息,收费站出入口信息,以及交易记录等等,模块采…

MacBook磁盘清理妙招一:使用清理工具CleanMyMac X4.14.6中文版

笔记本电脑在是我们工作和生活中重要组成部分,磁盘清理是常有的事,而macbook作为其中的代表之一,也越来越受到人们的青睐。然而,如何进行macbook磁盘清理,也是许多人都会遇到的问题,特别是被提示“磁盘已满…

WeChatMsg中文版开源软件 提取导出微信聊天记录为文档-提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存

功能 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 支持导出视频、表情包 导出联系人到CSV 导出视频到HTML 导出表情包到HTML 显示和导出拍一拍等系统消息 说明 :如果出现闪退问题&#…

计算机服务器中了mkp勒索病毒怎么办,mkp勒索病毒解密恢复

在计算机技术飞速发展的今天,越来越多的企业走向了数字化办公模式,极大地方便了企业的生产运营,为企业带来了更高的效率。但网络威胁无处不在,网络威胁手段随着计算机技术的不断发展也在不断增加。近期,云天数据恢复中…

C#拼接JSON

一、业务背景 最近项目需要与U8c对接,实现增删改查,借此机会,梳理一下C#解析Json字符串的问题。 这篇文章,先以新增接口为例。 二、新增接口 查看需要传入的json格式。 拼接json,无非就是{}和[]的来回嵌套。 首先&am…

C++数据结构——二叉搜索树详解

目录 一,关于二叉搜索树 1.1 概念 1.2 基本结构 二,二叉搜索树接口实现 2.1 插入 2.2 查找 2.3 打印 2.4* 删除 三,二叉搜索树接口递归实现 3.1 查找 3.2 插入 3.3 删除 四,二叉搜索树的默认成员函数 五,…

bootstap table表格, 获取当前点击的table元素在该行是第几个

背景 有这样一个需求, table表格中是统计数据, 要求点击每个单元格可实现导出统计的底层数据 数据都是可点击导出的, 思路 获取行bootstap 有个index参数, 所哟要获取当前行第几列, 要获取当前点击的table元素在其所在行中的位置(即第几个)&#xff…

JVM 垃圾回收详解

前言 什么是垃圾? 垃圾是指运行程序中没有任何引用指向的对象,需要被回收。 内存溢出和内存泄漏 内存溢出:经过垃圾回收之后,内存仍旧无法存储新创建的对象,内存不够溢出。 内存泄漏:又叫“存储泄漏”&#xff0…

【docker】修改docker的数据目录

背景 主节点是分配了较少内存和存储的低配机器,因为我们系统的rancher是用docker镜像启动的,而rancher和docker的默认目录都放在/var/lib下面,而这个/var目录目前只分配10G的存储,导致节点存储报警。因此想修改docker的数据目录&…

idea添加外部jar包

在日常开发中在lib包的里面添加了外部的jar,如何将外部的包添加到java类库中,这样项目就可以引用相应的jar包,操作如下: 1.先将需要的jar复制到lib包如下,如下截图,图标前面没有箭头,表示还未添…

正则化实战( Lasso 套索回归,Ridge 岭回归)

Lasso 套索回归 导入包 import numpy as np from sklearn.linear_model import Lasso from sklearn.linear_model import SGDRegressor, LinearRegression原方程的计算结果 # 1. 创建数据集X,y X 2 * np.random.rand(100, 20) w np.random.rand(20, 1) b np.r…

C# 实时存储16进制数据,写入文件格式为Raw

1.示例代码 private void button1_Click(object sender, EventArgs e){byte[] data { 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 }; //模拟要写入的数组List<byte[]> listBytes new List<byte[]>();listBytes.Add(data); //数组转集合RecData(listBytes);…

租赁系统|租赁小程序开发|北京租赁系统提升行业发展

租赁小程序定制功能是为了满足特定租赁服务的个性化需求而开发的一套功能模块。通过定制化开发&#xff0c;我们能够根据您的业务模式和需求&#xff0c;量身打造出适合您的租赁小程序。无论您是汽车租赁、房屋租赁、设备租赁或其他租赁服务&#xff0c;我们都能够为您提供定制…