准备Linux服务器
您应该已经安装了运行支持的操作系统之一的Linux服务器。确保在下面的选项卡选项中选择服务器的操作系统。选择Web服务器是您的首选,建议使用NGINX。
连接到服务器命令行,然后按照以下说明进行操作。
注意:这些说明假定您是root用户。如果你不是,前置
sudo
的shell命令(即不在的那些mysql>
提示)或暂时成为root权限与用户sudo -s
或sudo -i
。
请注意,支持的最低PHP版本是7.2.5
安装必需的软件包
dnf -y install epel-release
dnf install bash-completion cronie fping git httpd ImageMagick mariadb-server mtr net-snmp net-snmp-utils nmap php-fpm php-cli php-common php-curl php-gd php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-PyMySQL python3-redis python3-memcached python3-pip rrdtool unzip
添加librenms用户
useradd librenms -d /opt/librenms -M -r -s /usr/bin/bash
下载LibreNMS
cd /opt
git clone https://github.com/librenms/librenms.git
设定权限
chown -R librenms:librenms /opt/librenms
chmod 771 /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
安装PHP依赖项
su - librenms
./scripts/composer_wrapper.php install --no-dev
exit
设定时区
有关受支持的时区的列表,请参见http://php.net/manual/en/timezones.php。有效的示例是:“美国/纽约”,“澳大利亚/布里斯班”,“ Etc / UTC”。确保在php.ini中将date.timezone设置为您首选的时区。
vi /etc/php.ini
date.timezone = Asia/Shangha
记住还要设置系统时区。
timedatectl set-timezone Asia/Shanghai
配置MariaDB
vi /etc/my.cnf.d/mariadb-server.cnf
在该[mysqld]
部分中添加:
innodb_file_per_table=1
lower_case_table_names=0
systemctl enable mariadb
systemctl restart mariadb
mysql -u root
注意:将下面的“密码”更改为安全的密码。
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
exit
配置PHP-FPM
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf
vi /etc/php-fpm.d/librenms.conf
# Change "www" to "librenms"
[librenms]
# Change user and group to "librenms"
user = librenms
group = librenms
# Change listen to a unique name
listen = /run/php-fpm-librenms.sock
如果此服务器上没有其他PHP Web应用程序,则可以删除www.conf以节省一些资源。随时调整librenms.conf中的性能设置以满足您的需求。
配置Web服务器
创建librenms.conf:
vi /etc/httpd/conf.d/librenms.conf
添加以下配置,ServerName
根据需要进行编辑:
<VirtualHost *:80>
DocumentRoot /opt/librenms/html/
ServerName librenms.example.com
AllowEncodedSlashes NoDecode
<Directory "/opt/librenms/html/">
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
# Enable http authorization headers
<IfModule setenvif_module>
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
<FilesMatch ".+\.php$">
SetHandler "proxy:unix:/run/php-fpm-librenms.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
注意:如果这是您在此服务器上托管的唯一站点(应该为:)),则需要禁用默认站点。
rm -f /etc/httpd/conf.d/welcome.conf
systemctl enable --now httpd
systemctl enable --now php-fpm
SELinux
安装SELinux的策略工具:
dnf install policycoreutils-python-utils
配置LibreNMS所需的上下文:
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/(logs|rrd|storage)(/.*)?'
restorecon -RFvv /opt/librenms
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1
chcon -t httpd_sys_rw_content_t /opt/librenms/.env
允许fping
使用以下内容创建文件http_fping.tt。您可以在任何地方创建此文件,因为它是一次性文件。此安装过程的最后一步将在正确的位置安装模块。
module http_fping 1.0;
require {
type httpd_t;
class capability net_raw;
class rawip_socket { getopt create setopt write read };
}
#============= httpd_t ==============
allow httpd_t self:capability net_raw;
allow httpd_t self:rawip_socket { getopt create setopt write read };
然后运行这些命令
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.pp
通过执行以下命令,可能会发现其他SELinux问题。
audit2why < /var/log/audit/audit.log
允许通过防火墙访问
firewall-cmd --zone public --add-service http --add-service https
firewall-cmd --permanent --zone public --add-service http --add-service https
启用lnms命令完成
该功能使您有机会像使用普通linux命令一样,使用tab来完成lnms命令。
ln -s /opt/librenms/lnms /usr/local/bin/lnms
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
配置snmpd
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vi /etc/snmp/snmpd.conf
编辑显示的文字RANDOMSTRINGGOESHERE
并设置您自己的社区字符串。
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl enable snmpd
systemctl restart snmpd
Cron工作
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
注意:请记住,默认情况下,cron仅使用一组非常有限的环境变量。您可能需要为cron调用配置代理变量。另外,也可以在config.php中添加代理设置。config.php文件将在接下来的步骤中创建。完成librenms安装步骤后,请查看以下URL:https ://docs.librenms.org/Support/Configuration/#proxy-support
复制logrotate配置
LibreNMS保留日志/opt/librenms/logs
。随着时间的流逝,它们可能会变大并向外旋转。要轮换出旧日志,可以使用提供的logrotate配置文件:
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Web安装程序
现在转到Web安装程序,并按照屏幕上的说明进行操作。
http://librenms.example.com/install
Web安装程序可能会提示您config.php
在librenms安装位置手动创建文件,将屏幕上显示的内容复制到该文件。如果必须这样做,请记住在将屏幕内容复制到文件后在config.php上设置权限。跑:
chown librenms:librenms /opt/librenms/config.php
最后步骤
而已!您现在应该可以登录 http://librenms.example.com/。请注意,此示例中未涵盖HTTPS设置,因此默认情况下,您的LibreNMS安装不安全。除非您已配置HTTPS并采取了适当的Web服务器强化步骤,否则请不要将其暴露于公共Internet。
添加第一个设备
现在,我们建议您从WebUI中将localhost添加为第一个设备。
故障排除
如果您在安装过程中遇到问题,请运行validate.php:
sudo su - librenms
./validate.php
LibreNMS网站上列出了各种获得帮助的选项:https ://www.librenms.org/#support
接下来是什么?
现在,您已经安装了LibreNMS,我们建议您阅读其他一些文档以助您顺利进行:
闭幕
我们希望您喜欢使用LibreNMS。如果您这样做,那么如果您考虑加入我们拥有的统计信息系统,那就太好了,请参阅此页面,了解它是什么以及如何启用它。
如果您想帮助提高LibreNMS的质量,有很多方法可以帮助您。您还可以在Open Collective上支持LibreNMS。