LibreNMS简介

news2024/11/17 11:30:46

目录

  • 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/Shanghai

timedatectl 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.conf

vi /etc/snmp/snmpd.conf
# 设置自己的社区字符串 RANDOMSTRINGGOESHERE

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
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.coloradmin.cn/o/1665274.html

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

相关文章

OS复习笔记ch5-2

引言 在上一篇笔记中,我们介绍到了进程同步和进程互斥,以及用硬件层面上的三种方法分别实现进程互斥。其实,软件层面上也有四种方法,但是这些方法大部分都存在着一些问题: “上锁”与“检查”是非原子操作&#xff0…

Kafka学习-Java使用Kafka

文章目录 前言一、Kafka1、什么是消息队列offset 2、高性能topicpartition 3、高扩展broker 4、高可用replicas、leader、follower 5、持久化和过期策略6、消费者组7、Zookeeper8、架构图 二、安装Zookeeper三、安装Kafka四、Java中使用Kafka1、引入依赖2、生产者3、消费者4、运…

盛邦安全荣获北京市海淀区上地街道财源建设工作表彰

近日,盛邦安全受邀出席上地街道2024年第一季度财源建设工作联席会暨上地人工智能产业报告发布大会并收到上地街道颁发的感谢信,这是对公司技术创新、管理提升、营收增长,持续为上地地区财源建设做出突出贡献的鼓励。 盛邦安全副总裁、董事会秘…

第四百九十九回

文章目录 1. 概念介绍2. 使用方法2.1 固定样式2.2 自定义样式 3. 示例代码4. 内容总结 我们在上一章回中介绍了"GetMaterialApp组件"相关的内容,本章回中将介绍使用get显示SnackBar.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在介…

pyqt颜色变换动画效果

pyqt颜色变换动画效果 QPropertyAnimation介绍颜色变换效果代码 QPropertyAnimation介绍 QPropertyAnimation 是 PyQt中的一个类,它用于对 Qt 对象的属性进行动画处理。通过使用 QPropertyAnimation,你可以平滑地改变一个对象的属性值,例如窗…

【企业必备】提升企业新质生产力,英智推出私有化大模型定制方案

市面上有很多性能不错的大模型,但大部分企业都不敢使用,担心模型训练和使用过程中出现数据泄露的风险。智能化升级是当今时代企业发展的必然趋势,在大模型发展迅猛的时代,借助AI能力的公司能够更快速提升自身的核心竞争力&#xf…

使用xtuner微调InternLM-Chat-7B

1. 安装xtuner #激活环境 source activate test_llm # 安装xtuner pip install xtuner#还有一些依赖项需要安装 future>0.6.0 cython lxml>3.1.0 cssselect mmengine 2. 创建一个ft-oasst1 数据集的工作路径,进入 mkdir ft-oasst1 cd ft-oasst1 3.XTune…

以Azure为例的SSO

由于文章的篇幅有限,无法将全部的代码贴上来,如想要看完整案例,请在公众号文章中留言(其他平台很少看…毕竟最近印度同事的UI组件库搞得我好烦) 1.关于SSO 单点登录又称之为SSO,全称为 Single Sign On ,一般在多个应用系统中&…

LangChain连接国内大模型测试|智谱ai、讯飞星火、通义千问

智谱AI 配置参考 https://python.langchain.com/v0.1/docs/integrations/chat/zhipuai/ZHIPUAI_API_KEY从https://open.bigmodel.cn/获取 from langchain_community.chat_models import ChatZhipuAI from langchain_core.messages import AIMessage, HumanMessage, SystemMes…

【Ubuntu 安装erlang】

apt-get 安装 apt-get install erlang或 源码安装 git clone https://github.com/erlang/otp.git cd otp git checkout maint-25 # current latest stable version ./configure make make install安装完后,验证是否成功 # 命令行输入 erl

漫谈AI时代的手机

以chatGPT 为代表的大语言的横空出世使人们感受到AI 时代的到来,大语言模型技术的最大特点是机器开始”懂人话“,”说人话“了。如同任何一个革命性工具的出现一样,它必将改变人类生活和工作。 在这里。我谈谈AI时代的手机。 语音通信的历史…

【C语言—猜数字小游戏】

一、游戏规则 电脑自动生成一个1~100范围内的随机数,由玩家猜测本轮生成的随机数是什么,系统根据玩家猜测数据的⼤⼩给出猜⼤了或猜⼩了的反馈,直到玩家猜对,游戏结束。 如何生成随机数:【C语言】/*如何生成随机值*/-C…

es6语法总结

【1】语法 (1)声明变量(let-var-const) 变量提升: 是JavaScript引擎在代码执行前将变量的声明部分提升到作用域顶部的行为。尽管变量的声明被提升了,变量的赋值(即初始化)仍然保留在原来的位置。因此&…

C++:关于圆形鱼眼半全景图转为等距圆柱投影图

C:空间坐标映射到球面坐标/全景图_如何将球体坐标映射到球面uv-CSDN博客 C:关于360全景图像和立方体6面全景图像的相互转换_彩色全景拆解正方体6个面-CSDN博客 之前记录了立方体和360全景之间的转换,这次记录下鱼眼图与360全景图之间的转换…

Doris【部署 01】Linux部署MPP数据库Doris稳定版(下载+安装+连接+测试)

本次安装测试的为稳定版2.0.8官方文档 https://doris.apache.org/zh-CN/docs/2.0/get-starting/quick-start 这个简短的指南将告诉你如何下载 Doris 最新稳定版本,在单节点上安装并运行它,包括创建数据库、数据表、导入数据及查询等。 Linux部署稳定版Do…

【Python】PYQT5详细介绍

本专栏内容为:Python学习专栏 通过本专栏的深入学习,你可以了解并掌握Python。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:Python 🚚代码仓库:小小unicorn的代码仓库🚚 &#x1f3…

Array.map解析

map方法会创建一个新数组。该方法会循环数组中的每个值,如果仅仅是想循环数组不需要返回值使用数组的forEach方法就可以。原数组中的每个元素都调用一次提供的函数后的返回值组成。Array.map 它接收一个函数 这个函数可以接收三个参数 数组的每个值item 这个值的索引…

ICode国际青少年编程竞赛- Python-4级训练场-嵌套for循环入门

ICode国际青少年编程竞赛- Python-4级训练场-嵌套for循环入门 1、 for i in range(3):Dev.step(3)for j in range(3):Dev.turnLeft()Dev.step(-2)Dev.turnLeft()2、 for i in range(3):Dev.turnLeft()Dev.step(4)Dev.turnRight()Dev.step(2)for i in range(4):Dev.step(2)D…

ardupilot开发 --- opencv 篇

0. 一些概念 官网:https://opencv.org/ 1. 卸载 sudo apt-get --purge remove libopencv sudo apt-get --purge remove libopencv-dev sudo apt-get --purge remove libopencv* sudo apt-get --purge remove opencv sudo apt-get --purge remove *opencv* sudo a…

视频剪辑达人分享:一键批量置入随机封面,创意无限

在数字化媒体飞速发展的今天,视频内容已经成为我们表达创意、分享故事、传递信息的主要方式之一。而在视频制作过程中,封面作为视频的“脸面”,往往决定了观众是否愿意点击观看。因此,为视频选择合适的封面变得至关重要。 在大量…