Ubuntu 20.04/18.04使用nginx安装和配置Librenms

时间:2020-02-23 14:38:31  来源:igfitidea点击:

Librenms是一种基于社区的GPL-许可自动发现网络监控工具,基于PHP,MySQL和SNMP。
Librenms包括支持各种网络硬件和操作系统,包括瞻博网络,思科,Linux,铸造,FreeBSD,Brocade,HP,Windows等。
它是"舞台"监测工具的叉子。

在本教程中,我们将介绍Ubuntu 20.04/18.04 LTS服务器的Librenms的安装和配置,代码为仿生海狸。
我们在 Cacti ,Zabbix,Grafana,Prometheus和 Influx 的其他监控教程。

LibreNMS的特点

以下是Librenms网络监控工具的特点

具有自动发现 - 它将使用CDP,FDP,LLDP,OSPF,BGP,SNMP和ARPAPI访问自动发现整个网络 - Librenms提供全部API来管理,图形和从安装中检索数据通过新功能和错误修复自动留下来.Customisable警报 - 高度灵活的警报系统,通过电子邮件,IRC,Slack等通知通过水平缩放的分布式轮询,并通过NetworkBilling系统增长 - 轻松生成带宽账单基于使用或者托管的网络上的端口烟熏,腐臭,氧化

在Ubuntu 20.04/18.04上安装和配置Librenms - 准备工作

以下是在Ubuntudatabase服务器上运行Librenms的要求 - 我们将使用MariadbphpWeb服务器 - 我们将使用nginx

第1步:安装LEMP堆栈(MariaDB,Nginx和PHP)

按照下面的教程在Ubuntu上安装MariaDB:

在Ubuntu 18.04和Centos 7上安装MariaDB 10.3

现在,Librenms与MySQL严格模式完全兼容,请在安装MySQL后禁用此功能。

sudo vim /etc/mysql/mariadb.cnf

在这内 [mysqld]请补充:

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

然后重启 mysql

sudo systemctl restart mysql

已安装和配置数据库服务器后,我们需要创建一个 database对于自卑。

create database librenms;
grant all privileges on librenms.* to Hyman@theitroad IDENTIFIED by "StrongPassword";
flush privileges;
quit

通过在终端上运行下面的命令来安装PHP:

sudo apt-get -y install wget php php-pear php-cgi php-common php-curl \
php-mbstring php-gd php-mysql php-gettext php-bcmath \
php-imap php-json php-xml php-snmp php-fpm php-zip

要确认已安装的PHP版本,请使用命令 php -v

# php -v
PHP 7.2.8 (cli) (built: May 17 2016 09:50:46) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2016 Zend Technologies

配置和启动PHP-FPM

确保DateZone在PHP.ini中设置为首选时区:

编辑两个文件:

sudo vim /etc/php/7.2/fpm/php.ini
sudo vim /etc/php/7.2/cli/php.ini

改变 date.timezone在下面 [Date]部分:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Africa/Nairobi

重新启动PHP FPM:

sudo systemctl restart php7.2-fpm.service

对于此设置,我们将使用nginx作为Librenms的Web服务器,通过运行安装它:

$sudo apt-get install nginx

第2步:下载并安装Librenms

我们将在此步骤下载并安装Librenms。
如果我们没有git,请首先安装它:

$sudo apt-get install git

自由将在自己的用户下运行,称为Librenms,我们需要添加:

$sudo useradd -r -M -d /opt/librenms librenms
$getent passwd librenms
librenms:x:997:996::/opt/librenms:/bin/sh

将此用户添加到Web用户组 www-data

sudo usermod -a -G librenms www-data

完成后。
继续安装Librenms所需的包

sudo apt-get update
sudo apt install rrdtool whois fping imagemagick graphviz  mtr-tiny \
nmap python-mysqldb snmp snmpd python-memcache mtr-tiny acl

来自GitHub的克隆自由源代码:

$git clone https://github.com/librenms/librenms.git librenms
Cloning into 'librenms'...
remote: Counting objects: 130428, done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 130428 (delta 10), reused 10 (delta 4), pack-reused 130396
Receiving objects: 100% (130428/130428), 128.54 MiB | 19.52 MiB/s, done.
Resolving deltas: 100% (88754/88754), done.
Checking out files: 100% (8476/8476), done.

移动文件夹 librenms/opt

sudo mv librenms//opt/

更改目录的权限:

sudo chown -R librenms:librenms /opt/librenms/
sudo chmod -R 775 /opt/librenms/

配置SNMPD.

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo vim /etc/snmp/snmpd.conf

编辑说的文字 RANDOMSTRINGGOESHERE并设置自己的社区字符串。

curl -o distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x distro
sudo mv distro  /usr/bin/distro

重新开始 snmpd

sudo systemctl restart snmpd

创造librenms cron工作

运行以下命令以设置Cron作业:

sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

复制Logrotate Config.

Librenms让登录登录 /opt/librenms/logs
随着时间的推移,这些可以变大并被旋转。
要旋转旧日志,可以使用提供的Logotate配置文件:

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

修复自由权限

最后,修复所有权限

sudo chown -R librenms:librenms /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache//opt/librenms/storage/
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache//opt/librenms/storage/

第2步:配置nginx

让我们创建Librenms使用nginx的VirtualHost定义。

$sudo 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:/var/run/php/php7.2-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
}

检查语法:

$sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果一切正常,请重新启动nginx:

$sudo systemctl restart nginx

第3步:在Web UI上配置Librenms

运行Composer安装:

cd /opt/librenms
./scripts/composer_wrapper.php install --no-dev

现在打开Web浏览器并启动安装程序:

http://librenms.example.com/install.php

继续配置数据库连接,然后添加管理员用户。

Web Installer可能会提示我们手动在Librenms安装位置创建Config.php文件,将显示的内容复制到文件中显示的内容。

sudo vim /opt/librenms/config.php

如果我们必须这样做,请记得设置权限 config.php将屏幕内容复制到文件后。
运行:

sudo chown librenms:librenms /opt/librenms/config.php

我们有一个准备好的Librenms监控工具,通过单击"验证安装并修复任何问题"验证安装,或者使用:

# cd /opt/librenms
# ./validate.php
====================================
Component | Version
--------- | ------
LibreNMS  | 1.42
DB Schema | 257
PHP       | 7.2.7-0ubuntu0.18.04.2
MySQL     | 10.3.8-MariaDB-1:10.3.8+maria~bionic-log
RRDTool   | 1.7.0
SNMP      | NET-SNMP 5.7.3
====================================
[OK]    Composer Version: 1.6.5
[OK]    Dependencies up-to-date.
[OK]    Database connection successful
[OK]    Database schema correct
[WARN]  You have not added any devices yet.
	[FIX] You can add a device in the webui or with ./addhost.php
[WARN]  Your local git contains modified files, this could prevent automatic updates.
	[FIX] You can fix this with ./scripts/github-remove
	Modified Files:
	 rrd/.gitignore

登录Librenms管理员门户并开始配置网络监控