LibreNMS是一个基于PHP/MYSQL/SNMP的开源监控工具。它是一个功能齐全的网络监控系统,支持各种网络硬件和操作系统,包括FreeBSD、Cisco、Linux、HP等。
在本教程中,我们将向您展示如何使用Nginx作为web服务器和MariaDB作为数据库安装和配置LibreNMS。我们将使用CentOS 7服务器作为我们的主服务器。
条件
CentOS 7服务器
Root权限
步骤1-安装所需的软件包
在服务器上安装LibreNMS之前,我们需要安装一些软件包,包括ImageMagick、rrdtool、SNMP、git等。以下命令应该可以完成必要的操作:
yum -y install net-snmp ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie fping git
如果一切顺利,继续下一步。
步骤2-安装Nginx Web服务器
在此步骤中,我们将为nginx web服务器安装安装epel存储库。EPEL(企业Linux的额外软件包)存储库是基于rpm的操作系统(包括CentOS 7)的额外存储库。
使用下面的yum命令安装EPEL存储库。
yum -y install epel-release
现在安装nginx。
yum -y install nginx
安装nginx后,启动服务,并使用以下systemctl命令使其在启动时自动运行。
systemctl start nginx
systemctl enable nginx
因此,Nginx web服务器已从EPEL存储库安装在系统上。
![图片[1]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079409025.png)
步骤3-安装和配置PHP-FPM
在我们继续之前,这里有一些值得分享的信息:
我们将使用PHP-FPM版本7进行LibreNMS安装。CentOS 7的所有PHP 7包都可以在第三方存储库上获得,我们将使用“webstatic”存储库中的PHP 7版本。
那么,让我们开始吧。
使用以下rpm命令将PHP 7 webstatic存储库添加到系统中。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
使用yum从wetatic存储库安装PHP7和所有需要的扩展。
yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt
现在更新PEAR存储库,并使用PEAR命令安装一些PEAR(PHP扩展和应用程序存储库)扩展。
pear channel-update pear.php.net
pear install Net_IPv4-1.3.4
pear install Net_IPv6-1.2.2b2
![图片[2]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079482214.png)
因此,通过这种方式,您可以安装所有必需的PHP包。
接下来,为LibreNMS安装配置PHP-FPM。我们需要在php.ini文件中定义默认时区,并确保该时区与系统使用的当前时区匹配。您可以通过以下命令检查系统使用的当前时区。
timedatectl
以下屏幕截图显示了上述命令的实际操作:
![图片[3]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079530036.png)
所以我们使用“欧洲/巴黎”时区。
现在,使用vim编辑“/etc/php.ini”文件。
vim /etc/php.ini
接下来,取消注释“date.timezone”行,并给出服务器时区为“Europe/Paris”的值。
data.timezone = Europe/Paris
同样,取消注释cgi行并将值更改为“0”。
cgi.fix_pathinfo=0
就是这样。现在保存更改并退出编辑器。
接下来,我们需要定义PHP-FPM如何在系统上运行。在我们的例子中,PHP-FPM将在“sock”文件下运行,而不是在服务器端口下运行。
使用vim编辑“www.conf”文件以配置PHP-FPM。
vim /etc/php-fpm.d/www.conf
将“listen”端口行更改为sock文件,如下所示。
listen = /var/run/php-fpm/php7.0-fpm.sock
取消对所有者、组和sock文件权限的“监听”行的注释,如下所示。
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
就是这样。现在保存更改并退出编辑器。
因此,PHP-FPM配置现在已完成。启动服务,并使用以下命令使其在启动时自动运行。
systemctl start php-fpm
systemctl enable php-fpm
现在PHP-FPM正在sock文件下运行。您可以使用netstat命令进行检查。
netstat -pl | grep php
![图片[4]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079672713.png)
确保您拥有“/var/run/php-fpm/php7.0-fpm.sock”文件的结果。
步骤4-安装和配置MariaDB
LibreNMS使用MySQL数据库来存储所有数据。在本指南中,我们将使用MariaDB数据库版本。它在存储库中可用,我们需要安装并添加一些LibreNMS安装的配置,包括为LibreNMS添加数据库和用户。
使用下面的yum命令安装MariaDB。
yum -y install mariadb mariadb-server
启动MariaDB服务,并使其在启动时自动启动。
systemctl start mariadb
systemctl enable mariadb
![图片[5]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079727364.png)
现在,使用下面的“mysql_secure_installation”命令配置MariaDB根密码。
mysql_secure_installation
您将被问及MariaDB数据库的新根密码以及其他一些问题。
键入“Y”,然后按Enter键确认。
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDB已经安装。现在我们需要为LibreNMS创建一个新的数据库和一个新用户。使用mysql客户端和新密码登录mysql shell命令行。
mysql -u root -p
创建一个名为“librenms”的新数据库,一个密码为“hakase-labs123”的新用户“librenms”。
使用下面的MySQL查询创建所有这些。
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
LibreNMS安装的新用户和数据库已经创建。
![图片[6]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079812165.png)
现在,您需要编辑my.cnf文件以添加新的mysql配置。使用vim编辑“/etc/my.cnf”文件。
vim /etc/my.cnf
在“[mysqld]”部分粘贴以下附加配置。
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
保存并退出vim,然后重新启动mariadb服务器。
systemctl restart mariadb
![图片[7]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079866144.png)
步骤5-下载并配置LibreNMS
在此步骤中,我们将配置系统以安装LibreNMS。
-添加用户并下载LibreNMS源代码
创建一个名为“librenms”的新系统用户,然后在“/opt/librenms”目录上为该用户定义主目录,最后将“librenms”用户添加到“nginx”组。
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx
转到“/opt/”目录,使用git clone命令下载LibreNMS源代码,如下所示。
cd /opt/
git clone https://github.com/librenms/librenms.git librenms
![图片[8]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079917806.png)
为LibreNMS日志和rrd文件创建一个新目录。
mkdir -p /opt/librenms/logs/
mkdir -p /opt/librenms/rrd/
chmod 775 /opt/librenms/rrd/
现在,将“/opt/librenms”目录下所有文件和目录的所有权更改为“librenms”用户和组。
chown -R librenms:librenms /opt/librenms/
![图片[9]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744079969089.png)
-配置LibreNMS虚拟主机
LibreNMS是一个基于Web的应用程序,我们使用Nginx Web服务器来托管它。
在nginx的conf.d目录下创建一个新的虚拟主机文件librenms.conf。
vim /etc/nginx/conf.d/librenms.conf
粘贴下面的配置。
server {
# Add your own domain name
listen 80;
server_name librenms.irsyadf.me;
# LibreNMS Webroot directory
root /opt/librenms/html;
index index.php;
# LibreNMS logs
access_log /opt/librenms/logs/access_log;
error_log /opt/librenms/logs/error_log;
# Enabling Gzip compression on Nginx
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;
}
# PHP-FPM handle all .php files requests
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
就是这样。现在保存并退出Vim。
测试nginx配置,确保没有错误。然后重新启动Web服务器。
nginx -t
systemctl restart nginx
-防火墙配置
确保您的系统上安装了防火墙软件包。如果没有,您可以使用以下yum命令安装firewalld。
yum -y install firewalld
启动firewalld,并使用以下systemctl命令使其在启动时运行。
systemctl start firewalld
systemctl enable firewalld
![图片[10]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080077392.png)
使用防火墙cmd命令打开新的HTTP、HTTPS和SNMP端口161/udp,如下所示。
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=161/udp --permanent
通过重新加载firewalld应用配置,并检查所有服务。
firewall-cmd --reload
firewall-cmd --list-all
确保HTTP和HTTPS服务在列表中。
步骤6-LibreNMS基于web的安装
打开您的网络浏览器,在地址栏上键入LibreNMS URL。
http://librenms.hakase-labs.me/
您将被重定向到安装页面“install.php”。
-检查PHP模块支持
确保系统上安装了所有必需的php模块和扩展。
![图片[11]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080155530.png)
然后单击“下一阶段”继续。
-数据库配置
在下面键入数据库详细信息:
数据库用户:“librenms”
数据库名称:“librenms”
DB通行证:’hakase-labs123′
![图片[12]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080180986.png)
然后单击“下一阶段”继续。
-导入MySQL数据库
不要关闭安装页面,因为它将显示数据库导入。确保没有错误。
![图片[13]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080205402.png)
流程完成后,单击“转到添加用户”以添加新的管理员用户。
-添加管理员用户
键入您的管理员用户、电子邮件和密码。
![图片[14]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080231012.png)
单击“添加用户”继续安装。
-生成配置文件
![图片[15]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080258368.png)
单击“生成配置”按钮,您将看到一个类似于以下内容的页面。
![图片[16]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080273960.png)
复制框中的php代码,并在“/opt/librenms/”目录中创建一个新的“config.php”文件。
cd /opt/librenms/
vim config.php
将刚才复制的代码粘贴到新文件中,然后保存并退出编辑器。现在将config.php文件的所有权权限更改为“librenms”用户和组。
chown librenms:librenms config.php
![图片[17]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080324268.png)
回到浏览器,单击页面底部的“完成安装”按钮。您将看到一条类似于以下内容的欢迎消息。
![图片[18]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080339937.png)
在这个阶段,我们已经完成了基于网络的安装。回到终端/shell并添加更多配置。
步骤7-最终配置
在这一步,我们将为LibreNMS安装添加一些配置。
-定义fping命令
通过编辑LibreNMS配置文件定义“fping”命令。转到“/opt/librenms/”目录,使用vim编辑器编辑config.php文件。
cd /opt/librenms/
vim config.php
将以下行添加到文件底部。
$config['fping'] = "/usr/sbin/fping";
保存并退出编辑器。
-SNMP配置
备份“/etc/snmp/”目录上的默认snmp.conf文件,并从librenms目录复制新文件。
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.asli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
编辑新配置。
vim /etc/snmp/snmpd.conf
将文本“RANDOMSTRINGGOESHERE”更改为您自己的社区名称,如下所示。
com2sec readonly default hakaselabs
就是这样。保存并退出Vim。
![图片[19]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080452067.png)
接下来,下载librenms代理脚本,用于检测您添加了哪个操作系统。如果添加Linux操作系统,脚本也会检测特定的Linux发行版。
使用curl下载脚本并使其可执行。
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
现在,使用以下systemctl命令重新启动SNMP服务。
systemctl restart snmpd
-为LibreNMS配置Logrotate
LibreNMS提供logrotate配置的配置,它位于“/opt/LibreNMS/misc”目录中。
将配置示例复制到“/etc/logrotate.d”目录。
cp misc/librenms.logrotate /etc/logrotate.d/librenms
-LibreNMS cronjob配置
转到“opt/librenms”目录,将crontab脚本“librenms.nonroot.cron”文件复制到“cron.d”目录。
cd /opt/librenms/
cp librenms.nonroot.cron /etc/cron.d/librenms
等待几分钟,让脚本自动运行。
-验证LibreNMS配置
要验证安装,请使用validate.php脚本。转到“/opt/librenms/”目录并运行脚本。
cd /opt/librenms/
./validate.php
假设您没有遇到错误,您应该看到类似以下内容的输出:
![图片[20]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/04/1744080563539.png)
这就完成了CentOS 7上Nginx web服务器的LibreNMS安装。
暂无评论内容