LibreNMS简介

目录

  • 1 LibreNMS简单介绍
    • 1.1 LibreNMS介绍
  • 2 安装
    • 2.1 Ubuntu安装
      • 1、安装依赖
      • 2、添加 librenms 用户
      • 3、下载 LibreNMS
      • 4、设置权限
      • 5、安装 PHP 依赖项
      • 6、设置时区
      • 7、配置 MariaDB
      • 8、配置 PHP-FPM
      • 9、配置 Web 服务器
      • 10、启用 lnms 命令
      • 11、配置 snmpd
      • 12、cron
      • 13、启用调度程序
      • 14、日志配置
      • 15、登录
      • 16、设置中文
    • 2.2 Docker环境下的安装

1 LibreNMS简单介绍

1.1 LibreNMS介绍

LibreNMS 是一个开源的网络监控系统,它基于 Nagios 的核心,提供了一个功能丰富的网络监控解决方案。LibreNMS 旨在提供一个简单易用且高效的系统,用于监控网络设备,包括交换机、路由器、防火墙等。它能够自动发现网络设备,收集详细性能数据,并提供直观的报警和报告功能。
特点:

  • 自动化发现:LibreNMS 可以自动扫描 IP 范围并识别网络上的设备,包括路由器、交换机、服务器等。
  • 全面监控:它可以收集各种性能指标,如 CPU、内存使用率、带宽利用率、接口状态等。
  • 实时告警:当设备或服务出现异常时,LibreNMS 可以发送邮件、短信或 Slack 等通知,确保及时响应。
  • 灵活的报表:系统提供了丰富的图表和报表,帮助分析网络行为和趋势。
  • API 接口:通过 RESTful API,可以与其他系统集成,实现自动化管理和自定义扩展。
  • 易于扩展:由于使用 Docker 容器化部署,添加额外的服务(如第三方集成或插件)十分方便。

2 安装

2.1 Ubuntu安装

1、安装依赖

# 
apt install 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 -y

2、添加 librenms 用户

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

3、下载 LibreNMS

cd /opt
git clone https://github.com/librenms/librenms.git

4、设置权限

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/

5、安装 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

6、设置时区

vi /etc/php/8.1/fpm/php.ini
date.timezone = Asia/Shanghai
vi /etc/php/8.1/cli/php.ini
date.timezone = Asia/Shanghaitimedatectl set-timezone Asia/Shanghai

7、配置 MariaDB

vi /etc/mysql/mariadb.conf.d/50-server.cnf
# 添加
[mysqld]
innodb_file_per_table=1
lower_case_table_names=0
# 重启
systemctl enable mariadb
systemctl restart mariadb
## 进入数据库进行配置
mysql -u root
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'root123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
flush privileges;
exit

8、配置 PHP-FPM

cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf
vi /etc/php/8.1/fpm/pool.d/librenms.conf
### 
更改为 :[www][librenms]
[librenms]更改为“librenms”:usergroup
user = librenms
group = librenms# 更改为必须与 Web 服务器配置匹配的唯一路径
listen = /run/php-fpm-librenms.sock
;listen = /run/php/php8.1-fpm.sock

9、配置 Web 服务器

vi /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 ~ [^/]\.php(/|$) {fastcgi_pass unix:/run/php-fpm-librenms.sock;fastcgi_split_path_info ^(.+\.php)(/.+)$;include fastcgi.conf;}location ~ /\.(?!well-known).* {deny all;}
}rm /etc/nginx/sites-enabled/default
systemctl restart nginx
systemctl restart php8.1-fpm

10、启用 lnms 命令

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

11、配置 snmpd

cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.confvi /etc/snmp/snmpd.conf
# 设置自己的社区字符串 RANDOMSTRINGGOESHEREcurl -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
systemctl status snmpd.service

12、cron

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

13、启用调度程序

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

14、日志配置

LibreNMS 将日志保存在 /opt/librenms/logs 目录下。随着时间的推移,这些日志文件可能会变得很大,并需要进行日志轮转(即删除旧日志或将其移动到其他位置)。为了轮转旧的日志文件,可以使用提供的 logrotate 配置文件。

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

15、登录

地址:ip
在这里插入图片描述

直接选择数据库图标,输入密码,点击”check Credentials“
在这里插入图片描述

选择”build Database“
在这里插入图片描述

创建admin用户
在这里插入图片描述在这里插入图片描述

进行简单设置
在这里插入图片描述
在这里插入图片描述

16、设置中文

在这里插入图片描述
在这里插入图片描述

2.2 Docker环境下的安装

前提:Docker、docker-compose 已经安装完成

# 1、下载
mkdir librenms
cd librenms
wget https://github.com/librenms/docker/archive/refs/heads/master.zip
unzip master.zip
cd docker-master/examples/compose# 2、设置新的MySQL 密码
vim  .env 
MYSQL_PASSWORD=asyourpasswd# 3、启动 docker 容器
sudo docker-compose -f compose.yml up -d

登录:ip:8000

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

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

相关文章

贪吃蛇(c实现)

目录 游戏说明: 第一个是又是封面,第二个为提示信息,第三个是游戏运行界面 游戏效果展示: 游戏代码展示: snack.c test.c snack.h 控制台程序的准备: 控制台程序名字修改: 参考&#xff1a…

练习队列的相关操作:循环队列

1. 思路解析 循环队列就是在只有有限的空间时使用队列实现循环存储数据&#xff0c;有双向链表和数组两种选择&#xff0c;这里我们使用数组实现循环队列&#xff08;因为链表我不会 >-<&#xff09; 2. 相关函数及其实现 2.1 判空与判满 判空&#xff1a;直接返回头尾…

Leetcode—946. 验证栈序列【中等】

2024每日刷题&#xff08;133&#xff09; Leetcode—946. 验证栈序列 实现代码 class Solution { public:bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {int left 0;for(int i 0; i < popped.size(); i) {while(left &…

关于我转生从零开始学C++这件事:获得神器

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ 几天不见 &#xff0c;甚是想念&#xff01;哈咯大家好又是我大伟&#xff0c;五一的假期已经结束&#xff0…

超绝git

我们应该学会使用超绝git了&#xff0c;首先&#xff0c;什么是git&#xff1f; git是超绝版本控制器&#xff08;去中心化的分布式系统&#xff09;&#xff0c;什么又是版本控制&#xff0c;git和Gitee又有什么牵扯&#xff1f; git安装 这是安装git&#xff1a; yum ins…

Kexp 动态展示 k8s 资源对象依赖关系

kexp[1] 旨在以可视化的方式帮助用户理解和探索 Kubernetes 的能力。 适用场景&#xff1a; 学习和探索 Kubernetes 的功能。 应用开发&#xff0c;提供每个应用的对象图预设。 控制器和操作器的开发&#xff0c;支持动态对象图。 即将推出类似 Postman 的 Kubernetes API …

Python深度学习基于Tensorflow(9)注意力机制

文章目录 注意力机制是怎么工作的注意力机制的类型 构建Transformer模型Embedding层注意力机制的实现Encoder实现Decoder实现Transformer实现 注意力机制的主要思想是将注意力集中在信息的重要部分&#xff0c;对重要部分投入更多的资源&#xff0c;以获取更多所关注目标的细节…

GoF之代理模式(静态代理+动态代理(JDK动态代理+CGLIB动态代理带有一步一步详细步骤))

1. GoF之代理模式&#xff08;静态代理动态代理(JDK动态代理CGLIB动态代理带有一步一步详细步骤)&#xff09; 文章目录 1. GoF之代理模式&#xff08;静态代理动态代理(JDK动态代理CGLIB动态代理带有一步一步详细步骤)&#xff09;每博一文案2. 代理模式的理解3. 静态代理4. 动…

整理好的中债国债3年期到期收益率数据集(2002-2023年)

01、数据简介 国债&#xff0c;又称国家公债&#xff0c;是由国家发行的债券&#xff0c;是中央ZF为筹集CZ资金而发行的一种ZF债券&#xff0c;是中央ZF向投资者出具的、承诺在一定时期支付利息和到期偿还本金的债权债务凭证。 中债&#xff0c;是指由中国中债登记结算有限责…

Jetpack Compose一:初步了解Compose

Intellij IDEA构建Android开发环境 IntelliJ IDEA 2023.2.1 Android开发变化 IDEA配置使用Gradle 新建Compose工程&#xff0c;取名ComposeStudy 可以看到的是IDEA为项目初始化了部分代码 使用Compose开发不再需要使用xml文件来设计布局了 Compose中的Text也不同于Android V…

机器学习特征降维

目录 特征降维概念 低方差过滤法 PCA主成分分析 相关系数法 小结 特征降维概念 特征对训练模型时非常重要的&#xff1b;用于训练的数据集包含一些不重要的特征&#xff0c;可能导致模型性能不好、泛化性能不佳&#xff1b;例如&#xff1a; 某些特征的取值较为接近&…

部署Gerapy

1.Gerapy 是什么&#xff1f; Gerapy 是一款基于 Python 3 的分布式爬虫管理框架&#xff0c;它旨在简化和优化分布式爬虫的部署、管理和监控过程。 2.作用与功能&#xff1f; 2.1分布式管理&#xff1a; Gerapy 允许用户在多台机器上部署和管理Scrapy爬虫&#xff0c;实现爬虫…

Oracle数据库之 常用数据库对象(二)

目录 1.视图 1.1.什么是视图&#xff1f; 1.2.创建视图的语法 1.3.简单视图和复杂视图 1.4.创建复杂视图 1.4.1.创建复杂视图的步骤 1.4.2.示例 1.4.3.注意事项 1.5.视图中使用DML的规定 1.5.1.屏蔽DML操作 1.6.删除视图 2.序列 2.1.语法&#xff1a; 2.2.查询序…

HNU-操作系统OS-2024期中考试

前言 该卷为22计科/智能OS期中考卷。 感谢智能22毕宿同学记忆了考卷考题。 同学评价&#xff1a;总体简单&#xff1b;第1&#xff0c;7概念题较难需要看书&#xff1b;第4&#xff0c;5题原题。 欢迎同学分享答案。 【1】共10分 操作系统的设计目标有哪些&#xff1f; 【…

安卓surfaceview的使用方式

1. 什么是surfaceview surfaceview内部机制和外部层次结构 在安卓开发中&#xff0c;我们经常会遇到一些需要高性能、高帧率、高画质的应用场景&#xff0c;例如视频播放、游戏开发、相机预览等。这些场景中&#xff0c;我们需要直接操作图像数据&#xff0c;并且实时地显示到…

传感网应用开发教程--AT指令访问新大陆云平台(ESP8266模块+物联网云+TCP)

实现目标 1、熟悉AT指令 2、熟悉新大陆云平台新建项目 3、具体目标&#xff1a;&#xff08;1&#xff09;注册新大陆云平台&#xff1b;&#xff08;2&#xff09;新建一个联网方案为WIFI的项目&#xff1b;&#xff08;3&#xff09;ESP8266模块&#xff0c;通过AT指令访问…

电商购物系统首页的商品分类

如上图对商品的一个分类实际上和省市区的分类十分类似 , 都是通过自关联的方法来实现 , 但是这里不同的是 , 涉及到外键来获取数据 首先让我们来看一下最后通过后端返回数据的形式是什么样子的 """{1:{channels:[{id:1 , name:手机 , url:},{}{}],sub_cats:[{…

Vue报错:TypeError: Cannot read property ‘upgrade‘ of undefined

Vue报错&#xff1a;TypeError: Cannot read property ‘upgrade’ of undefined 前言 最近打开一个很就之前的开发项目&#xff0c;因为扫描包&#xff0c;所以删除了部分代码&#xff0c;后来就一直报错&#xff0c;现在总结一下。 报错原因&#xff1a;vue.config.js中 d…

力扣HOT100 - 74. 搜索二维矩阵

解题思路&#xff1a; 两次二分&#xff0c;第一次定位行&#xff0c;第二次定位列。 class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m matrix.length, n matrix[0].length;int l 0, r m - 1;//定位行int row -1;while (l < r) {in…

【机器学习300问】86、简述超参数优化的步骤?如何寻找最优的超参数组合?

本文想讲述清楚怎么样才能选出最优的超参数组合。关于什么是超参数&#xff1f;什么是超参数组合&#xff1f;本文不赘述&#xff0c;在之前我写的文章中有详细介绍哦&#xff01; 【机器学习300问】22、什么是超参数优化&#xff1f;常见超参数优化方法有哪些&#xff1f;htt…