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.git

cd ./examples/compose # 进入docker compose示例文件夹

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

修改原有的docker compose示例

.env

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

TZ=Europe/Paris
PUID=1000
PGID=1000

MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword

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

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

时区建议修改为Asia/Shanghai

compose.yml

name: librenms

services:
  db:
    image: mariadb:10.5
    container_name: librenms_db
    command:
      - "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: always

  redis:
    image: redis:5.0-alpine
    container_name: librenms_redis
    environment:
      - "TZ=${TZ}"
    restart: always

  msmtpd:
    image: crazymax/msmtpd:latest
    container_name: librenms_msmtpd
    env_file:
      - "./msmtpd.env"
    restart: always

  librenms:
    image: librenms/librenms:latest
    container_name: librenms
    hostname: librenms
    cap_add:
      - NET_ADMIN
      - NET_RAW
    ports:
      - target: 8000
        published: 8000
        protocol: tcp
    depends_on:
      - db
      - redis
      - msmtpd
    volumes:
      - "./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: always

  dispatcher:
    image: librenms/librenms:latest
    container_name: librenms_dispatcher
    hostname: librenms-dispatcher
    cap_add:
      - NET_ADMIN
      - NET_RAW
    depends_on:
      - librenms
      - redis
    volumes:
      - "./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: always

  syslogng:
    image: librenms/librenms:latest
    container_name: librenms_syslogng
    hostname: librenms-syslogng
    cap_add:
      - NET_ADMIN
      - NET_RAW
    depends_on:
      - librenms
      - redis
    ports:
      - target: 514
        published: 514
        protocol: tcp
      - target: 514
        published: 514
        protocol: udp
    volumes:
      - "./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: always

  snmptrapd:
    image: librenms/librenms:latest
    container_name: librenms_snmptrapd
    hostname: librenms-snmptrapd
    cap_add:
      - NET_ADMIN
      - NET_RAW
    depends_on:
      - librenms
      - redis
    ports:
      - target: 162
        published: 162
        protocol: tcp
      - target: 162
        published: 162
        protocol: udp
    volumes:
      - "./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。如果需要更改,可以在个人设置里修改自己的密码。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaSE 排序

目录 1 概念1.1 排序1.2 稳定性 2 常见基于比较排序算法总览3 插入排序3.1 直接插入排序3.1.1 思想3.1.2 实现3.1.3 性能分析 3.2 折半插入排序3.2.1 思想3.2.2 实现3.2.3 性能分析 3.3 希尔排序3.3.1 思想3.3.2 实现3.3.3 性能分析 4 选择排序4.1 选择排序4.1.1 思想4.1.2 实现…

实验4.1 静态路由的配置

实验4.1 静态路由的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.设置交换机和路由器的基本配置。2.使用display ip interface brief命令查看接口配置信息。3.配置静态路由,实现全网互通。 六、任务验收七、任务小结 一、任务描述 某公司刚…

整合SSH(Spring+Struts+Hibernate)

0.前言, 由于工作需要故来学习SSH的整合,structs其实相当于(把view和controller结合起来,没有像现在的前后端分离,请求会发送给Action处理,在structs.xml映射地址和类) Hibernate(就是处理数据库的,几乎自动化,也可以写sql语句) Struts:Struts 是一个基于 MVC&#…

大数据服务与低代码开发:赋能创新与效率的双剑合璧

在科技飞速发展的当下,数据已经渗透到了企业的方方面面,成为了企业决策和业务发展的重要依据。海量数据的处理和分析,对于企业来说既是机遇,也是挑战。传统的数据处理方式往往无法满足快速变化的市场需求,而繁琐的开发…

AI摄影绘画与PS优化:重塑数字艺术的未来

文章目录 《AI摄影绘画与PS优化从入门到精通》内容简介作者简介楚天 目录前言/序言 在科技日新月异的今天,人工智能(AI)已经渗透到我们生活的各个领域,包括艺术创作。AI摄影绘画和Photoshop(PS)优化是这个领…

Numpy、Pandas常用函数

目录 Numpy 核心功能 常用函数 运算实例 Pandas 核心功能 常用函数 统计汇总函数 数据清洗函数 数据筛选 绘图与元素级函数 时间序列函数 其他函数 Numpy 官方文档:NumPy: the absolute basics for beginners — NumPy v1.26 Manual NumPy&#xff0…

vue3 +TS + vite + SVG

如何在如题的项目中使用svg? 我当时首先想到的是 搬运vue2 中svg的使用方式,安装svg-sprite-loader 和做相应的封装。(vue2 svg)你会发现 行不通,因为本项目使用的是vite 构建的无法使用Webpack所以如下代码不执行的 // 自动化加载 // webp…

Mysql高可用|索引|事务 | 调优

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 文章目录 前言sql语句的执行顺序关键词连接名字解释sql语句 面试坑点存储引擎MYSQL存储引擎 SQL优化索引索引失效索引的数据结构面试坑点 锁事务四大特性事务的隔离级别MVCC 读写分离面试坑…

大师学SwiftUI第12章 - 手势 Part 1

手势识别器 手势是用户在屏幕上执行的动作,如点击、滑动或捏合。这些手势很难识别,因为屏幕上只能返回手指的位置。为此,Apple提供了手势识别器。手势识别器完成所有识别手势所需的计算。所以我们不用处理众多的事件和值,只需在等…

公共字段自动填充——后端

场景:当处理一些请求时,会重复的对数据库的某些字段进行赋值(如:在插入和更新某个物品时,需要更新该物品的更新时间和更新者的信息),这样会导致代码冗余。 如: 思路: 自…

避免付费搜索广告系列与有机搜索广告系列之间出现关键词蚕食现象

自然搜索(搜索引擎优化)和付费搜索(或按点击付费)具有足够的技术复杂性和战略方面。 关键词蚕食是一个可能使它们变得更加困难的问题——如果你的搜索引擎优化 (SEO) 和按点击付费 (PPC&#x…

【Python】获取B站粉丝列表保存至数据库中

分析网络请求,获取到有粉丝接口的数据url 可以在响应信息处看到粉丝的信息 通过浏览器也可以直接请求到具体的JSON信息 通过独立的标签我们可以看到接口数据,但是要注意如果不是查看自己登录账户的接口那么就无法查询到所有粉丝的数据,默认只…

Python通过函数名调用函数的几种场景

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 除了执行系统命令外,我们有时还需要动态地执行一些python代码,有经验的朋友就会知道可以使用内置函数eval实现这一需求,如eval(“…

Appcelerator打包ipa有哪些优势

大家好,我是咕噜-凯撒,我们得先知道Appcelerator是啥,Appcelerator(现在更名为Axway Titanium)是一个跨平台的移动应用开发框架通过提供一种简化和加速移动应用开发的方式帮助你构建高质量的跨平台应用程序。那使用App…

【基础篇】YOLO系列训练环境(GPU)搭配篇

🚀Pytorch环境配置(Windows) 🔨 Anaconda安装 此处下载安装即可 ⭐温馨提示:安装路径不能含有中文,建议不要安在c盘(很占内存) 环境变量配置 编辑系统环境变量 -> 环境变量 -> 系统变量 新建并添加以下路径 打开cmd,输入conda&

设计模式—装饰模式

与其明天开始,不如现在行动! 文章目录 装饰模式—穿衣服💎总结 装饰模式—穿衣服 装饰模式(Decorator)可以动态的给对象添加一些额外的职责。 Component是定义一个对象接口,可以给这些对象动态地添加职责。…

【深度学习目标检测】十、基于yolov5的火灾烟雾识别(python,目标检测)

YOLOv5是目标检测领域一种非常优秀的模型,其具有以下几个优势: 1. 高精度:YOLOv5相比于其前身YOLOv4,在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进,如更深的网络结构、更多的特征层和更高分辨率的输入图…

Vditor - Markdown编辑器使用

1、安装 yarn add vditor2、代码 import vditor/dist/index.css; import React, { useEffect } from react; import Vditor from vditor; import ./index.less;const App ({ setVditorValue, vditorValue }: any) > {const [vd, setVd] React.useState<Vditor>();…

Redis-网络模型

参考资料 &#xff1a;极客时间 Redis&#xff08;亚风&#xff09; 前置知识 系统隔离 为了避免⽤户应⽤导致冲突甚⾄内核崩溃&#xff0c;⽤户应⽤与内核是分离的&#xff1a; 进程的寻址空间会划分为两部分&#xff1a;内核空间、⽤户空间 • ⽤户空间只能执⾏受限的命令&…

激活函数-SwiGLU

SwiGLU SiLU 函数是一种神经网络中的激活函数&#xff0c;全称是 Sigmoid Linear Unit, 也被称为 Swish 函数。它由 Google Brain 在 2017 年提出&#xff0c;是一种非线性激活函数&#xff0c;能够有效地对神经网络的输入进行非线性变换。 定义 f ( x ) x ∗ σ ( x ) f(x)…