如何在Ubuntu 16.04 LTS上使用Nginx设置LibreNMS监控工具
LibreNMS是一个基于PHP / MYSQL / SNMP的开源监控工具。 这是一个功能强大的网络监控系统,可以支持广泛的网络硬件和操作系统,包括FreeBSD,Cisco,Linux,HP等。
在本教程中,我将向您展示如何使用Nginx作为Web服务器,MariaDB作为数据库,Ubuntu 16.04服务器作为我们的主服务器来安装和配置开源监视工具“LibreNMS”。 我们将逐步指导您如何在Ubuntu 16.04 Xenial Xerus服务器上安装和配置'LibreNMS'。
我们将要做什么
- 安装软件包
- 安装Nginx Webserver
- 安装和配置PHP-FPM
- 安装和配置MariaDB
- 下载并配置LibreNMS
- LibreNMS Web安装程序
- 最终配置
先决条件
- Ubuntu 16.04服务器
- 根权限
第1步 - 安装软件包
安装LibreNMS Monitoring Tools必须做的第一步是安装服务器上需要的一些软件包。 连接到您的服务器并更新存储库。
ssh root@hakase-labs-server
sudo apt update
使用以下命令从Ubuntu资源库安装LibreNMS所需的所有软件包。
apt install fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd rrdtool git snmp graphviz
安装完成后,进入下一步。
第2步 - 安装Nginx Web服务器
在本教程中,我们将在Nginx Web服务器下运行LibreNMS。 Nginx是Ubuntu存储库中的强大的Web服务器。
按以下方式使用apt中的apt命令安装nginx。
apt install nginx
完成后,启动服务并使其每次在系统启动时自动运行。
systemctl start nginx
systemctl enable nginx
Nginx Web服务器运行在默认端口80下。我们可以使用netstat命令检查端口,并使用curl命令检查Nginx获取HTTP状态代码,如下所示。
netstat -plntu | grep 80
curl -I localhost
Nginx的安装已经完成。
第3步 - 安装和配置PHP-FPM
LibreNMS是基于PHP的Web应用程序监视工具。 它支持新的PHP 7.0版本,我们将在本指南中使用它。
使用下面的apt命令安装PHP,PHP-FPM以及LibreNMS安装所需的所有扩展/模块。
apt install php7.0-cli php7.0-mysql php7.0-gd php7.0-snmp php-pear php7.0-curl php7.0-fpm php7.0-mcrypt php7.0-json php-net-ipv4 php-net-ipv6
接下来,我们需要添加一些配置到php.ini文件。 我们需要在php.ini文件中定义默认的时区,并确保时区与系统使用的当前时区匹配。
使用以下命令检查系统使用的当前时区。
timedatectl
你应该得到类似于以下的结果。
你可以看到服务器正在使用“ 欧洲/巴黎 ”时区。
现在转到PHP配置目录,编辑cli和fpm config的php.ini文件。
cd /etc/php/7.0/
vim fpm/php.ini
vim cli/php.ini
取消注释“ date.time ”行,并使用我们的系统时区“ 欧洲/巴黎 ”更改值。
date.time = Europe/Paris
取消注释下面的cgi配置,将值更改为0。
cgi.fix_pathinfo = 0
保存并退出。
所有配置完成。 现在启动该服务,并使用以下systemctl命令在启动时进行启动。
systemctl start php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPM现在在ubuntu服务器上运行 - 它在sock文件下运行。 用netstat命令检查它。
netstat -pl | grep php
第4步 - 安装和配置MariaDB
在这一步中,我们将为LibreNMS数据库安装mariadb-server。 我们将为LibreNMS安装安装,配置和创建新的数据库和新用户。
使用下面的apt命令从ubuntu存储库安装mariadb-server。
apt install mariadb-server mariadb-client mariadb
完成后,启动该服务,并使其在系统引导时自动运行,您可以使用以下systemctl命令执行此操作。
systemctl start mysql
systemctl enable mysql
数据库服务器mariadb现在正在运行。 接下来,我们需要为mariadb配置root密码。 我们可以使用下面的'mysql_secure_installation'命令来配置root密码。
mysql_secure_installation
您将被问到新的root密码 - 输入您的密码,然后按“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创建一个新的数据库和用户。 我们将创建一个名为“librenms”的新数据库,一个名为“librenms”的新用户,密码为“hakase-labs123”。
使用以下命令登录到mariadb shell。
mysql -u root -p
Type the ROOT Password:
运行下面的mariadb查询来创建新的数据库和用户,并将数据库的所有权限授予新用户。
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的新数据库和用户已创建。
对于LibreNMS安装,我们需要在配置文件中添加一些配置。 转到“/ etc / mysql /”目录并编辑mariadb配置文件。
cd / etc / mysql /
vim mariadb.conf.d / 50-server.cnf
粘贴下面的“ [mysqld] ”部分下的配置。
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
保存并退出。
现在通过重新启动服务来应用新的配置。
systemctl restart mysql
mariadb数据库配置已经完成。
第5步 - 下载和配置LibreNMS
在这一步中,我们将配置LibreNMS安装系统。
- 添加新用户和下载LibreNMS
创建一个名为“librenms”的新系统用户,将“/ opt / librenms”定义为用户的默认主目录,并将新的“librenms”用户分配给www-data组。
运行以下命令完成所有操作。
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data
现在进入'/ opt /'目录并使用git命令下载LibreNMS源代码。
cd /opt/
git clone https://github.com/librenms/librenms.git librenms
接下来,为libreNMS日志文件和rrd文件创建一个新目录。
mkdir -p /opt/librenms/{logs,rrd}
将“rrd”目录的所有者权限更改为“775”,并将“librenms”目录的所有者更改为“librenms”用户和组。
chmod -R 775 /opt/librenms/rrd/
chown -R librenms:librenms /opt/librenms/
一个新的“librenms”已经创建,并且LibreNMS源代码已经被下载。
- 配置LibreNMS虚拟主机
转到'nginx'配置目录,用vim创建一个新的虚拟主机文件'librenms'
cd /etc/nginx/
vim sites-available/librenms
在那里粘贴以下的LibreNMS虚拟主机配置。
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:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
保存并退出。 现在,激活虚拟主机。
ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
测试nginx配置并确保没有错误。 然后重新启动服务。
nginx -t
systemctl restart nginx
- 配置UFW防火墙
添加新的端口到防火墙。 将新的ssh,http,https和snmpd 161 udp类型使用的端口添加到ufw防火墙。
运行以下ufw命令。
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 161/udp
使用ufw enable命令启动ufw防火墙,如下所示。
ufw enable
输入'y',然后按'Enter'确认。 启动并启用它在系统启动时每次启动。
如果您想查看防火墙状态,请运行“ufw status”命令。
ufw status
您将获得防火墙状态 - 活动或不活动 - 以及添加到防火墙的端口和服务列表。
第6步 - LibreNMS Web安装程序
完成上述所有步骤后,我们需要通过Web浏览器安装LibreNMS。 打开你的网络浏览器,在地址栏中输入LibreNMS域名“librenms.hakase-labs.co”,然后按Enter键。
- 检查PHP模块
您将被重定向到显示PHP模块支持检查结果的install.php页面。 确保所有状态都是绿色的,如下所示。
点击“ 下一阶段 ”继续。
- 数据库配置
用你自己的db填充所有的数据库信息。
- 数据库用户:librenms
- 数据库通行证:hakase-labs123
- 数据库名称:librenms
然后点击“ 下一阶段 ”。
- 导入MySQL数据库
等待安装程序脚本将数据库的示例导入到我们的数据库中 - 在此过程中请勿关闭浏览器选项卡。
所有数据库导入后,点击“ 转到添加用户 ”。
- 添加管理员用户
在这里,键入您的管理员用户,电子邮件和密码。
点击“ 添加用户 ”。
- 生成LibreNMS配置
点击“ 生成配置 ”按钮。
你会得到一个类似于下面所示的配置文件。
复制php配置脚本,然后回到你的ssh会话。 转到'/ opt / librenms'目录并使用vim手动创建'config.php'文件。
cd /etc/librenms/
vim config.php
粘贴配置,并将文件的所有权更改为librenms用户和组。
chown librenms:librenms config.php
返回到您的网络浏览器并点击“ 完成安装 ”按钮。
现在你到达librenms web安装程序的最后一页 - 见下面。
第7步 - 最终配置
通过网页浏览器安装完成后,我们需要做其他一些步骤。
- 配置SNMP
备份默认配置文件并将示例配置复制到“/ etc / snmp /”目录。
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.aseli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
用vim编辑新的配置。
vim /etc/snmp/snmpd.conf
将“RANDOMSTRINGGOESHERE”行替换为您自己的社区名称“hakaselabs”,如下所示。
com2sec readonly default hakaselabs
保存并退出。
接下来,我们需要下载发行版检测脚本。 使用curl下载它,然后使脚本可执行,最后重新启动snmp服务。
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd
- Crontab和Logrotate配置
转到librenms目录并复制Crontab和Logrotate的示例配置。
cd /opt/librenms/
复制配置。
cp librenms.nonroot.cron /etc/cron.d/librenms
cp misc/librenms.logrotate /etc/logrotate.d/librenms
现在重新启动cron服务并重新加载logrotate配置。
systemctl restart cron
logrotate -f /etc/logrotate.conf
- 验证配置
等待一段时间,直到cron脚本在系统上运行。 一旦完成,使用'validate.php'脚本进行验证。
转到librenms目录并运行验证脚本。
cd /opt/librenms/
./validate.php
如果你的安装是正确的,你将得到如下所示的结果。
在Ubuntu 16.04上使用Nginx Webserver进行LibreNMS安装已经完成。