在CentOS 7上使用LibreNMS监视设备

LibreNMS是功能齐全的开源网络监视系统。它用于SNMP从不同的设备获取数据。LibreNMS支持多种设备,例如Cisco,Linux,FreeBSD,Juniper,Brocade,Foundry,HP等。它支持多种身份验证机制,并支持两因素身份验证。它具有可自定义的警报系统,可以通过电子邮件,IRC或闲暇来警告网络管理员。

先决条件

在本教程中,我们将使用nms.example.com指向Vultr实例的域名作为域名。请确保将所有示例域名都替换为实际的示例域名。

使用指南如何更新CentOS 7更新基本系统。系统更新后,继续安装依赖项。

安装Nginx和PHP

LibreNMS的前端基本上是用PHP编写的,因此我们将需要安装Web服务器和PHP。在本教程中,我们将安装Nginx和PHP 7.2,以获得最大的安全性和性能。

安装Nginx。

sudo yum -y install nginx

启动Nginx并使它能够在启动时自动启动。

sudo systemctl start nginx
sudo systemctl enable nginx

添加并启用Remi存储库,因为默认的YUM存储库包含旧版本的PHP。

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php72

安装PHP版本7.2以及LibreNMS所需的模块。

sudo yum -y install php php-cli php-common php-curl php-fpm php-gd php-mcrypt php-mysql php-process php-snmp php-xml php-zip

通过PHP在编辑器中打开加载的配置文件。

sudo nano /etc/php.ini

找到以下几行,取消注释并更改其值,如图所示。

;cgi.fix_pathinfo=1
memory_limit = 128M
;date.timezone =

请改用这些值,Asia/Kolkata并用您当地的时区代替。

cgi.fix_pathinfo=0
memory_limit = -1
date.timezone = Asia/Kolkata

您还需要通过运行以下命令来更改系统时区。

sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime

现在打开PHP-FPM配置文件。

sudo nano /etc/php-fpm.d/www.conf

查找以下行。

listen = 127.0.0.1:9000

将其替换为以下行。

listen = /var/run/php-fpm/php-fpm.sock

默认情况下,为Apache Web服务器用户配置PHP-FPM。将用户更改为nginx

user = nginx
group = nginx

此外,取消注释以下几行。

listen.owner = nobody
listen.group = nobody

保存文件并退出编辑器。重新启动PHP-FPM并使其在启动时启动。

sudo systemctl restart php-fpm
sudo systemctl enable php-fpm

为套接字文件设置适当的所有权。

sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock

安装MariaDB

MariaDB是MySQL的分支。将MariaDB存储库添加到您的系统中。默认yum存储库包含旧版本的MariaDB。

echo "[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" | sudo tee /etc/yum.repos.d/mariadb.repo

安装MariaDB。

sudo yum -y install mariadb mariadb-server

现在,打开MySQL配置文件。

sudo nano /etc/my.cnf

在代码块的末尾添加以下几行。

[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

重新启动MariaDB,并使它能够在引导时自动启动。

sudo systemctl restart mariadb
sudo systemctl enable mariadb

在配置数据库之前,您需要首先保护MariaDB的安全。

sudo mysql_secure_installation

系统将要求您输入当前的MariaDB根密码。默认情况下,全新的MariaDB安装中没有root密码。按“ Enter”键继续。root为您的MariaDB服务器的用户设置一个强密码,并回答Y所有其他问题。提出的问题是不言自明的。

以root用户身份登录MySQL Shell。

mysql -u root -p

提供MariaDB root用户登录的密码。

运行以下查询为LibreNMS安装创建数据库和数据库用户。

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;

您可以根据自己的选择替换数据库名称librenms和用户名librenms。请确保更改StrongPassword为非常安全的密码。

安装LibreNMS

除了上述依赖性之外,LibreNMS还需要更多的依赖性。通过运行安装它们。

sudo yum -y install cronie fping git ImageMagick jwhois mtr MySQL-python net-snmp net-snmp-utils nmap  python-memcached rrdtool

为LibreNMS应用程序添加新的非特权用户。

sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms nginx

可以通过克隆其Github存储库直接安装LibreNMS。

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

修复所有权。

sudo chown librenms:librenms -R /opt/librenms

LibreNMS依靠SNMP来完成许多任务。由于我们已经安装了SNMP,因此将示例配置文件复制到其位置。

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

在编辑器中打开配置文件。

sudo nano /etc/snmp/snmpd.conf

找到这条线。

com2sec readonly  default         RANDOMSTRINGGOESHERE

编辑文本RANDOMSTRINGGOESHERE并将社区字符串替换为您选择的任何字符串。例如。

com2sec readonly  default         my-org

请记住该字符串,因为稍后添加第一个SNMP设备时将需要该字符串。

SNMP还需要有关发行版的信息。下载并安装脚本以查找发行版本。

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

启动SNMP守护程序服务,并使它在引导时自动启动。

sudo systemctl enable snmpd
sudo systemctl restart snmpd

现在,您将需要添加一些crontab条目以运行计划的任务。创建一个新的cron作业文件。

sudo nano /etc/cron.d/librenms

用以下文本填充文件。

33   */6  * * *   librenms    /opt/librenms/cronic /opt/librenms/discovery-wrapper.py 1
*/5  *    * * *   librenms    /opt/librenms/discovery.php -h new >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/cronic /opt/librenms/poller-wrapper.py 16
15   0    * * *   librenms    /opt/librenms/daily.sh >> /dev/null 2>&1
*    *    * * *   librenms    /opt/librenms/alerts.php >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/poll-billing.php >> /dev/null 2>&1
01   *    * * *   librenms    /opt/librenms/billing-calculate.php >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/check-services.php >> /dev/null 2>&1

重新启动cron守护程序服务。

sudo systemctl restart crond

进行设置,logrotate以便随着时间的推移自动刷新日志文件。

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

最后,设置适当的所有权和权限。

sudo chown -R librenms:nginx /opt/librenms
sudo chmod g+w -R /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

SSL和Nginx VHost配置

如果未使用SSL加密连接,则通过LibreNMS的Web界面发送的登录名和其他信息将不安全。我们将Nginx配置为使用“让我们加密免费SSL”生成的SSL。

安装Certbot,这是Let's Encrypt CA的客户端应用程序。

sudo yum -y install certbot

在可以请求证书之前,您将需要允许端口80443或标准HTTPHTTPS服务通过防火墙。

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

注意要从Let's Encrypt CA获取证书,必须为其生成证书的域指向服务器。如果不是,请对域的DNS记录进行必要的更改,并在再次发出证书请求之前,等待DNS传播。Certbot在提供证书之前会检查域权限。

生成SSL证书:

sudo certbot certonly --webroot -w /usr/share/nginx/html -d nms.example.com

生成的证书很可能存储在/etc/letsencrypt/live/nms.example.com/目录中。SSL证书将存储为fullchain.pem,私钥将存储为privkey.pem

让我们加密证书的有效期限为90天,因此建议您使用cron作业为证书设置自动续订。

打开cron作业文件。

sudo crontab -e

在文件末尾添加以下行。

30 5 * * 1 /usr/bin/certbot renew --quiet

上面的cron作业将在当地时间每周一的5:30 AM运行。如果证书到期,它将自动更新。

创建一个新的虚拟主机。

sudo nano /etc/nginx/conf.d/nms.example.com.conf

填充文件。

server {
    listen 80;
    server_name nms.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name nms.example.com;

    ssl_certificate           /etc/letsencrypt/live/nms.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/nms.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /opt/librenms/logs/librenms.nginx.access.log;
    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-fpm/php-fpm.sock;
    }
    location ~ /\.ht {
        deny all;
    }
 }

nms.example.com在上述配置中替换为您的实际域。

重新启动Nginx。

sudo chown nginx:nginx /var/lib/php/session
sudo systemctl restart nginx

使用WebUI安装

要完成安装,请https://nms.example.com在您喜欢的浏览器上打开。您将看到满足要求。提供您的数据库详细信息并创建一个新的管理帐户。安装完成后,您将收到一条消息以验证安装。单击链接,然后使用管理员帐户登录。您会看到除“ Poller” 之外的所有其他Ok状态均为“ ”。

在CentOS 7上使用LibreNMS监视设备

现在,单击链接以添加设备。在“ Add Device”界面上,提供主机名作为localhost并保留所有内容。在社区字段中提供您的社区字符串。它必须snmpd.conf与配置SNMP时提供的字符串完全相同。

在CentOS 7上使用LibreNMS监视设备

添加设备后,您可以转到“ Devices”标签查看详细信息。

在CentOS 7上使用LibreNMS监视设备

同样,您可以将更多设备添加到LibreNMS应用程序中以进行“全天候”监视。



Leave a Comment

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息