如何在CentOS 7上使用Nginx安装LibreNMS监控工具

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监控工具_马特资源网

步骤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监控工具_马特资源网

因此,通过这种方式,您可以安装所有必需的PHP包。

接下来,为LibreNMS安装配置PHP-FPM。我们需要在php.ini文件中定义默认时区,并确保该时区与系统使用的当前时区匹配。您可以通过以下命令检查系统使用的当前时区。

timedatectl

以下屏幕截图显示了上述命令的实际操作:

图片[3]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网

所以我们使用“欧洲/巴黎”时区。

现在,使用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监控工具_马特资源网

确保您拥有“/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监控工具_马特资源网

现在,使用下面的“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监控工具_马特资源网

现在,您需要编辑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监控工具_马特资源网

步骤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监控工具_马特资源网

为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监控工具_马特资源网

-配置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监控工具_马特资源网

使用防火墙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监控工具_马特资源网

然后单击“下一阶段”继续。

-数据库配置
在下面键入数据库详细信息:

数据库用户:“librenms”
数据库名称:“librenms”
DB通行证:’hakase-labs123′

图片[12]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网

然后单击“下一阶段”继续。

-导入MySQL数据库
不要关闭安装页面,因为它将显示数据库导入。确保没有错误。

图片[13]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网

流程完成后,单击“转到添加用户”以添加新的管理员用户。

-添加管理员用户
键入您的管理员用户、电子邮件和密码。

图片[14]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网

单击“添加用户”继续安装。

-生成配置文件

图片[15]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网

单击“生成配置”按钮,您将看到一个类似于以下内容的页面。

图片[16]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网

复制框中的php代码,并在“/opt/librenms/”目录中创建一个新的“config.php”文件。

cd /opt/librenms/
vim config.php

将刚才复制的代码粘贴到新文件中,然后保存并退出编辑器。现在将config.php文件的所有权权限更改为“librenms”用户和组。

chown librenms:librenms config.php
图片[17]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网

回到浏览器,单击页面底部的“完成安装”按钮。您将看到一条类似于以下内容的欢迎消息。

图片[18]_如何在CentOS 7上使用Nginx安装LibreNMS监控工具_马特资源网

在这个阶段,我们已经完成了基于网络的安装。回到终端/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监控工具_马特资源网

接下来,下载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监控工具_马特资源网

这就完成了CentOS 7上Nginx web服务器的LibreNMS安装。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容