LibreNMS是一款开源且功能齐全的网络监控工具,可以为网络设备提供广泛的监控特性和功能,其主要特点包括以下几点:
- 使用 ARP、SNMP、BGP、OSPF、LLDP 和 FDP 协议自动发现整个网络。
- 一个高度可定制的警报系统,可以调整以通过电子邮件、Slack和其它渠道发送警报。
- 一个简单且易于定制的仪表板。
- 全面的API支持,用于管理和绘制来自监控服务器的数据。
- 广泛的设备支持—支持广泛的硬件供应商,例如Cisco、Juniper、HP等。
- 自动更新和错误修复。
- 多因素身份验证。
- 对Android和iOS应用程序的原生支持。
当然,在本指南当中,小编将简单介绍Debian 11/10系统上安装LibreNMS监控工具的简单过程,感兴趣的小伙伴可以看看。
第 1 步:安装 Nginx、MariaDB和PHP
首先,刷新存储库并安装必备软件包,命令如下:
$ sudo apt update $ sudo apt install software-properties-common wget apt-transport-https
下一步是安装Nginx和其他软件包,例如libreNMS监控工具所需的curl、git、snmp和python软件包。
所以,运行以下命令:
$ sudo apt install nginx-full curl acl fping graphviz composer git imagemagick mtr-tiny nmap python3-pip python3-memcache python3-mysqldb python3-dotenv python3-pymysql rrdtool snmp snmpd whois python3-redis python3-systemd python3-setuptools python3-systemd
接下来,安装LibreNMS监控工具所需的MariaDB数据库服务器、PHP和其它PHP扩展。
$ sudo apt install mariadb-server php php-fpm php-cli php-xml php-common php-gd php-json php-snmp php-pdo php-mysql php-zip php-curl php-mbstring php-pear php-bcmath
安装后,请务必启用Nginx、php-fpm、MariaDB和SNMP服务,命令如下:
$ sudo systemctl enable --now nginx $ sudo systemctl enable --now php7.4-fpm $ sudo systemctl enable --now mariadb $ sudo systemctl enable --now snmpd.service
第 2 步:为PHP配置TimeZone
下一步需要配置或设置PHP时区,这是在默认的PHP配置文件php.ini文件中完成的。
使用你喜欢的编辑器访问以下路径中的php.ini配置文件。
$ sudo nano /etc/php/7.4/fpm/php.ini $ sudo nano /etc/php/7.4/cli/php.ini
导航到date.timezone参数并将其设置为你的时区。
在本文中,小编将时区设置为UTC。
date.timezone = UTC
然后保存更改并退出文件。
第 3 步:为LibreNMS创建数据库
在这一步中,将为LibreNMS安装创建一个数据库。首先,需要通过运行以下脚本来保护数据库的安全:
$ sudo mysql_secure_installation
按照详细的提示,将指导你如何创建MariaDB根密码、删除匿名用户和测试数据库,最后禁止远程根登录。这些在之前的文章重复说了很多遍了,这里就不演示了。
接下来,登录MariaDB数据库:
$ sudo mysql -u root -p
然后运行以下命令创建数据库和数据库用户,并将所有权限分配给数据库用户。
CREATE DATABASE librenms_db CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE USER 'librenms_user'@'localhost' IDENTIFIED BY 'P@ssword321'; GRANT ALL PRIVILEGES ON librenms_db.* TO 'librenms_user'@'localhost';
然后保存更改并退出MariaDB提示符。
FLUSH PRIVILEGES; EXIT;
此外,需要进行一些数据库微调,打开如下所示的MariaDB配置文件:
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
然后将以下代码行粘贴到“ mysqld ”部分。
innodb_file_per_table=1 lower_case_table_names=0
保存更改并退出文件,要应用更改,请重新启动数据库服务器。
$ sudo systemctl restart mariadb
第 4 步:添加LibreNMS用户
这里还需要创建一个新的LibreNMS用户,这是LibreNMS将在其下运行的用户。在此示例中,正在创建一个名为librenms的用户,该用户具有以下属性。
$ sudo useradd librenms -d /opt/librenms -M -r -s /bin/bash $ sudo usermod -aG librenms www-data
-d
选项将librenms用户的主目录设置为/opt/librenms目录。-r
选项将librenms用户配置为系统用户。-M
选项跳过为用户创建主目录,因为它已使用该-d
选项定义。-s
选项指定shell的类型,在本例中为bash。
第 5 步:克隆LibreNMS Git存储库
接下来要克隆LibreNMS git 存储库以开始设置它。
运行以下命令来克隆Git存储库
$ cd /opt $ sudo git clone https://github.com/librenms/librenms.git
然后切换回主目录。
$ cd ~
然后需要将目录所有权和权限分配给Librenms主目录。为此,请运行以下命令:
$ sudo chown -R librenms:librenms /opt/librenms $ sudo chmod 771 /opt/librenms
此外,使用setfacl命令修改Librenms主目录的访问控制列表。这将授予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/
第 6 步:安装PHP依赖项
在设置LibreNMS监控工具期间,PHP需要一些依赖项。为此,需要以librenmsuser身份登录。
$ sudo su - librenms
接下来,安装所有PHP依赖项,命令如下:
$ ./scripts/composer_wrapper.php install --no-dev
依赖项安装完成后,退出librenms用户。
$ exit
第 7 步:为LibreNMS安装配置PHP-FPM
接下来需要对PHP-FPM进行一些更改以支持LibreNMS。
要实现这一点,需要将默认配置文件“ www.conf ”文件复制到“ librenms.conf ”文件中,命令如下:
$ sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf
接下来,编辑“ librenms.conf ”文件,命令如下:
$ sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf
将用户和组参数更改为librenms,命令如下:
user = librenms group = librenms
接下来,将listen属性修改为/run/php-fpm-librenms.sock,如下命令:
listen = /run/php-fpm-librenms.sock
保存更改并退出配置,请务必重新启动PHP-FPM服务以应用更改。
$ sudo systemctl restart php7.4-fpm
步骤 8:配置SNMP守护程序
SNMP协议是一种TCP/IP 协议,它通过网络收集和组织来自受管设备的指标或信息。大多数监控工具(如Cacti)利用SNMP服务从远程主机收集信息,对于LibreNMS也是如此。
要配置SNMP服务,请继续将snmpd.conf.example文件复制到/etc/snmp/snmpd.conf文件。
$ sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
接下来,编辑snmpd.conf文件。
$ sudo vim /etc/snmp/snmpd.conf
找到RANDOMSTRINGGOESHERE字符串,如下:
com2sec readonly default RANDOMSTRINGGOESHERE
将其更改为librenms。
com2sec readonly default librenms
保存更改并退出。
接下来,下载distro文件,这是一个自动检测被管节点的操作系统并区分其分布的文件。
$ sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
使其可执行并重新启动SNMP服务。
$ sudo chmod +x /usr/bin/distro $ sudo systemctl restart snmpd
第 9 步:为LibreNMS配置Nginx
使用Nginx作为首选的Web服务器,需要执行额外的步骤并对其进行配置,以便为LibreNMS提供服务。
首先,将创建一个Nginx服务器块,命令如下:
$ sudo nano /etc/nginx/sites-available/librenms
粘贴以下代码行。注意,对于server_name属性,填写你服务器绑定的域名或IP地址。
server { listen 80; server_name 23.92.31.14; 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/php-fpm.sock; } location ~ /.ht { deny all; } }
保存更改并退出配置文件。接下来,通过创建符号链接启用Nginx服务器块,命令如下:
$ sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
然后重新启动 Nginx 以应用对配置所做的更改。
$ sudo systemctl restart nginx
此外,可以通过运行以下命令确认所有Nginx设置都正常:
$ sudo nginx -t
第 10 步:复制Logrotate和Cron配置
默认情况下,LibreNMS将其日志存储在/opt/librenms/logs目录中。随着时间的推移,这很容易占满并出现空间不足。为防止这种情况,建议定期替换旧日志文件。
因此将LibreNMS目录中的logrotate文件复制到/etc/logrotate.d/目录中。
$ sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
同样需要设置的是,按如下方式复制cron作业文件以允许自动轮询和发现新设备:
$ sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
第 11 步:从浏览器完成LibreNMS的设置
要从浏览器完成设置,请访问以下URL:
http://server-ip #替换成你的服务器IP地址
这时会出现安装前检查表的页面,如果一切正常,请单击右侧的“数据库”图标。
请务必填写所有数据库详细信息,然后单击“Check Credentials”按钮,如下图所示:
验证数据库详细信息后,单击“Build Database”按钮:
完成此步骤后,单击下一个图标以创建管理员用户。提供管理员用户的用户名、密码和电子邮件,然后单击“Add User”按钮:
最后,点击最后一个按钮完成安装即可:
注意,在安装时可能遇到此错误,通知安装程序“Failed to write file: /opt/librenms/.env ”。
这个不用担心,只需使用提供的数据库详细信息,然后手动更新/opt/librenms/.env文件。当然这些细节会因你自身情况而异。
因此,访问该文件,命令如下:
$ sudo nano /opt/librenms/.env
删除文件中的所有内容并将上图提供的详细信息(红框中)粘贴到该文件中,然后保存更改即可:
接下来返回并单击“Retry”按钮,这样就会进入LibreNMS登录页面,提供登录凭据并单击“Login”按钮即可:
登录后,将会看到这样的仪表板,在这里可以开始添加主机并监控各种指标,功能很强大:
总结
以上就是在Debian 11/10系统中安装LibreNMS监控工具的全部过程,设置仅供参考。
众所周知,LibreNMS是一款比较不错的服务器监控工具,比肩Zabbix。所以,如果想体验LibreNMS监控工具的强大功能,那就赶快去安装吧!