mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 10:28:13 +00:00
Merge pull request #11762 from murrant/consolidate-install-doc
Update and Consolidate Install docs Ubuntu 20.04 and CentOS 8
This commit is contained in:
commit
db5524dc09
573
doc/Installation/Install-LibreNMS.md
Normal file
573
doc/Installation/Install-LibreNMS.md
Normal file
@ -0,0 +1,573 @@
|
||||
source: Installation/Install-LibreNMS.md
|
||||
path: blob/master/doc/
|
||||
|
||||
# Prepare Linux Server
|
||||
|
||||
You should have an installed Linux server running one of the supported OS.
|
||||
Make sure you select the correct OS in the tabbed options below each time.
|
||||
Choice of web server is your preference, NGINX is recommended.
|
||||
|
||||
Connect to the server command line and follow the instructions below.
|
||||
|
||||
> NOTE: These instructions assume you are the **root** user. If you
|
||||
> are not, prepend `sudo` to the shell commands (the ones that aren't
|
||||
> at `mysql>` prompts) or temporarily become a user with root
|
||||
> privileges with `sudo -s` or `sudo -i`.
|
||||
|
||||
**Please note the minimum supported PHP version is 7.2.5**
|
||||
|
||||
# Install Required Packages
|
||||
|
||||
=== "Ubuntu 20.04"
|
||||
=== "NGINX"
|
||||
```
|
||||
apt install software-properties-common
|
||||
add-apt-repository universe
|
||||
apt update
|
||||
apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools
|
||||
```
|
||||
|
||||
=== "Apache"
|
||||
```
|
||||
apt install software-properties-common
|
||||
add-apt-repository universe
|
||||
apt update
|
||||
apt install acl curl apache2 composer fping git graphviz imagemagick libapache2-mod-fcgid mariadb-client mariadb-server mtr-tiny nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip rrdtool snmp snmpd whois python3-pymysql python3-dotenv python3-redis python3-setuptools
|
||||
```
|
||||
|
||||
=== "CentOS 8"
|
||||
=== "NGINX"
|
||||
```
|
||||
dnf -y install epel-release
|
||||
dnf install bash-completion cronie fping git ImageMagick mariadb-server mtr net-snmp net-snmp-utils nginx 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
|
||||
```
|
||||
|
||||
=== "Apache"
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
=== "Debian 10"
|
||||
=== "NGINX"
|
||||
```
|
||||
apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring php7.3-mysql php7.3-snmp php7.3-xml php7.3-zip python3-dotenv python3-pymysql python3-redis python3-setuptools rrdtool snmp snmpd whois
|
||||
```
|
||||
|
||||
# Add librenms user
|
||||
|
||||
```
|
||||
useradd librenms -d /opt/librenms -M -r -s /usr/bin/bash
|
||||
```
|
||||
|
||||
# Download LibreNMS
|
||||
|
||||
```
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git
|
||||
```
|
||||
|
||||
# Set permissions
|
||||
|
||||
```
|
||||
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/
|
||||
```
|
||||
|
||||
# Install PHP dependencies
|
||||
|
||||
```
|
||||
su - librenms
|
||||
./scripts/composer_wrapper.php install --no-dev
|
||||
exit
|
||||
```
|
||||
|
||||
# Set timezone
|
||||
|
||||
See <http://php.net/manual/en/timezones.php> for a list of supported
|
||||
timezones. Valid examples are: "America/New_York", "Australia/Brisbane", "Etc/UTC".
|
||||
Ensure date.timezone is set in php.ini to your preferred time zone.
|
||||
|
||||
=== "Ubuntu 20.04"
|
||||
```bash
|
||||
vi /etc/php/7.4/fpm/php.ini
|
||||
vi /etc/php/7.4/cli/php.ini
|
||||
```
|
||||
|
||||
=== "Debian 10"
|
||||
```bash
|
||||
vi /etc/php/7.3/fpm/php.ini
|
||||
vi /etc/php/7.3/cli/php.ini
|
||||
```
|
||||
|
||||
=== "CentOS 8"
|
||||
```
|
||||
vi /etc/php.ini
|
||||
```
|
||||
|
||||
Remember to set the system timezone as well.
|
||||
|
||||
```
|
||||
timedatectl set-timezone Etc/UTC
|
||||
```
|
||||
|
||||
|
||||
# Configure MariaDB
|
||||
|
||||
=== "Ubuntu 20.04 / Debian 10"
|
||||
```
|
||||
vi /etc/mysql/mariadb.conf.d/50-server.cnf
|
||||
```
|
||||
|
||||
=== "CentOS 8"
|
||||
```
|
||||
vi /etc/my.cnf.d/mariadb-server.cnf
|
||||
```
|
||||
|
||||
Within the `[mysqld]` section add:
|
||||
|
||||
```bash
|
||||
innodb_file_per_table=1
|
||||
lower_case_table_names=0
|
||||
```
|
||||
|
||||
```
|
||||
systemctl enable mariadb
|
||||
systemctl restart mariadb
|
||||
```
|
||||
|
||||
```
|
||||
mysql -u root
|
||||
```
|
||||
|
||||
> NOTE: Change the 'password' below to something secure.
|
||||
|
||||
```sql
|
||||
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
|
||||
```
|
||||
|
||||
# Configure PHP-FPM
|
||||
|
||||
=== "Ubuntu 20.04"
|
||||
```bash
|
||||
cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf
|
||||
vi /etc/php/7.4/fpm/pool.d/librenms.conf
|
||||
```
|
||||
|
||||
=== "Debian 10"
|
||||
```bash
|
||||
cp /etc/php/7.3/fpm/pool.d/www.conf /etc/php/7.3/fpm/pool.d/librenms.conf
|
||||
vi /etc/php/7.3/fpm/pool.d/librenms.conf
|
||||
```
|
||||
|
||||
=== "CentOS 8"
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
If there are no other PHP web applications on this server, you may remove www.conf to save some resources.
|
||||
Feel free to tune the performance settings in librenms.conf to meet your needs.
|
||||
|
||||
# Configure Web Server
|
||||
|
||||
=== "Ubuntu 20.04"
|
||||
=== "NGINX"
|
||||
```bash
|
||||
vi /etc/nginx/conf.d/librenms.conf
|
||||
```
|
||||
|
||||
Add the following config, edit `server_name` as required:
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name librenms.example.com;
|
||||
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 ~ [^/]\.php(/|$) {
|
||||
fastcgi_pass unix:/run/php-fpm-librenms.sock;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
include fastcgi.conf;
|
||||
}
|
||||
location ~ /\.(?!well-known).* {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
systemctl restart nginx
|
||||
systemctl restart php7.4-fpm
|
||||
```
|
||||
|
||||
=== "Apache"
|
||||
```bash
|
||||
vi /etc/apache2/sites-available/librenms.conf
|
||||
```
|
||||
|
||||
Add the following config, edit `ServerName` as required:
|
||||
|
||||
```apache
|
||||
<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>
|
||||
```
|
||||
|
||||
```bash
|
||||
a2dissite 000-default
|
||||
a2enmod proxy_fcgi setenvif rewrite
|
||||
a2ensite librenms.conf
|
||||
systemctl restart apache2
|
||||
systemctl restart php7.4-fpm
|
||||
```
|
||||
|
||||
=== "Debian 10"
|
||||
=== "NGINX"
|
||||
```bash
|
||||
vi /etc/nginx/sites-enabled/librenms.vhost
|
||||
```
|
||||
|
||||
Add the following config, edit `server_name` as required:
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name librenms.example.com;
|
||||
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 ~ [^/]\.php(/|$) {
|
||||
fastcgi_pass unix:/run/php-fpm-librenms.sock;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
include fastcgi.conf;
|
||||
}
|
||||
location ~ /\.(?!well-known).* {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
systemctl reload nginx
|
||||
systemctl restart php7.3-fpm
|
||||
```
|
||||
|
||||
|
||||
=== "CentOS 8"
|
||||
=== "NGINX"
|
||||
```
|
||||
vi /etc/nginx/conf.d/librenms.conf
|
||||
```
|
||||
|
||||
Add the following config, edit `server_name` as required:
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name librenms.example.com;
|
||||
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 ~ [^/]\.php(/|$) {
|
||||
fastcgi_pass unix:/run/php-fpm-librenms.sock;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
include fastcgi.conf;
|
||||
}
|
||||
location ~ /\.(?!well-known).* {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> NOTE: If this is the only site you are hosting on this server (it
|
||||
> should be :)) then you will need to disable the default site.
|
||||
|
||||
Delete the `server` section from `/etc/nginx/nginx.conf`
|
||||
|
||||
```
|
||||
systemctl enable --now nginx
|
||||
systemctl enable --now php-fpm
|
||||
```
|
||||
|
||||
=== "Apache"
|
||||
Create the librenms.conf:
|
||||
|
||||
```
|
||||
vi /etc/httpd/conf.d/librenms.conf
|
||||
```
|
||||
|
||||
Add the following config, edit `ServerName` as required:
|
||||
|
||||
```apache
|
||||
<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>
|
||||
```
|
||||
|
||||
> NOTE: If this is the only site you are hosting on this server (it
|
||||
> should be :)) then you will need to disable the default site. `rm -f /etc/httpd/conf.d/welcome.conf`
|
||||
|
||||
```
|
||||
systemctl enable --now httpd
|
||||
systemctl enable --now php-fpm
|
||||
```
|
||||
|
||||
# SELinux
|
||||
|
||||
=== "Ubuntu 20.04 / Debian 10"
|
||||
SELinux not enabled by default
|
||||
|
||||
=== "CentOS 8"
|
||||
Install the policy tool for SELinux:
|
||||
|
||||
```
|
||||
dnf install policycoreutils-python-utils
|
||||
```
|
||||
|
||||
## Configure the contexts needed by 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
|
||||
```
|
||||
|
||||
# Allow fping
|
||||
|
||||
Create the file http_fping.tt with the following contents. You can
|
||||
create this file anywhere, as it is a throw-away file. The last step
|
||||
in this install procedure will install the module in the proper
|
||||
location.
|
||||
|
||||
```
|
||||
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 };
|
||||
```
|
||||
|
||||
Then run these commands
|
||||
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
Additional SELinux problems may be found by executing the following command
|
||||
|
||||
```
|
||||
audit2why < /var/log/audit/audit.log
|
||||
```
|
||||
|
||||
# Allow access through firewall
|
||||
|
||||
=== "Ubuntu 20.04 / Debian 10"
|
||||
Firewall not enabled by default
|
||||
|
||||
=== "CentOS 8"
|
||||
|
||||
```
|
||||
firewall-cmd --zone public --add-service http --add-service https
|
||||
firewall-cmd --permanent --zone public --add-service http --add-service https
|
||||
```
|
||||
|
||||
# Enable lnms command completion
|
||||
|
||||
This feature grants you the opportunity to use tab for completion on lnms commands as you would
|
||||
for normal linux commands.
|
||||
|
||||
```
|
||||
ln -s /opt/librenms/lnms /usr/local/bin/lnms
|
||||
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
|
||||
```
|
||||
|
||||
# Configure snmpd
|
||||
|
||||
```
|
||||
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
|
||||
```
|
||||
|
||||
```
|
||||
vi /etc/snmp/snmpd.conf
|
||||
```
|
||||
|
||||
Edit the text which says `RANDOMSTRINGGOESHERE` and set your own community string.
|
||||
|
||||
```
|
||||
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 job
|
||||
|
||||
```
|
||||
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
|
||||
```
|
||||
|
||||
> NOTE: Keep in mind that cron, by default, only uses a very limited
|
||||
> set of environment variables. You may need to configure proxy
|
||||
> variables for the cron invocation. Alternatively adding the proxy
|
||||
> settings in config.php is possible too. The config.php file will be
|
||||
> created in the upcoming steps. Review the following URL after you
|
||||
> finished librenms install steps:
|
||||
> <https://docs.librenms.org/Support/Configuration/#proxy-support>
|
||||
|
||||
# Copy logrotate config
|
||||
|
||||
LibreNMS keeps logs in `/opt/librenms/logs`. Over time these can
|
||||
become large and be rotated out. To rotate out the old logs you can
|
||||
use the provided logrotate config file:
|
||||
|
||||
```
|
||||
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
|
||||
```
|
||||
|
||||
# Web installer
|
||||
|
||||
Now head to the web installer and follow the on-screen instructions.
|
||||
|
||||
<http://librenms.example.com/install>
|
||||
|
||||
The web installer might prompt you to create a `config.php` file in
|
||||
your librenms install location manually, copying the content displayed
|
||||
on-screen to the file. If you have to do this, please remember to set
|
||||
the permissions on config.php after you copied the on-screen contents
|
||||
to the file. Run:
|
||||
|
||||
```
|
||||
chown librenms:librenms /opt/librenms/config.php
|
||||
```
|
||||
|
||||
# Final steps
|
||||
|
||||
That's it! You now should be able to log in to
|
||||
<http://librenms.example.com/>. Please note that we have not covered
|
||||
HTTPS setup in this example, so your LibreNMS install is not secure
|
||||
by default. Please do not expose it to the public Internet unless
|
||||
you have configured HTTPS and taken appropriate web server hardening
|
||||
steps.
|
||||
|
||||
# Add the first device
|
||||
|
||||
We now suggest that you add localhost as your first device from within the WebUI.
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
If you ever have issues with your install, run validate.php:
|
||||
|
||||
```
|
||||
sudo su - librenms
|
||||
./validate.php
|
||||
```
|
||||
|
||||
There are various options for getting help listed on the LibreNMS web
|
||||
site: <https://www.librenms.org/#support>
|
||||
|
||||
# What next?
|
||||
|
||||
Now that you've installed LibreNMS, we'd suggest that you have a read
|
||||
of a few other docs to get you going:
|
||||
|
||||
- [Performance tuning](http://docs.librenms.org/Support/Performance)
|
||||
- [Alerting](http://docs.librenms.org/Extensions/Alerting/)
|
||||
- [Device Groups](http://docs.librenms.org/Extensions/Device-Groups/)
|
||||
- [Auto discovery](http://docs.librenms.org/Extensions/Auto-Discovery/)
|
||||
|
||||
# Closing
|
||||
|
||||
We hope you enjoy using LibreNMS. If you do, it would be great if you
|
||||
would consider opting into the stats system we have, please see [this
|
||||
page](http://docs.librenms.org/General/Callback-Stats-and-Privacy/) on
|
||||
what it is and how to enable it.
|
||||
|
||||
If you would like to help make LibreNMS better there are [many ways to
|
||||
help](http://docs.librenms.org/Support/FAQ/#what-can-i-do-to-help). You
|
||||
can also [back LibreNMS on Open
|
||||
Collective](https://t.libren.ms/donations).
|
@ -1,3 +0,0 @@
|
||||
source: Installation/Installation-(Debian-Ubuntu).md
|
||||
path: blob/master/doc/
|
||||
<meta http-equiv="refresh" content="0; url=/Installation/Installation-Ubuntu-1604-Apache/" />
|
@ -1,3 +0,0 @@
|
||||
source: Installation/Installation-(RHEL-CentOS).md
|
||||
path: blob/master/doc/
|
||||
<meta http-equiv="refresh" content="0; url=/Installation/Installation-CentOS-7-Apache/" />
|
@ -1,373 +0,0 @@
|
||||
source: Installation/Installation-Ubuntu-1404-Apache.md
|
||||
path: blob/master/doc/
|
||||
|
||||
> NOTE: These instructions assume you are the **root** user. If you
|
||||
> are not, prepend `sudo` to the shell commands (the ones that aren't
|
||||
> at `mysql>` prompts) or temporarily become a user with root
|
||||
> privileges with `sudo -s` or `sudo -i`.
|
||||
|
||||
**Please note the minimum supported PHP version is 5.6.4**
|
||||
|
||||
# On the DB Server
|
||||
|
||||
This host is where the MySQL database runs. It could be the same
|
||||
machine as your network management server (this is the most common
|
||||
initial deployment scenario).
|
||||
|
||||
> ** Whilst we are working on ensuring LibreNMS is compatible with
|
||||
> MySQL strict mode, for now, please disable this after mysql is
|
||||
> installed.
|
||||
|
||||
You are free to choose between using MySQL or MariaDB:
|
||||
|
||||
## MySQL
|
||||
|
||||
```bash
|
||||
apt-get install mysql-server mysql-client
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
## MariaDB
|
||||
|
||||
```bash
|
||||
apt-get install mariadb-server mariadb-client
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
## General
|
||||
|
||||
Input the MySQL root password to enter the MySQL command-line interface.
|
||||
|
||||
Create the database:
|
||||
|
||||
```sql
|
||||
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
|
||||
```
|
||||
|
||||
Replace `<ip>` above with the IP or DNS name of the server running
|
||||
LibreNMS. If your database is on the same server as LibreNMS, you can
|
||||
use `localhost`.
|
||||
|
||||
If you are deploying a separate database server, you need to change
|
||||
the `bind-address`. If your MySQL database resides on the same server
|
||||
as LibreNMS, you should skip this step.
|
||||
|
||||
```bash
|
||||
vim /etc/mysql/my.cnf
|
||||
```
|
||||
|
||||
Within the [mysqld] section please add:
|
||||
|
||||
```mysql
|
||||
innodb_file_per_table=1
|
||||
```
|
||||
|
||||
Find the line: `bind-address = 127.0.0.1`
|
||||
|
||||
Change `127.0.0.1` to the IP address that your MySQL server should
|
||||
listen on. Restart MySQL:
|
||||
|
||||
If you see a line that starts `sql-mode` then change this to `sql-mode=""`.
|
||||
|
||||
```bash
|
||||
service mysql restart
|
||||
```
|
||||
|
||||
# On the NMS
|
||||
|
||||
This host is where the web server and SNMP poller run. It could be
|
||||
the same machine as your database server.
|
||||
|
||||
Install the required software:
|
||||
|
||||
```bash
|
||||
apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp php-pear php5-curl snmp graphviz php5-mcrypt php5-json apache2 fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd php-net-ipv4 php-net-ipv6 rrdtool git
|
||||
```
|
||||
|
||||
The packages listed above are an all-inclusive list of packages that
|
||||
were necessary on a clean install of Ubuntu 12.04/14.04.
|
||||
|
||||
You need to configure snmpd appropriately if you have not already done
|
||||
so. An absolute minimal config for snmpd is:
|
||||
|
||||
```
|
||||
rocommunity public 127.0.0.1
|
||||
```
|
||||
|
||||
Adding the above line to `/etc/snmp/snmpd.conf` and running `service
|
||||
snmpd restart` will activate this config.
|
||||
|
||||
In `/etc/php5/apache2/php.ini` and `/etc/php5/cli/php.ini`, ensure
|
||||
date.timezone is set to your preferred time zone. See
|
||||
<http://php.net/manual/en/timezones.php> for a list of
|
||||
supported timezones. Valid examples are: "America/New York",
|
||||
"Australia/Brisbane", "Etc/UTC".
|
||||
|
||||
Please also ensure that `allow_url_fopen` is enabled. Other functions
|
||||
needed for LibreNMS include
|
||||
`exec,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,popen`.
|
||||
|
||||
# Adding the librenms-user
|
||||
|
||||
```bash
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms www-data
|
||||
```
|
||||
|
||||
# Cloning
|
||||
|
||||
LibreNMS is installed using git. If you're not familiar with git,
|
||||
check out the [git book][2] or the tips at [git ready][3]. The
|
||||
initial install from github.com is called a `git clone`; subsequent
|
||||
updates are done through `git pull`.
|
||||
|
||||
You can clone the repository via HTTPS or SSH. In either case, you
|
||||
need to ensure that the appropriate port (443 for HTTPS, 22 for SSH)
|
||||
is open in the outbound direction for your server.
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git librenms
|
||||
cd /opt/librenms
|
||||
```
|
||||
|
||||
The recommended method of cloning a git repository is HTTPS. If you
|
||||
would like to clone via SSH instead, use the command `git clone
|
||||
git@github.com:librenms/librenms.git librenms` instead.
|
||||
|
||||
Sometimes the initial clone can take quite a while (nearly 3 minutes
|
||||
on a 10 Mbps fibre connection in Australia is a recent example). If
|
||||
it's a big problem to you, you can save about 50% of the bandwidth by
|
||||
not pulling down the full git history. This comes with some
|
||||
limitations (namely that you can't use it as the basis for further git
|
||||
repos), but if you're not planning to develop for LibreNMS it's an
|
||||
acceptable option. To perform the initial clone without full history,
|
||||
run the following instead:
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
git clone --depth 1 https://github.com/librenms/librenms.git librenms
|
||||
cd /opt/librenms
|
||||
```
|
||||
|
||||
# Web Interface
|
||||
|
||||
To prepare the web interface (and adding devices shortly), you'll need
|
||||
to create and chown a directory as well as create an Apache vhost.
|
||||
|
||||
First, create and chown the `rrd` directory and create the `logs` directory:
|
||||
|
||||
```bash
|
||||
mkdir rrd logs
|
||||
chown -R librenms:librenms /opt/librenms
|
||||
chmod 775 rrd
|
||||
```
|
||||
|
||||
> NOTE: If you're not running Ubuntu or Debian, you will need to
|
||||
> change `www-data` to the user and group which run the Apache web
|
||||
> server.
|
||||
> If you're planing on running rrdcached, make sure that the path is
|
||||
> also chmod'ed to 775 and chown'ed to librenms:librenms.
|
||||
|
||||
Next, add the following to `/etc/apache2/sites-available/librenms.conf`:
|
||||
|
||||
```apache
|
||||
<VirtualHost *:80>
|
||||
DocumentRoot /opt/librenms/html/
|
||||
ServerName librenms.example.com
|
||||
CustomLog /opt/librenms/logs/access_log combined
|
||||
ErrorLog /opt/librenms/logs/error_log
|
||||
AllowEncodedSlashes On
|
||||
<Directory "/opt/librenms/html/">
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
If you are running Apache 2.2.18 or higher then change
|
||||
`AllowEncodedSlashes On` to `AllowEncodedSlashes NoDecode`
|
||||
|
||||
If you have Apache 2.3 or newer then please add the following line
|
||||
before `AllowOverride All`:
|
||||
|
||||
```apache
|
||||
Require all granted
|
||||
```
|
||||
|
||||
On at least Ubuntu 14.04 (and possibly other distributions and
|
||||
versions as well), mcrypt is not enabled on install. Run the
|
||||
following to enable it:
|
||||
|
||||
```bash
|
||||
php5enmod mcrypt
|
||||
```
|
||||
|
||||
Change `librenms.example.com` to the appropriate hostname for your
|
||||
domain, then enable the vhost and restart Apache:
|
||||
|
||||
```bash
|
||||
a2ensite librenms.conf
|
||||
a2enmod rewrite
|
||||
service apache2 restart
|
||||
```
|
||||
|
||||
If this is the only site you are hosting on this server (it should be
|
||||
:)) then you will need to disable the default site setup in Ubuntu:
|
||||
|
||||
```bash
|
||||
a2dissite 000-default
|
||||
```
|
||||
|
||||
(To get to your LibreNMS install externally, you'll also need add it
|
||||
to your DNS or hosts file.)
|
||||
|
||||
# Manual vs. web installer
|
||||
|
||||
At this stage you can either launch the web installer by going to
|
||||
<http://librenms.example.com/install.php>, follow the onscreen
|
||||
instructions then skip to the 'Add localhost' section. Alternatively
|
||||
if you want to continue the setup manually then just keep following
|
||||
these instructions.
|
||||
|
||||
```bash
|
||||
cp config.php.default config.php
|
||||
vim config.php
|
||||
```
|
||||
|
||||
Change the values to the right of the equal sign for lines beginning
|
||||
with `$config[db_]` to match your database information as setup above.
|
||||
|
||||
Change the value of `$config['snmp']['community']` from `public` to
|
||||
whatever your read-only SNMP community is. If you have multiple
|
||||
communities, set it to the most common.
|
||||
|
||||
** Be sure you have no characters (including whitespace like:
|
||||
newlines, spaces, tabs, etc) outside of the `<?php?>` blocks. Your
|
||||
graphs will break otherwise. **
|
||||
|
||||
# Initialise the database
|
||||
|
||||
Initiate the follow database with the following command:
|
||||
|
||||
```bash
|
||||
php build-base.php
|
||||
```
|
||||
|
||||
# Create admin user
|
||||
|
||||
Create the admin user - priv should be 10
|
||||
|
||||
```bash
|
||||
php adduser.php <name> <pass> 10 <email>
|
||||
```
|
||||
|
||||
Substitute your desired username, password and email address--and
|
||||
leave the angled brackets off.
|
||||
|
||||
# Validate your install
|
||||
|
||||
Run validate.php as root in the librenms directory
|
||||
|
||||
```bash
|
||||
php validate.php
|
||||
```
|
||||
|
||||
This will check your install to verify it is set up correctly.
|
||||
|
||||
# Add localhost
|
||||
|
||||
```bash
|
||||
php addhost.php localhost public v2c
|
||||
```
|
||||
|
||||
This assumes you haven't made community changes--if you have, replace
|
||||
`public` with your community. It also assumes SNMP v2c. If you're
|
||||
using v3, there are additional steps (NOTE: instructions for SNMPv3 to
|
||||
come).
|
||||
|
||||
Discover localhost::
|
||||
|
||||
```bash
|
||||
php discovery.php -h all
|
||||
```
|
||||
|
||||
# Create cronjob
|
||||
|
||||
LibreNMS uses Job Snijders' [poller-wrapper.py][1]. By default, the
|
||||
cron job runs `poller-wrapper.py` with 16 threads. The current
|
||||
recommendation is to use 4 threads per core as a rule of thumb. If
|
||||
the thread count needs to be changed, you can do so by editing the
|
||||
cron file (`/etc/cron.d/librenms`). Just add a number after
|
||||
`poller-wrapper.py`, as in the example below:
|
||||
|
||||
```bash
|
||||
/opt/librenms/poller-wrapper.py 12 >> /dev/null 2>&1
|
||||
```
|
||||
|
||||
Create the cronjob
|
||||
|
||||
```bash
|
||||
cp librenms.nonroot.cron /etc/cron.d/librenms
|
||||
```
|
||||
|
||||
> NOTE: Keep in mind that cron, by default, only uses a very limited
|
||||
> set of environment variables. You may need to configure proxy
|
||||
> variables for the cron invocation. Alternatively adding the proxy
|
||||
> settings in config.php is possible too. The config.php file will be
|
||||
> created in the upcoming steps. Review the following URL after you
|
||||
> finished librenms install steps:
|
||||
> <https://docs.librenms.org/Support/Configuration/#proxy-support>
|
||||
|
||||
# Copy logrotate config
|
||||
|
||||
LibreNMS keeps logs in `/opt/librenms/logs`. Over time these can
|
||||
become large and be rotated out. To rotate out the old logs you can
|
||||
use the provided logrotate config file:
|
||||
|
||||
```bash
|
||||
cp misc/librenms.logrotate /etc/logrotate.d/librenms
|
||||
```
|
||||
|
||||
# Daily Updates
|
||||
|
||||
LibreNMS performs daily updates by default. At 00:15 system time
|
||||
every day, a `git pull --no-edit --quiet` is performed. You can
|
||||
override this default by editing your `config.php` file. Remove the
|
||||
comment (the `#` mark) on the line:
|
||||
|
||||
```php
|
||||
#$config['update'] = 0;
|
||||
```
|
||||
|
||||
so that it looks like this:
|
||||
|
||||
```php
|
||||
$config['update'] = 0;
|
||||
```
|
||||
|
||||
Install complete
|
||||
|
||||
Please allow for 2-3 runs of the poller-wrapper for data to start
|
||||
appearing in the WebUI. If you don't see data after this, please refer
|
||||
to the [FAQ](http://docs.librenms.org/Support/FAQ/) for assistance.
|
||||
|
||||
That's it! You now should be able to log in to
|
||||
<http://librenms.example.com/>. Please note that we have not covered
|
||||
HTTPS setup in this example, so your LibreNMS install is not secure by
|
||||
default. Please do not expose it to the public Internet unless you
|
||||
have configured HTTPS and taken appropriate web server hardening
|
||||
steps.
|
||||
|
||||
It would be great if you would consider opting into the stats system
|
||||
we have, please see [this
|
||||
page](http://docs.librenms.org/General/Callback-Stats-and-Privacy/) on
|
||||
what it is and how to enable it.
|
||||
|
||||
[1]: https://github.com/Atrato/observium-poller-wrapper
|
||||
[2]: http://git-scm.com/book
|
||||
[3]: http://gitready.com/
|
@ -1,329 +0,0 @@
|
||||
source: Installation/Installation-Ubuntu-1404-Lighttpd.md
|
||||
|
||||
path: blob/master/doc/
|
||||
> NOTE: These instructions assume you are the **root** user. If you
|
||||
are not, prepend `sudo` to the shell commands (the ones that aren't at
|
||||
`mysql>` prompts) or temporarily become a user with root privileges
|
||||
with `sudo -s` or `sudo -i`.
|
||||
|
||||
**Please note the minimum supported PHP version is 5.6.4**
|
||||
|
||||
# On the DB Server
|
||||
|
||||
This host is where the MySQL database runs. It could be the same
|
||||
machine as your network management server (this is the most common
|
||||
initial deployment scenario).
|
||||
|
||||
> ** Whilst we are working on ensuring LibreNMS is compatible with
|
||||
> MySQL strict mode, for now, please disable this after mysql is
|
||||
> installed.
|
||||
|
||||
You are free to choose between using MySQL or MariaDB:
|
||||
|
||||
## MySQL
|
||||
|
||||
```bash
|
||||
apt-get install mysql-server mysql-client
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
## MariaDN
|
||||
|
||||
```bash
|
||||
apt-get install mariadb-server mariadb-client
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
## General
|
||||
|
||||
Enter the MySQL root password to enter the MySQL command-line interface.
|
||||
|
||||
Create database.
|
||||
|
||||
```sql
|
||||
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
|
||||
```
|
||||
|
||||
Replace `<ip>` above with the IP of the server running LibreNMS. If
|
||||
your database is on the same server as LibreNMS, you can just use
|
||||
`localhost` as the IP address.
|
||||
|
||||
If you are deploying a separate database server, you need to change
|
||||
the `bind-address`. If your MySQL database resides on the same server
|
||||
as LibreNMS, you should skip this step.
|
||||
|
||||
```
|
||||
vim /etc/mysql/my.cnf
|
||||
```
|
||||
|
||||
Within the [mysqld] section please add:
|
||||
|
||||
```
|
||||
innodb_file_per_table=1
|
||||
```
|
||||
|
||||
Find the line: `bind-address = 127.0.0.1`
|
||||
|
||||
Change `127.0.0.1` to the IP address that your MySQL server should
|
||||
listen on. Restart MySQL:
|
||||
|
||||
If you see a line that starts `sql-mode` then change this to `sql-mode=""`.
|
||||
|
||||
```
|
||||
service mysql restart
|
||||
```
|
||||
|
||||
# On the NMS
|
||||
|
||||
Install necessary software. The packages listed below are an
|
||||
all-inclusive list of packages that were necessary on a clean install
|
||||
of Debian 7.
|
||||
|
||||
```
|
||||
apt-get install lighttpd php5-cli php5-mysql php5-gd php5-snmp php5-cgi php-pear php5-curl snmp graphviz rrdtool sendmail fping imagemagick whois mtr-tiny nmap ipmitool php5-mcrypt php5-json python-mysqldb snmpd php-net-ipv4 php-net-ipv6 rrdtool git
|
||||
```
|
||||
|
||||
# Adding the librenms-user
|
||||
|
||||
```
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms www-data
|
||||
```
|
||||
|
||||
# Cloning
|
||||
|
||||
You can clone the repository via HTTPS or SSH. In either case, you
|
||||
need to ensure the appropriate port (443 for HTTPS, 22 for SSH) is
|
||||
open in the outbound direction for your server.
|
||||
|
||||
```
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git librenms
|
||||
cd /opt/librenms
|
||||
```
|
||||
|
||||
At this stage you can either launch the web installer by going to
|
||||
<http://IP/install.php>, follow the onscreen instructions then skip to
|
||||
the 'Web Interface' section further down. Alternatively if you want to
|
||||
continue the setup manually then just keep following these
|
||||
instructions.
|
||||
|
||||
```
|
||||
cp config.php.default config.php
|
||||
vim config.php
|
||||
```
|
||||
|
||||
> NOTE: The recommended method of cloning a git repository is HTTPS.
|
||||
> If you would like to clone via SSH instead, use the command `git
|
||||
> clone git@github.com:librenms/librenms.git librenms` instead.
|
||||
|
||||
Change the values to the right of the equal sign for lines beginning
|
||||
with `$config[db_]` to match your database information as setup above.
|
||||
|
||||
Change the value of `$config['snmp']['community']` from `public` to
|
||||
whatever your read-only SNMP community is. If you have multiple
|
||||
communities, set it to the most common.
|
||||
|
||||
** Be sure you have no characters (including whitespace like:
|
||||
newlines, spaces, tabs, etc) outside of the `<?php?>` blocks. Your
|
||||
graphs will break otherwise. **
|
||||
|
||||
# Initialise the database
|
||||
|
||||
Initiate the follow database with the following command:
|
||||
|
||||
```
|
||||
php build-base.php
|
||||
```
|
||||
|
||||
# Create admin user
|
||||
|
||||
Create the admin user - priv should be 10
|
||||
|
||||
```
|
||||
php adduser.php <name> <pass> 10 <email>
|
||||
```
|
||||
|
||||
Substitute your desired username, password and email address--and
|
||||
leave the angled brackets off.
|
||||
|
||||
# Web Interface
|
||||
|
||||
To prepare the web interface (and adding devices shortly), you'll need
|
||||
to set up Lighttpd.
|
||||
|
||||
First, create and chown the `rrd` directory and create the `logs` directory
|
||||
|
||||
```
|
||||
mkdir rrd logs
|
||||
chown -R librenms:librenms /opt/librenms
|
||||
chmod 775 rrd
|
||||
```
|
||||
|
||||
> NOTE: If you're planing on running rrdcached, make sure that the
|
||||
> path is also chmod'ed to 775 and chown'ed to librenms:librenms.
|
||||
|
||||
Next, add the following to `/etc/lighttpd/librenms.conf`
|
||||
|
||||
```
|
||||
server.document-root = "/opt/librenms/html"
|
||||
url.rewrite-once = (
|
||||
"^/(.*)\.(gif|jpg|jpeg|tiff|svg|png|css|php)$" => "/$0",
|
||||
"^/([a-z|0-9\-]+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/" => "/?page=$1&$2&$3&$4&$5&$6&$7&$8&$9&$10",
|
||||
"^/([a-z|0-9\-]+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/" => "/?page=$1&$2&$3&$4&$5&$6&$7&$8&$9",
|
||||
"^/([a-z|0-9\-]+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/" => "/?page=$1&$2&$3&$4&$5&$6&$7&$8",
|
||||
"^/([a-z|0-9\-]+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/" => "/?page=$1&$2&$3&$4&$5&$6&$7",
|
||||
"^/([a-z|0-9\-]+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/" => "/?page=$1&$2&$3&$4&$5&$6",
|
||||
"^/([a-z|0-9\-]+)/(.+)/(.+)/(.+)/(.+)/" => "/?page=$1&$2&$3&$4&$5",
|
||||
"^/([a-z|0-9\-]+)/(.+)/(.+)/(.+)/" => "/?page=$1&$2&$3&$4",
|
||||
"^/([a-z|0-9\-]+)/(.+)/(.+)/" => "/?page=$1&$2&$3",
|
||||
"^/([a-z|0-9\-]+)/(.+)/" => "/?page=$1&$2",
|
||||
"^/([a-z|0-9\-]+)/$" => "/?page=$1"
|
||||
)
|
||||
```
|
||||
|
||||
Next, add the following to `/etc/lighttpd/lighttpd.conf`
|
||||
|
||||
```
|
||||
$HTTP["host"] == "example.com" { include "librenms.conf" }
|
||||
```
|
||||
|
||||
And enable mod_rewrite by uncommenting
|
||||
|
||||
```
|
||||
# "mod_rewrite",
|
||||
```
|
||||
|
||||
to
|
||||
|
||||
```
|
||||
"mod_rewrite",
|
||||
```
|
||||
|
||||
Don't forget to change 'example.com' to your domain
|
||||
|
||||
Enable fastcgi in Lighttpd by running the following commands,
|
||||
|
||||
```
|
||||
lighty-enable-mod fastcgi
|
||||
lighty-enable-mod fastcgi-php
|
||||
```
|
||||
|
||||
And add the following to /etc/php5/cgi/php.ini
|
||||
|
||||
```
|
||||
cgi.fix_pathinfo = 1
|
||||
```
|
||||
|
||||
then restart Lighttpd:
|
||||
|
||||
```
|
||||
service lighttpd restart
|
||||
```
|
||||
|
||||
# Validate your install
|
||||
|
||||
Run validate.php as root in the librenms directory
|
||||
|
||||
```
|
||||
php validate.php
|
||||
```
|
||||
|
||||
This will check your install to verify it is set up correctly.
|
||||
|
||||
# Add localhost
|
||||
|
||||
```
|
||||
php addhost.php localhost public v2c
|
||||
```
|
||||
|
||||
This assumes you haven't made community changes--if you have, replace
|
||||
`public` with your community. It also assumes SNMP v2c. If you're
|
||||
using v3, there are additional steps (NOTE: instructions for SNMPv3 to
|
||||
come).
|
||||
|
||||
Discover localhost:
|
||||
|
||||
```
|
||||
php discovery.php -h all
|
||||
```
|
||||
|
||||
# Create cronjob
|
||||
|
||||
The polling method used by LibreNMS is `poller-wrapper.py`, which was
|
||||
placed in the public domain by its author. By default, the LibreNMS
|
||||
cronjob runs `poller-wrapper.py` with 16 threads. The current
|
||||
LibreNMS recommendation is to use 4 threads per core. The default if
|
||||
no thread count is `16 threads`.
|
||||
|
||||
If the thread count needs to be changed, you can do so by editing the
|
||||
cron file (`/etc/cron.d/librenms`). Just add a number after
|
||||
`poller-wrapper.py`, as in the below example:
|
||||
|
||||
```
|
||||
/opt/librenms/poller-wrapper.py 12 >> /dev/null 2>&1
|
||||
```
|
||||
|
||||
Create the cronjob
|
||||
|
||||
```
|
||||
cp librenms.nonroot.cron /etc/cron.d/librenms
|
||||
```
|
||||
|
||||
> NOTE: Keep in mind that cron, by default, only uses a very limited
|
||||
> set of environment variables. You may need to configure proxy
|
||||
> variables for the cron invocation. Alternatively adding the proxy
|
||||
> settings in config.php is possible too. The config.php file will be
|
||||
> created in the upcoming steps. Review the following URL after you
|
||||
> finished librenms install steps:
|
||||
> <https://docs.librenms.org/Support/Configuration/#proxy-support>
|
||||
|
||||
# Copy logrotate config
|
||||
|
||||
LibreNMS keeps logs in `/opt/librenms/logs`. Over time these can
|
||||
become large and be rotated out. To rotate out the old logs you can
|
||||
use the provided logrotate config file:
|
||||
|
||||
```
|
||||
cp misc/librenms.logrotate /etc/logrotate.d/librenms
|
||||
```
|
||||
|
||||
# Daily Updates
|
||||
|
||||
LibreNMS performs daily updates by default. At 00:15 system time
|
||||
every day, a `git pull --no-edit --quiet` is performed. You can
|
||||
override this default by editing your `config.php` file. Remove the
|
||||
comment (the `#` mark) on the line:
|
||||
|
||||
```
|
||||
#$config['update'] = 0;
|
||||
```
|
||||
|
||||
so that it looks like this:
|
||||
|
||||
```
|
||||
$config['update'] = 0;
|
||||
```
|
||||
|
||||
# Install complete
|
||||
|
||||
Please allow for 2-3 runs of the poller-wrapper for data to start
|
||||
appearing in the WebUI. If you don't see data after this, please refer
|
||||
to the [FAQ](http://docs.librenms.org/Support/FAQ/) for assistance.
|
||||
|
||||
That's it! You now should be able to log in to
|
||||
<http://librenms.example.com/>. Please note that we have not covered
|
||||
HTTPS setup in this example, so your LibreNMS install is not secure by
|
||||
default. Please do not expose it to the public Internet unless you
|
||||
have configured HTTPS and taken appropriate web server hardening
|
||||
steps.
|
||||
|
||||
It would be great if you would consider opting into the stats system
|
||||
we have, please see [this
|
||||
page](http://docs.librenms.org/General/Callback-Stats-and-Privacy/) on
|
||||
what it is and how to enable it.
|
||||
|
@ -1,372 +0,0 @@
|
||||
source: Installation/Installation-Ubuntu-1404-Nginx.md
|
||||
path: blob/master/doc/
|
||||
|
||||
> NOTE: These instructions assume you are the **root** user. If you
|
||||
> are not, prepend `sudo` to the shell commands (the ones that aren't
|
||||
> at `mysql>` prompts) or temporarily become a user with root
|
||||
> privileges with `sudo -s` or `sudo -i`.
|
||||
|
||||
**Please note the minimum supported PHP version is 5.6.4**
|
||||
|
||||
# On the DB Server
|
||||
|
||||
This host is where the MySQL database runs. It could be the same
|
||||
machine as your network management server (this is the most common
|
||||
initial deployment scenario).
|
||||
|
||||
> ** Whilst we are working on ensuring LibreNMS is compatible with
|
||||
> MySQL strict mode, for now, please disable this after mysql is
|
||||
> installed.
|
||||
|
||||
You are free to choose between using MySQL or MariaDB:
|
||||
|
||||
## MySQL
|
||||
|
||||
```bash
|
||||
apt-get install mysql-server mysql-client
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
## MariaDB
|
||||
|
||||
```bash
|
||||
apt-get install mariadb-server mariadb-client
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
Input the MySQL root password to enter the MySQL command-line interface.
|
||||
|
||||
Create the database:
|
||||
|
||||
```sql
|
||||
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
|
||||
```
|
||||
|
||||
Replace `<ip>` above with the IP or DNS name of the server running
|
||||
LibreNMS. If your database is on the same server as LibreNMS, you can
|
||||
use `localhost`.
|
||||
|
||||
If you are deploying a separate database server, you need to change
|
||||
the `bind-address`. If your MySQL database resides on the same server
|
||||
as LibreNMS, you should skip this step.
|
||||
|
||||
```bash
|
||||
vim /etc/mysql/my.cnf
|
||||
```
|
||||
|
||||
Within the [mysqld] section please add:
|
||||
|
||||
```mysql
|
||||
innodb_file_per_table=1
|
||||
```
|
||||
|
||||
Find the line: `bind-address = 127.0.0.1`
|
||||
|
||||
Change `127.0.0.1` to the IP address that your MySQL server should
|
||||
listen on. Restart MySQL:
|
||||
|
||||
If you see a line that starts `sql-mode` then change this to `sql-mode=""`.
|
||||
|
||||
```bash
|
||||
service mysql restart
|
||||
```
|
||||
|
||||
# On the NMS
|
||||
|
||||
This host is where the web server and SNMP poller run. It could be
|
||||
the same machine as your database server.
|
||||
|
||||
Install the required software:
|
||||
|
||||
```bash
|
||||
apt-get install nginx-full php5-fpm php5-cli php5-mysql php5-gd php5-snmp php-pear php5-curl php5-mcrypt php5-json php-net-ipv4 php-net-ipv6 snmp snmpd graphviz fping imagemagick whois mtr-tiny nmap python-mysqldb rrdtool git
|
||||
```
|
||||
|
||||
The packages listed above are an all-inclusive list of packages that
|
||||
were necessary on a clean install of Ubuntu 12.04/14.04.
|
||||
|
||||
You need to configure snmpd appropriately if you have not already done
|
||||
so. An absolute minimal config for snmpd is:
|
||||
|
||||
```snmp
|
||||
rocommunity public 127.0.0.1
|
||||
```
|
||||
|
||||
Adding the above line to `/etc/snmp/snmpd.conf` and running `service
|
||||
snmpd restart` will activate this config.
|
||||
|
||||
In `/etc/php5/fpm/php.ini` and `/etc/php5/cli/php.ini`, ensure
|
||||
date.timezone is set to your preferred time zone. See
|
||||
<http://php.net/manual/en/timezones.php> for a list of supported
|
||||
timezones. Valid examples are: "America/New York", "Australia/Brisbane", "Etc/UTC".
|
||||
Please also ensure that `allow_url_fopen` is enabled. Other functions
|
||||
needed for LibreNMS include
|
||||
`exec,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,popen`.
|
||||
|
||||
# Adding the librenms-user
|
||||
|
||||
```bash
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms www-data
|
||||
```
|
||||
|
||||
# Cloning
|
||||
|
||||
LibreNMS is installed using git. If you're not familiar with git,
|
||||
check out the [git book][2] or the tips at [git ready][3]. The
|
||||
initial install from github.com is called a `git clone`; subsequent
|
||||
updates are done through `git pull`.
|
||||
|
||||
You can clone the repository via HTTPS or SSH. In either case, you
|
||||
need to ensure that the appropriate port (443 for HTTPS, 22 for SSH)
|
||||
is open in the outbound direction for your server.
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git librenms
|
||||
cd /opt/librenms
|
||||
```
|
||||
|
||||
The recommended method of cloning a git repository is HTTPS. If you
|
||||
would like to clone via SSH instead, use the command `git clone
|
||||
git@github.com:librenms/librenms.git librenms` instead.
|
||||
|
||||
Sometimes the initial clone can take quite a while (nearly 3 minutes
|
||||
on a 10 Mbps fibre connection in Australia is a recent example). If
|
||||
it's a big problem to you, you can save about 50% of the bandwidth by
|
||||
not pulling down the full git history. This comes with some
|
||||
limitations (namely that you can't use it as the basis for further git
|
||||
repos), but if you're not planning to develop for LibreNMS it's an
|
||||
acceptable option. To perform the initial clone without full history,
|
||||
run the following instead:
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
git clone --depth 1 https://github.com/librenms/librenms.git librenms
|
||||
cd /opt/librenms
|
||||
```
|
||||
|
||||
# Web Interface
|
||||
|
||||
To prepare the web interface (and adding devices shortly), you'll need
|
||||
to create and chown a directory as well as create a Nginx vhost.
|
||||
|
||||
First, create and chown the `rrd` directory and create the `logs` directory:
|
||||
|
||||
```bash
|
||||
mkdir rrd logs
|
||||
chown -R librenms:librenms /opt/librenms
|
||||
chmod 775 rrd
|
||||
```
|
||||
|
||||
> NOTE: If you're not running Ubuntu or Debian, you will need to
|
||||
> change `www-data` to the user and group which run the Nginx web
|
||||
> server. If you're planing on running rrdcached, make sure that the path is
|
||||
> also chmod'ed to 775 and chown'ed to librenms:librenms.
|
||||
|
||||
Add configuration for `nginx` at `/etc/nginx/conf.d/librenms.conf`
|
||||
with the following content:
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name librenms.example.com;
|
||||
root /opt/librenms/html;
|
||||
index index.php;
|
||||
access_log /opt/librenms/logs/access_log;
|
||||
error_log /opt/librenms/logs/error_log;
|
||||
gzip on;
|
||||
gzip_types text/css application/x-javascript text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
|
||||
location / {
|
||||
try_files $uri $uri/ @librenms;
|
||||
}
|
||||
location ~ \.php {
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
include fastcgi_params;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
||||
}
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
location @librenms {
|
||||
rewrite api/v0(.*)$ /api_v0.php/$1 last;
|
||||
rewrite ^(.+)$ /index.php/$1 last;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
On at least Ubuntu 14.04 (and possibly other distributions and
|
||||
versions as well), mcrypt is not enabled on install. Run the
|
||||
following to enable it:
|
||||
|
||||
```bash
|
||||
php5enmod mcrypt
|
||||
```
|
||||
|
||||
(To get to your LibreNMS install externally, you'll also need add it
|
||||
to your DNS or hosts file.)
|
||||
|
||||
# Start the web-server
|
||||
|
||||
Restart nginx:
|
||||
|
||||
```bashg
|
||||
service nginx restart
|
||||
```
|
||||
|
||||
Restart php5-fpm:
|
||||
|
||||
```bash
|
||||
service php5-fpm restart
|
||||
```
|
||||
|
||||
# Manual vs. web installer
|
||||
|
||||
At this stage you can either launch the web installer by going to
|
||||
<http://librenms.example.com/install.php>, follow the onscreen
|
||||
instructions then skip to the 'Add localhost' section. Alternatively
|
||||
if you want to continue the setup manually then just keep following
|
||||
these instructions.
|
||||
|
||||
```bash
|
||||
cp config.php.default config.php
|
||||
vim config.php
|
||||
```
|
||||
|
||||
Change the values to the right of the equal sign for lines beginning
|
||||
with `$config[db_]` to match your database information as setup above.
|
||||
|
||||
Change the value of `$config['snmp']['community']` from `public` to
|
||||
whatever your read-only SNMP community is. If you have multiple
|
||||
communities, set it to the most common.
|
||||
|
||||
** Be sure you have no characters (including whitespace like:
|
||||
newlines, spaces, tabs, etc) outside of the `<?php?>` blocks. Your
|
||||
graphs will break otherwise. **
|
||||
|
||||
# Initialise the database
|
||||
|
||||
Initiate the follow database with the following command:
|
||||
|
||||
```bash
|
||||
php build-base.php
|
||||
```
|
||||
|
||||
# Create admin user
|
||||
|
||||
Create the admin user - priv should be 10
|
||||
|
||||
```bash
|
||||
php adduser.php <name> <pass> 10 <email>
|
||||
```
|
||||
|
||||
Substitute your desired username, password and email address--and
|
||||
leave the angled brackets off.
|
||||
|
||||
# Validate your install
|
||||
|
||||
Run validate.php as root in the librenms directory
|
||||
|
||||
```bash
|
||||
php validate.php
|
||||
```
|
||||
|
||||
This will check your install to verify it is set up correctly.
|
||||
|
||||
# Add localhost
|
||||
|
||||
```bash
|
||||
php addhost.php localhost public v2c
|
||||
```
|
||||
|
||||
This assumes you haven't made community changes--if you have, replace
|
||||
`public` with your community. It also assumes SNMP v2c. If you're
|
||||
using v3, there are additional steps (NOTE: instructions for SNMPv3 to
|
||||
come).
|
||||
|
||||
Discover localhost::
|
||||
|
||||
```bash
|
||||
php discovery.php -h all
|
||||
```
|
||||
|
||||
# Create cronjob
|
||||
|
||||
LibreNMS uses Job Snijders' [poller-wrapper.py][1]. By default, the
|
||||
cron job runs `poller-wrapper.py` with 16 threads. The current
|
||||
recommendation is to use 4 threads per core as a rule of thumb. If
|
||||
the thread count needs to be changed, you can do so by editing the
|
||||
cron file (`/etc/cron.d/librenms`). Just add a number after
|
||||
`poller-wrapper.py`, as in the example below:
|
||||
|
||||
```bash
|
||||
/opt/librenms/poller-wrapper.py 12 >> /dev/null 2>&1
|
||||
```
|
||||
|
||||
Create the cronjob
|
||||
|
||||
```bash
|
||||
cp librenms.nonroot.cron /etc/cron.d/librenms
|
||||
```
|
||||
|
||||
> NOTE: Keep in mind that cron, by default, only uses a very limited
|
||||
> set of environment variables. You may need to configure proxy
|
||||
> variables for the cron invocation. Alternatively adding the proxy
|
||||
> settings in config.php is possible too. The config.php file will be
|
||||
> created in the upcoming steps. Review the following URL after you
|
||||
> finished librenms install steps:
|
||||
> <https://docs.librenms.org/Support/Configuration/#proxy-support>
|
||||
|
||||
# Copy logrotate config
|
||||
|
||||
LibreNMS keeps logs in `/opt/librenms/logs`. Over time these can
|
||||
become large and be rotated out. To rotate out the old logs you can
|
||||
use the provided logrotate config file:
|
||||
|
||||
```bash
|
||||
cp misc/librenms.logrotate /etc/logrotate.d/librenms
|
||||
```
|
||||
|
||||
# Daily Updates
|
||||
|
||||
LibreNMS performs daily updates by default. At 00:15 system time
|
||||
every day, a `git pull --no-edit --quiet` is performed. You can
|
||||
override this default by editing your `config.php` file. Remove the
|
||||
comment (the `#` mark) on the line:
|
||||
|
||||
```php
|
||||
#$config['update'] = 0;
|
||||
```
|
||||
|
||||
so that it looks like this:
|
||||
|
||||
```php
|
||||
$config['update'] = 0;
|
||||
```
|
||||
|
||||
# Install complete
|
||||
|
||||
Please allow for 2-3 runs of the poller-wrapper for data to start
|
||||
appearing in the WebUI. If you don't see data after this, please refer to the
|
||||
[FAQ](http://docs.librenms.org/Support/FAQ/) for assistance.
|
||||
|
||||
That's it! You now should be able to log in to
|
||||
<http://librenms.example.com/>. Please note that we have not covered
|
||||
HTTPS setup in this example, so your LibreNMS install is not secure by
|
||||
default. Please do not expose it to the public Internet unless you
|
||||
have configured HTTPS and taken appropriate web server hardening
|
||||
steps.
|
||||
|
||||
It would be great if you would consider opting into the stats system
|
||||
we have, please see [this
|
||||
page](http://docs.librenms.org/General/Callback-Stats-and-Privacy/) on
|
||||
what it is and how to enable it.
|
||||
|
||||
[1]: https://github.com/Atrato/observium-poller-wrapper
|
||||
[2]: http://git-scm.com/book
|
||||
[3]: http://gitready.com/
|
@ -5,33 +5,38 @@ path: blob/master/doc/
|
||||
|
||||
## Docker
|
||||
|
||||
An official LibreNMS docker image based on Alpine Linux and Nginx is available on [DockerHub](https://hub.docker.com/r/librenms/librenms/). Documentation can be found on the [Github repository](https://github.com/librenms/docker).
|
||||
|
||||
## Images
|
||||
|
||||
We have some pre-built VirtualBox images you can use to get started:
|
||||
|
||||
- [Virtual Machines](http://docs.librenms.org/Installation/Images/)
|
||||
An official LibreNMS docker image based on Alpine Linux and Nginx is available
|
||||
on [DockerHub](https://hub.docker.com/r/librenms/librenms/). Documentation can
|
||||
be found on the [Github repository](https://github.com/librenms/docker).
|
||||
|
||||
## Manually
|
||||
|
||||
If you want to install manually then we have some documentation which should make it easy.
|
||||
|
||||
**Please note the minimum supported PHP version is 7.2.5**
|
||||
This document includes instructions for:
|
||||
|
||||
- Ubuntu 20.04
|
||||
- RHEL / CentOS 8
|
||||
- Debian 10
|
||||
|
||||
** [Install LibreNMS](Install-LibreNMS.md) **
|
||||
|
||||
## Images
|
||||
|
||||
We have some pre-built VirtualBox images you can use to get started:
|
||||
|
||||
- [Virtual Machines](Images)
|
||||
|
||||
- [Ubuntu 18.04 Apache](http://docs.librenms.org/Installation/Installation-Ubuntu-1804-Apache/)
|
||||
- [Ubuntu 18.04 Nginx](http://docs.librenms.org/Installation/Installation-Ubuntu-1804-Nginx/)
|
||||
- [Debian 10 Nginx](http://docs.librenms.org/Installation/Installation-Debian-10-Nginx/)
|
||||
- [RHEL / CentOS 7 Apache](http://docs.librenms.org/Installation/Installation-CentOS-7-Apache/)
|
||||
- [RHEL / CentOS 7 Nginx](http://docs.librenms.org/Installation/Installation-CentOS-7-Nginx/)
|
||||
|
||||
### Old Install Docs
|
||||
|
||||
These install docs are no longer updated and may result in an unsuccessful install.
|
||||
|
||||
- [Ubuntu 16.04 Apache](http://docs.librenms.org/Installation/Installation-Ubuntu-1604-Apache/)
|
||||
- [Ubuntu 16.04 Nginx](http://docs.librenms.org/Installation/Installation-Ubuntu-1604-Nginx/)
|
||||
- [Debian/Ubuntu](http://docs.librenms.org/Installation/Installation-Ubuntu-1404-Apache/)
|
||||
- [RHEL/CentOS](http://docs.librenms.org/Installation/Installation-CentOS-6-Apache-Nginx/)
|
||||
- [Debian/Ubuntu Lighttpd](http://docs.librenms.org/Installation/Installation-Ubuntu-1404-Lighttpd/)
|
||||
- [Debian/Ubuntu Nginx](http://docs.librenms.org/Installation/Installation-Ubuntu-1404-Nginx/)
|
||||
- [Ubuntu 18.04 Apache](Installation-Ubuntu-1804-Apache/)
|
||||
- [Ubuntu 18.04 Nginx](Installation-Ubuntu-1804-Nginx/)
|
||||
- [Debian 10 Nginx](Installation-Debian-10-Nginx/)
|
||||
- [RHEL / CentOS 7 Apache](Installation-CentOS-7-Apache/)
|
||||
- [RHEL / CentOS 7 Nginx](Installation-CentOS-7-Nginx/)
|
||||
- [Ubuntu 16.04 Apache](Installation-Ubuntu-1604-Apache/)
|
||||
- [Ubuntu 16.04 Nginx](Installation-Ubuntu-1604-Nginx/)
|
||||
- [RHEL / CentOS 6](Installation-CentOS-6-Apache-Nginx/)
|
||||
|
@ -7,9 +7,9 @@ path: blob/master/doc/
|
||||
<span> Installing</span>
|
||||
</a>
|
||||
</div>
|
||||
<a href="/Installation/">Installing LibreNMS</a><br />
|
||||
<a href="/Installation/Installation-Ubuntu-1804-Nginx/">Ubuntu 18.04 + Nginx</a><br />
|
||||
<a href="/Installation/Installation-CentOS-7-Nginx/">CentOS 7 + Nginx</a><br />
|
||||
<a href="/Installation/">Ways to install</a><br />
|
||||
<a href="/Installation/Install-LibreNMS/">Install LibreNMS Now</a><br />
|
||||
<a href="https://github.com/librenms/docker">Install Using Docker</a><br />
|
||||
<a href="/Installation/Installing-LibreNMS/"><strong>More...</strong></a>
|
||||
</div>
|
||||
<div class="home-box">
|
||||
|
10
mkdocs.yml
10
mkdocs.yml
@ -14,6 +14,8 @@ site_url: http://docs.librenms.org
|
||||
markdown_extensions:
|
||||
- pymdownx.tasklist
|
||||
- pymdownx.tilde
|
||||
- pymdownx.superfences
|
||||
- pymdownx.tabbed
|
||||
extra_css:
|
||||
- https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
|
||||
- librenms.css
|
||||
@ -35,13 +37,9 @@ nav:
|
||||
- Features: Support/Features.md
|
||||
- Welcome to Observium users: General/Welcome-to-Observium-users.md
|
||||
- 2. Installing:
|
||||
- Installing LibreNMS: Installation/index.md
|
||||
- How to install LibreNMS: Installation/index.md
|
||||
- Install LibreNMS: Installation/Install-LibreNMS.md
|
||||
- LibreNMS VMs: Installation/Images.md
|
||||
- Ubuntu 18.04 (Nginx): Installation/Installation-Ubuntu-1804-Nginx.md
|
||||
- Ubuntu 18.04 (Apache): Installation/Installation-Ubuntu-1804-Apache.md
|
||||
- Debian 10 (Nginx): Installation/Installation-Debian-10-Nginx.md
|
||||
- CentOS 7 (Nginx): Installation/Installation-CentOS-7-Nginx.md
|
||||
- CentOS 7 (Apache): Installation/Installation-CentOS-7-Apache.md
|
||||
- Migrating from Observium: Installation/Migrating-from-Observium.md
|
||||
- 3. Getting started:
|
||||
- Choosing a release: General/Releases.md
|
||||
|
@ -9,21 +9,19 @@ fi
|
||||
|
||||
pip3 install --upgrade pip
|
||||
pip3 install --user --requirement <(cat <<EOF
|
||||
Click==7.0
|
||||
future==0.18.2
|
||||
Jinja2==2.11.1
|
||||
Jinja2==2.11.2
|
||||
livereload==2.6.1
|
||||
lunr==0.5.6
|
||||
Markdown==3.2.1
|
||||
lunr==0.5.8
|
||||
Markdown==3.2.2
|
||||
mkdocs==1.1.2
|
||||
mkdocs-material==5.2.2
|
||||
nltk==3.5
|
||||
pymdown-extensions==7.1
|
||||
PyYAML==5.3.1
|
||||
six==1.15.0
|
||||
tornado==6.0.4
|
||||
MarkupSafe==1.1.1
|
||||
mkdocs==1.1
|
||||
mkdocs-material==4.6.3
|
||||
nltk==3.4.5
|
||||
Pygments==2.5.2
|
||||
pymdown-extensions==6.3
|
||||
PyYAML==5.3
|
||||
six==1.14.0
|
||||
tornado==6.0.3
|
||||
EOF
|
||||
)
|
||||
|
||||
|
@ -57,6 +57,11 @@ class DocsTest extends TestCase
|
||||
'Installation/Installation-Ubuntu-1404-Nginx.md',
|
||||
'Installation/Installation-Ubuntu-1604-Apache.md',
|
||||
'Installation/Installation-Ubuntu-1604-Nginx.md',
|
||||
'Installation/Installation-Ubuntu-1804-Nginx.md',
|
||||
'Installation/Installation-Ubuntu-1804-Apache.md',
|
||||
'Installation/Installation-Debian-10-Nginx.md',
|
||||
'Installation/Installation-CentOS-7-Nginx.md',
|
||||
'Installation/Installation-CentOS-7-Apache.md',
|
||||
'Installation/Installing-LibreNMS.md',
|
||||
'Support/Support-New-OS.md',
|
||||
'Installation/Ubuntu-image.md',
|
||||
|
Loading…
Reference in New Issue
Block a user