在Ubuntu 16.04上使用LibreNMS监视设备

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

先决条件

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

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

安装Nginx和PHP

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

安装Nginx。

sudo apt -y install nginx

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

sudo systemctl start nginx
sudo systemctl enable nginx

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

sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update

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

sudo apt -y install php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-mysql php7.2-snmp php7.2-mbstring php7.2-xml php7.2-zip zip unzip

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

sudo nano /etc/php/7.2/fpm/php.ini

找到以下几行。

;cgi.fix_pathinfo=1
;date.timezone =

取消注释并改用这些值,请替换 Asia/Kolkata 为您当地的时区。

cgi.fix_pathinfo=0
date.timezone = Asia/Kolkata

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

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

重新启动PHP-FPM。

sudo systemctl restart php7.2-fpm

安装MariaDB

MariaDB是MySQL的一个开源分支。将MariaDB存储库添加到系统中,因为默认的Ubuntu存储库包含旧版本的MariaDB。

sudo apt-key adv --yes --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.biz.net.id/repo/10.2/ubuntu xenial main'
sudo apt update

安装MariaDB。在安装过程中,安装程序将询问MySQL root用户的密码。提供一个强密码。

sudo apt -y install mariadb-server

在开始使用MariaDB之前,我们需要对配置进行一些调整。打开配置文件。

sudo nano /etc/mysql/conf.d/mariadb.cnf 

将以下代码添加到文件末尾。

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

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

sudo systemctl restart mariadb.service 
sudo systemctl enable mariadb.service

在配置数据库之前,您需要保护MariaDB实例。

sudo mysql_secure_installation

系统将要求您输入当前的MariaDB根密码,然后提示您更改root密码。由于我们已经root在安装过程中为用户设置了一个强密码,因此请回答“ N”以跳过该密码。对于所有其他问题,请回答“ Y”。提出的问题是不言自明的。

以root用户身份登录MySQL Shell。

mysql -u root -p

提供用于MariaDB根用户登录的密码。运行以下查询为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 apt -y install fping git imagemagick jwhois mtr graphviz nmap python-memcache python-mysqldb rrdtool snmp snmpd whois composer

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

sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -aG www-data librenms

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

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

更改所有权。

sudo chown librenms:librenms -R /opt/librenms

安装PHP依赖项。

cd /opt/librenms
sudo su librenms -c "composer install"

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 cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

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

sudo systemctl restart cron

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

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

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

sudo chown -R librenms:www-data /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存储库。

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

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

sudo apt -y install certbot

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

生成SSL证书。

sudo certbot certonly --webroot -w /var/www/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/sites-available/librenms

填充文件。

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

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

激活新创建的配置。

sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/librenms

重新启动Nginx。

sudo systemctl restart nginx

使用WebUI安装

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

在Ubuntu 16.04上使用LibreNMS监视设备

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

在Ubuntu 16.04上使用LibreNMS监视设备

添加设备后,您可以转到“ Devices”标签查看详细信息。同样,您可以将更多设备添加到LibreNMS应用程序中以进行“全天候”监视。



Leave a Comment

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 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。