Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >不逊色Zabbix的开源监控LibreNMS:全功能网络监控

不逊色Zabbix的开源监控LibreNMS:全功能网络监控

作者头像
释然IT杂谈
发布于 2022-10-27 09:26:40
发布于 2022-10-27 09:26:40
4.7K00
代码可运行
举报
文章被收录于专栏:释然IT杂谈释然IT杂谈
运行总次数:0
代码可运行

本文来自微信群熊猫大佬投稿

一、LibreNMS简单介绍

LibreNMS是一个功能齐全的开源网络监控系统,它使用SNMP来获取来自不同设备的数据,LibreNMS支持各种设备如Cisco Linux FreeBSD Juniper Brocade Foundry HP等,它支持多种身份验证机制,并支持双因素身份验证。它有一个可定制的警报系统,可以通过电子邮件,IRC或slack通知网络管理员。

二、LibreNMS特点:
  1. 它使用这些协议自动发现整个网络:CDP,FDP,LLDP,OSPF,BGP,SNMP和ARP。
  2. 它有一个移动友好的Web UI,可定制的仪表板。
  3. 支持一个Unix代理。
  4. 支持水平缩放以随网络扩展。
  5. 支持高度灵活和可定制的警报系统; 通过电子邮件,irc,slack等发送通知。
  6. 支持用于管理,绘制和检索系统数据的API
  7. 提供流量计费系统。
  8. 还支持提供核心功能的AndroidiOS应用程序。
  9. 支持与NfSen,collectd,SmokePing,RANCID和Oxidized的集成。
  10. 支持多种身份验证方法,例如MySQL,HTTP,LDAP,Radius和Active Directory。
  11. 允许自动更新和许多其他功能。

在Linux系统上安装LibreNMS之前,您可以尝试在线演示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

三、CentOS7下部署LibreNMS

1.关闭selinux

查看状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#getenforce
#/usr/sbin/sestatus

关闭SeLinux

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
###临时关闭
#setenforce 0

修改/etc/selinux/config

2、配置yum源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost /]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost /]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@localhost /]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost /]# yum clean all
[root@localhost /]# yum makecache

3、配置remi-php73源,安装LibreNMS所需的组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost /]# yum install -y yum-utils
[root@localhost /]# yum localinstall http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
[root@localhost /]# yum-config-manager --enable remi-php73 
[root@localhost /]# yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php-fpm php-cli php-common php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd python-memcached rrdtool python3 python3-pip python3-devel -y
[root@localhost /]# yum install -y zip unzip

4.git下载lirenms最新版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost /]# cd /opt/
[root@localhost /]#  git clone https://github.com/librenms/librenms.git
[root@localhost /]# useradd librenms -d /opt/librenms -M -r
[root@localhost /]# usermod -a -G librenms nginx
[root@localhost /]# chown -R librenms:librenms /opt/librenms
[root@localhost /]# chmod 770 /opt/librenms
[root@localhost /]# chgrp apache /var/lib/php/session/

5、切换到librenms用户,配置php环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost opt]# su - librenms
-bash-4.2$ ./scripts/composer_wrapper.php install --no-dev
-bash-4.2$ exit

6、配置数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost opt]# systemctl start mariadb
[root@localhost opt]# mysqladmin -u root password 'MySQL@2021'
[root@localhost opt]# mysql -u root -pMySQL@2021
MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'librenms@2021';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
[root@localhost /]# vim /etc/my.cnf
[mysqld]下加入如下两行
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[root@localhost /]# systemctl enable mariadb
[root@localhost /]# systemctl restart mariadb

7、配置php环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost /]# vim /etc/php.ini 
修改时区配置如下
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
 第922行   date.timezone =Asia/Shanghai

[root@localhost /]# vim /etc/php-fpm.d/www.conf 
修改成如下行
user = apache  换成  nginx
group = apache   

;listen = 127.0.0.1:9000

下面添加
listen = /run/php-fpm/php-fpm.sock

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

[root@localhost /]# systemctl enable php-fpm
[root@localhost /]# systemctl restart php-fpm

8、配置nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost /]# vim /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 /api/v0 {
  try_files $uri $uri/ /api_v0.php?$query_string;
 }
 location ~ \.php {
  include fastcgi.conf;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
}

[root@localhost /]# vim /etc/nginx/nginx.conf

禁用

#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#        location = /404.html {
#        }

[root@localhost /]# systemctl enable nginx

[root@localhost /]# systemctl restart nginx

9、snmpd配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vi /etc/snmp/snmpd.conf中团体名,例如librenms
com2sec readonly  default      librenms
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

distro

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env sh
# Detects which OS and if it is Linux then it will detect which Linux Distribution.

OS=`uname -s`
REV=`uname -r`
MACH=`uname -m`

if [ "${OS}" = "SunOS" ] ; then
  OS=Solaris
  ARCH=`uname -p`
  OSSTR="${OS} ${REV}(${ARCH} `uname -v`)"

elif [ "${OS}" = "AIX" ] ; then
  OSSTR="${OS} `oslevel` (`oslevel -r`)"

elif [ "${OS}" = "Linux" ] ; then
  KERNEL=`uname -r`

  if [ -f /etc/fedora-release ]; then
    DIST=$(cat /etc/fedora-release | awk '{print $1}')
    REV=`cat /etc/fedora-release | sed s/.*release\ // | sed s/\ .*//`

  elif [ -f /etc/redhat-release ] ; then
    DIST=$(cat /etc/redhat-release | awk '{print $1}')
    if [ "${DIST}" = "CentOS" ]; then
      DIST="CentOS"
      IGNORE_OS_RELEASE=1 # https://bugs.centos.org/view.php?id=8359
    elif [ "${DIST}" = "CloudLinux" ]; then
      DIST="CloudLinux"
    elif [ "${DIST}" = "Mandriva" ]; then
      DIST="Mandriva"
      PSEUDONAME=`cat /etc/mandriva-release | sed s/.*\(// | sed s/\)//`
      REV=`cat /etc/mandriva-release | sed s/.*release\ // | sed s/\ .*//`
    elif [ -f /etc/oracle-release ]; then
      DIST="Oracle"
    elif [ -f /etc/rockstor-release ]; then
      DIST="Rockstor"
    else
      DIST="RedHat"
    fi

    PSEUDONAME=`cat /etc/redhat-release | sed s/.*\(// | sed s/\)//`
    REV=`cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//`

  elif [ -f /etc/mandrake-release ] ; then
    DIST='Mandrake'
    PSEUDONAME=`cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//`
    REV=`cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//`

  elif [ -f /etc/devuan_version ] ; then
    DIST="Devuan `cat /etc/devuan_version`"
    REV=""

  elif [ -f /etc/debian_version ] ; then
    DIST="Debian `cat /etc/debian_version`"
    REV=""
    IGNORE_OS_RELEASE=1
    if [ -f /usr/bin/lsb_release ] ; then
      ID=`lsb_release -i | awk -F ':' '{print $2}' | sed 's/  //g'`
    fi
    if [ "${ID}" = "Raspbian" ] ; then
      DIST="Raspbian `cat /etc/debian_version`"
    fi
    if [ -f /usr/bin/pveversion ]; then
      DIST="${DIST}/PVE `/usr/bin/pveversion | cut -d '/' -f 2`"
    fi
    if [ -f /usr/bin/pmgversion ]; then
      # pmgversion requires root permissions to run, please add NOPASSWD setting to visudo.
      DIST="${DIST}/PMG `sudo /usr/bin/pmgversion | cut -d '/' -f 2`"
    fi
    if [ -f /etc/dogtag ]; then
      DIST=`cat /etc/dogtag`
    fi
    
  elif [ -f /etc/gentoo-release ] ; then
    DIST="Gentoo"
    REV=$(tr -d '[[:alpha:]]' " ")

  elif [ -f /etc/arch-release ] ; then
    DIST="Arch Linux"
    REV="" # Omit version since Arch Linux uses rolling releases
    IGNORE_LSB=1 # /etc/lsb-release would overwrite $REV with "rolling"
    
  elif [ -f /etc/photon-release ] ; then
    DIST=$(head -1 < /etc/photon-release)
    REV=$(sed -n -e 's/^.*PHOTON_BUILD_NUMBER=//p' /etc/photon-release)
    IGNORE_LSB=1 # photon os does not have /etc/lsb-release nor lsb_release

  elif [ -f /etc/openwrt_version ] ; then
    DIST="OpenWrt"
    REV=$(cat /etc/openwrt_version)

  elif [ -f /etc/pld-release ] ; then
    DIST=$(cat /etc/pld-release)
    REV=""

  elif [ -f /etc/SuSE-release ] ; then
    DIST=$(echo SLES $(grep VERSION /etc/SuSE-release | cut -d = -f 2 | tr -d " "))
    REV=$(echo SP$(grep PATCHLEVEL /etc/SuSE-release | cut -d = -f 2 | tr -d " "))
  fi

  if [ -x "$(command -v  awk)" ];  then # some distros do not ship with awk
    if [ "`uname -a | awk '{print $(NF)}'`" = "DD-WRT" ] ; then
      DIST="dd-wrt"
    fi
    if [ "`uname -a | awk '{print $(NF)}'`" = "ASUSWRT-Merlin" ] ; then
      DIST="ASUSWRT-Merlin"
      REV=`nvram show | grep buildno= | egrep -o '[0-9].[0-9].[0-9]'` > /dev/null 2>&1
    fi
  fi

  # try standardized os version methods
  if [ -f /etc/os-release -a "${IGNORE_OS_RELEASE}" != 1 ] ; then
    . /etc/os-release
    STD_DIST="$NAME"
    STD_REV="$VERSION_ID"
  elif [ -f /etc/lsb-release -a "${IGNORE_LSB}" != 1 ] ; then
    STD_DIST=$(lsb_release -si)
    STD_REV=$(lsb_release -sr)
  fi
  if [ -n "${STD_DIST}" ]; then
    DIST="${STD_DIST}"
  fi
  if [ -n "${STD_REV}" ]; then
    REV="${STD_REV}"
  fi

  if [ -n "${REV}" ]; then
    OSSTR="${DIST} ${REV}"
  else
    OSSTR="${DIST}"
  fi

elif [ "${OS}" = "Darwin" ] ; then
  if [ -f /usr/bin/sw_vers ] ; then
    OSSTR=`/usr/bin/sw_vers|grep -v Build|sed 's/^.*:.//'| tr "\n" ' '`
  fi

elif [ "${OS}" = "FreeBSD" ] ; then
  if [ -f /etc/version ] ; then
    DIST=$(cat /etc/version | cut -d'-' -f 1)
    if [ "${DIST}" = "FreeNAS" ]; then
      OSSTR=`cat /etc/version | cut -d' ' -f 1`
    fi
  else
    OSSTR=`/usr/bin/uname -mior`
  fi
fi

echo ${OSSTR}

10、crond配置与logrotated配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

11、登录web界面,添加监控设备,功能界面体验

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 释然IT杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CentOS7中使用一键脚本部署Librenms网络监控系统
本文安装脚本基于官方安装文档在CentOS7下安装Librenms实践的过程整理而成
yuanfan2012
2023/09/18
1.1K2
CentOS7中使用一键脚本部署Librenms网络监控系统
CentOS7下部署开源网络监控系统LibreNMS
LibreNMS是一款开源的,功能强大且功能丰富的自动发现的网络监控系统,基于PHP,使用SNMP协议。它支持广泛的操作系统,包括Linux,FreeBSD以及思科,Juniper,Brocade,Foundry,HP等网络设备。
yuanfan2012
2021/01/14
4.3K1
CentOS7下部署开源网络监控系统LibreNMS
挺带劲!这款免费开源的监控系统真强大~
一提到监控系统,大家很快就能想到Zabbix、Prometheus等,今天,民工哥给大家推荐一款绝不逊色 Zabbix 的监控软件 Librenms。
民工哥
2021/05/11
2.7K0
Zabbix分布式监控实战(一)——Zabbix 5.0监控平台搭建与被监控端的添加
 zabbix是一个基于WEB界面的提供 分布式系统监控以及网络监控功能 的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
非著名运维
2022/06/22
1.8K1
Zabbix分布式监控实战(一)——Zabbix 5.0监控平台搭建与被监控端的添加
Zabbix(2)-Zabbix安装
服务器系统: CentOS Linux release 7.8.2003 (Core)
mikelLam
2022/10/31
7980
Zabbix(2)-Zabbix安装
CentOS7下部署开源网络监控工具Observium
Observium是用PHP编写的,使用SNMP从连接的设备收集数据并使用Web界面监视它们。
yuanfan2012
2021/01/13
2.4K0
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)
文章目录 〇、参考链接🔗 一、Zabbix简介🔊 二、Zabbix功能特点及架构图🥇 三、Zabbix节点规划🎨 四、Zabbix安装步骤📌 Ⅰ、Zabbix-Server服务端部署🔴 1、基础环境配置 📖 2、安装Zabbix镜像源📔 3、安装 Zabbix 服务器📕 4、安装 SCL 存储库📗 5、安装zabbix 前端包📘 6、安装并配置数据库📙 7、修改zabbix_server.conf配置文件📚 8、修改 zabbix 的 php 配置文件📓 9、启动Zabbix server和agent进程📒
宝耶需努力
2022/12/13
3.2K0
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)
Linux运维常用shell脚本实例
包含各种不同参数的 Shell 脚本,用来获取和监控 Linux 系统信息和资源使用率获取。
菲宇
2022/12/21
2.7K0
Zabbix 监控常见服务
2.安装Apr-1.6.3,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库.
王 瑞
2022/12/28
3230
Zabbix自动安装篇
#############################defined variable#############################
菲宇
2022/12/21
3430
entOS 7.4基于LNMP环境安装Zabbix监控平台
https://mirrors.yangxingzhen.com/nginx/nginx-1.13.4.tar.gz
子润先生
2021/07/09
3210
Zabbix 5.0.0beta1版本初体验
Zabbix 5.0.0beta1 版本开始前端需要使用PHP 7.2以上的版本,目前使用的Centos 7 仅提供PHP 5.4,Zabbix 官方建议使用Red Hat Software Collections中的PHP和Nginx 升级Zabbix 5.0.0beta1。在使用repo.zabbix.com软件包进行升级会发现yum 搜索缺少前端软件包。
没有故事的陈师傅
2020/04/21
2.8K0
Zabbix 5.0.0beta1版本初体验
利用Zabbix部署一个简易的MySQL监控系统
SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。
GreatSQL社区
2023/02/24
5850
zabbix5.0安装以及配置中文
zcat /usr/share/doc/zabbix-server-mysql-5.0.21/create.sql.gz > zabbix.sql
黑马金牌编程
2022/04/09
5680
Centos 7 安装Zabbix 5
1、关闭防火墙和selinux。不关闭seliunx会导致zabbix-server起不来
网络技术联盟站
2021/05/16
1.3K1
LNMP环境搭建Zabbix监控平台自动化安装脚本
此脚本是LNMP环境搭建Zabbix监控平台自动化安装脚本,有需要朋友可以参考,脚本内容如下:
子润先生
2021/07/06
3500
CentOS7下Zabbix监控平台的搭建
zabbix是一个基于WEB界面,提供分布式系统监视以及网络监视功能的企业级开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运行;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 zabbix由2部分构成,zabbix server与可选组件zabbix agent。 zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上
yuanfan2012
2019/08/22
1.3K0
使用LNMP搭建Zabbix并对接Elasticsearch
不然修改密码之后密码会过期,会提示让你重新设置密码 You must reset your password using ALTER USER statement before executing this statement/usr/local/mysql/bin/mysql -uroot -p #登录MySQLuse mysql #切换MySql数据库
没有故事的陈师傅
2019/07/28
7720
Zabbix upgrade 5.0.0beta1
     Zabbix 5.0.0beta1 版本开始前端需要使用PHP 7.2以上的版本,目前使用的Centos 7 仅提供PHP 5.4,Zabbix 官方建议使用Red Hat Software Collections中的PHP和Nginx 升级Zabbix 5.0.0beta1。在使用repo.zabbix.com软件包进行升级会发现yum 搜索缺少前端软件包。
Kevin song
2020/04/17
1.5K2
Zabbix upgrade 5.0.0beta1
Zabbix4.2安装和4.0升级4.2笔记
Server和ServerActive分别代表zabbix的被动模式和主动模式,这里都填server端的IP 最后一行是开启脚本采集数据
没有故事的陈师傅
2019/07/27
1K0
推荐阅读
相关推荐
CentOS7中使用一键脚本部署Librenms网络监控系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验