mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Redirect old install docs (#15505)
* Remove old install docs redirect them to the current docs * Add redirect for Debian 11 that apparently still exists? * Clean up old links
This commit is contained in:
@@ -322,7 +322,7 @@ service rrdcached start
|
||||
Check to see if the graphs are being drawn in LibreNMS. This might take a few minutes.
|
||||
After at least one poll cycle (5 mins), check the LibreNMS disk I/O performance delta.
|
||||
Disk I/O can be found under the menu Devices>All Devices>[localhost
|
||||
hostname](../Installation/Installation-CentOS-7-Apache.md)>Health>Disk I/O.
|
||||
hostname]>Health>Disk I/O.
|
||||
|
||||
Depending on many factors, you should see the Ops/sec drop by ~30-40%.
|
||||
|
||||
|
@@ -304,7 +304,7 @@ You should be able to load the Smokeping web interface at `http://yourlibrenms/s
|
||||
### Nginx Configuration - Ubuntu, Debian and alike
|
||||
|
||||
This section assumes you have configured LibreNMS with Nginx as
|
||||
specified in [Configure Nginx](../Installation/Installation-Ubuntu-1804-Nginx.md).
|
||||
specified in [Configure Nginx](../Installation/Install-LibreNMS.md#configure-web-server).
|
||||
|
||||
Note, you need to install fcgiwrap for CGI wrapper interact with Nginx
|
||||
|
||||
|
@@ -19,7 +19,7 @@ Simplified block diagram of an Apache HTTP server with Varnish 4.0 Reverse Proxy
|
||||
|
||||
In this example we will assume your Apache 2.4.X HTTP server is working and
|
||||
configured to process HTTP requests on port 80. If not, please see
|
||||
[Installing LibreNMS](../Installation/Installation-CentOS-7-Apache.md)
|
||||
[Installing LibreNMS](../Installation/Install-LibreNMS.md)
|
||||
|
||||
## Install Varnish 4.0 RPM
|
||||
|
||||
|
@@ -1,477 +0,0 @@
|
||||
> 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`.
|
||||
|
||||
!!! warning
|
||||
|
||||
Please note the minimum supported PHP version is @= php.version_min =@.
|
||||
The guide below might not have been updated to reflect it!
|
||||
|
||||
# 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
|
||||
yum install net-snmp mysql-server mysql-client
|
||||
chkconfig mysqld on
|
||||
service mysqld start
|
||||
```
|
||||
|
||||
## MariaDB
|
||||
|
||||
```bash
|
||||
yum install net-snmp mariadb-server mariadb-client
|
||||
chkconfig mariadb on
|
||||
service mariadb start
|
||||
```
|
||||
|
||||
## General
|
||||
|
||||
Now continue with the installation:
|
||||
|
||||
```bash
|
||||
chkconfig snmpd on
|
||||
service snmpd start
|
||||
mysql_secure_installation
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
Enter the MySQL/MariaDB root password to enter the command-line interface.
|
||||
|
||||
Create database.
|
||||
|
||||
```sql
|
||||
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_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, use `localhost` as
|
||||
the IP address.
|
||||
|
||||
Edit the mysql/mariadb configuration file:
|
||||
|
||||
```bash
|
||||
vim /etc/my.cnf
|
||||
```
|
||||
|
||||
Add the following line:
|
||||
|
||||
```
|
||||
innodb_file_per_table=1
|
||||
```
|
||||
|
||||
If you are deploying a separate database server, you also need to
|
||||
specify the `bind-address`. If your MySQL database resides on the
|
||||
same server as LibreNMS, you should skip this step.
|
||||
|
||||
```
|
||||
bind-address = <ip>
|
||||
```
|
||||
|
||||
If you see a line that starts `sql-mode` then change this to
|
||||
`sql-mode=""`.
|
||||
|
||||
Save, and restart MySQL/MariaDB to apply your changes:
|
||||
|
||||
```
|
||||
service mysqld restart
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
service mariadb 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 CentOS 6.x. It also requires the EPEL repository. Net_IPv6 is
|
||||
required even if your network environment does not support IPv6.
|
||||
|
||||
Note if not using HTTPd (Apache): RHEL requires `httpd` to be
|
||||
installed regardless of of `nginx`'s (or any other web-server's)
|
||||
presence.
|
||||
|
||||
```bash
|
||||
yum install epel-release
|
||||
yum install php php-cli php-gd php-mysql php-snmp php-pear php-curl httpd net-snmp graphviz graphviz-php mysql ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils vixie-cron php-mcrypt fping git
|
||||
pear install Net_IPv4-1.3.4
|
||||
pear install Net_IPv6-1.2.2b2
|
||||
```
|
||||
|
||||
# Configure SNMPD on localhost
|
||||
|
||||
Edit `/etc/snmp/snmpd.conf` to enable self-polling. An absolute
|
||||
minimal config for snmpd is:
|
||||
|
||||
```
|
||||
rocommunity public 127.0.0.1
|
||||
```
|
||||
|
||||
You may either edit the default configuration file to your liking, or
|
||||
backup the default config file and replace it entirely with your
|
||||
own. To apply your changes, run `service snmpd restart` for Centos
|
||||
6.x. If you have deployed a separate database server, you will likely
|
||||
want to configure snmpd on that host as well.
|
||||
|
||||
# Adding the librenms-user for Apache
|
||||
|
||||
```bash
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms apache
|
||||
```
|
||||
|
||||
# Adding the librenms-user for Nginx
|
||||
|
||||
```bash
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms nginx
|
||||
```
|
||||
|
||||
# Using HTTPd (Apache2)
|
||||
|
||||
Set `httpd` to start on system boot.
|
||||
|
||||
```bash
|
||||
chkconfig --levels 235 httpd on
|
||||
```
|
||||
|
||||
In `/etc/php.ini`, ensure `date.timezone` is set to your preferred
|
||||
time zone. See <https://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`.
|
||||
|
||||
Next, add the following to `/etc/httpd/conf.d/librenms.conf`
|
||||
|
||||
If you are running Apache below version 2.2.18:
|
||||
|
||||
```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:
|
||||
|
||||
```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 NoDecode
|
||||
<Directory "/opt/librenms/html/">
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
If the file `/etc/httpd/conf.d/welcome.conf` exists, you will want to
|
||||
remove that as well unless you're familiar with [Name-based Virtual
|
||||
Hosts](https://httpd.apache.org/docs/2.2/vhosts/name-based.html).
|
||||
|
||||
```bash
|
||||
rn /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
|
||||
```
|
||||
|
||||
# Using Nginx and PHP-FPM
|
||||
|
||||
If you choose to run Nginx, you will need to install necessary extra
|
||||
software and let it start on system boot.
|
||||
|
||||
```bash
|
||||
yum install nginx php-fpm
|
||||
chkconfig nginx on
|
||||
chkconfig php-fpm on
|
||||
```
|
||||
|
||||
Modify permissions and configuration for `php-fpm` to use nginx credentials.
|
||||
|
||||
```
|
||||
mkdir /var/lib/php/session
|
||||
chown root:nginx /var/lib/php -R
|
||||
vim /etc/php-fpm.d/www.conf # At line #12: Change `listen` to `/var/run/php5-fpm.sock`
|
||||
# At line #39-41: Change the `user` and `group` to `nginx`
|
||||
```
|
||||
|
||||
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;
|
||||
location / {
|
||||
try_files $uri $uri/ @librenms;
|
||||
}
|
||||
location ~ \.php {
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
include fastcgi.conf;
|
||||
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;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# 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.
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git librenms
|
||||
cd /opt/librenms
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
# Prepare the Web Interface
|
||||
|
||||
To prepare the web interface, 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
|
||||
```
|
||||
|
||||
If you're planning on running rrdcached, make sure that the path is
|
||||
also chmod'ed to 775 and chown'ed to librenms:librenms.
|
||||
|
||||
**SELinux**
|
||||
> if you're using SELinux you need to allow web server user to write into logs directory.
|
||||
> semanage tool is a part of policycoreutils-python, so if don't have
|
||||
it, you can install it **Please note that running LibreNMS with
|
||||
SELinux is still experimental and we cannot guarantee that everything
|
||||
will be working fine for now.**
|
||||
|
||||
```bash
|
||||
yum install policycoreutils-python
|
||||
```
|
||||
|
||||
```bash
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/logs/
|
||||
```
|
||||
|
||||
Set selinux to allow httpd to sendmail
|
||||
|
||||
```bash
|
||||
setsebool -P httpd_can_sendmail=1
|
||||
```
|
||||
|
||||
# Start the web-server
|
||||
|
||||
```
|
||||
# For HTTPd (Apache):
|
||||
service httpd restart
|
||||
|
||||
# For Nginx:
|
||||
service nginx restart
|
||||
```
|
||||
|
||||
# Web Installer
|
||||
|
||||
At this stage you can launch the web installer by going to
|
||||
`http://IP/install.php` and follow the on-screen
|
||||
instructions. Alternatively if you want to continue the setup manually
|
||||
then perform the manual install steps. If you cannot reach the
|
||||
installer, stop here and solve that problem before
|
||||
proceeding. Afterwards, Add the following line to the end of
|
||||
`config.php`:
|
||||
|
||||
```
|
||||
$config['fping'] = "/usr/sbin/fping";
|
||||
```
|
||||
|
||||
# Manual Install
|
||||
|
||||
You may skip this section if the web installer succeeded.
|
||||
|
||||
```bash
|
||||
cp config.php.default config.php
|
||||
vi config.php
|
||||
```
|
||||
|
||||
Change the values to the right of the equal sign for lines beginning
|
||||
with `$config[db_]` to match your database information as previously
|
||||
configured.
|
||||
|
||||
Change the value of `$config['snmp']['community']` from `public` to
|
||||
whatever your default read-only SNMP community is. If you have
|
||||
multiple existing communities in your environment, set it to the most
|
||||
common.
|
||||
|
||||
Add the following line to the end of `config.php`:
|
||||
|
||||
```
|
||||
$config['fping'] = "/usr/sbin/fping";
|
||||
```
|
||||
|
||||
Important: Be sure you have no characters (including whitespace like:
|
||||
newlines, spaces, tabs, etc) outside of the `<?php?>` blocks. Your
|
||||
graphs will break otherwise and there will be no error messages to
|
||||
indicate otherwise!
|
||||
|
||||
# Initialize the database
|
||||
|
||||
Initiate the follow database with the following command:
|
||||
|
||||
```
|
||||
./lnms migrate
|
||||
```
|
||||
|
||||
# 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.
|
||||
|
||||
# Validate your install
|
||||
|
||||
After performing the manual install or web install, be sure to 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
|
||||
```
|
||||
|
||||
Replace `public` to match what you set in `/etc/snmp/snmpd.conf`.
|
||||
This command also assumes you are using 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 dist/librenms.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:
|
||||
> <@= config.site_url =@/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:
|
||||
|
||||
!!! setting "system/updates"
|
||||
```bash
|
||||
lnms config:set update false
|
||||
```
|
||||
|
||||
# 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](../Support/FAQ.md) 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](../General/Callback-Stats-and-Privacy.md) on
|
||||
what it is and how to enable it.
|
||||
|
@@ -1,362 +0,0 @@
|
||||
> 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`.
|
||||
|
||||
!!! warning
|
||||
|
||||
Please note the minimum supported PHP version is @= php.version_min =@.
|
||||
The guide below might not have been updated to reflect it!
|
||||
|
||||
|
||||
## Install Common Required Packages ##
|
||||
|
||||
```
|
||||
yum install epel-release
|
||||
```
|
||||
|
||||
```
|
||||
yum install git cronie fping jwhois ImageMagick mtr MySQL-python net-snmp net-snmp-utils nmap python-memcached rrdtool policycoreutils-python httpd mariadb mariadb-server unzip python3 python3-pip
|
||||
```
|
||||
|
||||
### Install PHP
|
||||
|
||||
CentOS 7 comes with php 5.4 which is not compatible with LibreNMS.
|
||||
There are multiple ways to install php 7.x on CentOS 7, like Webtatic, Remi or SCL, the last two are maintained by Remi Collet of RedHat.
|
||||
|
||||
#### Running with Remi PHP
|
||||
|
||||
```
|
||||
yum localinstall http://rpms.remirepo.net/enterprise/remi-release-7.rpm
|
||||
```
|
||||
Install the yum-config-manager to change to Remi PHP 7.3 Repo.
|
||||
```
|
||||
yum install yum-utils
|
||||
yum-config-manager --enable remi-php73
|
||||
```
|
||||
Install the required packages
|
||||
|
||||
```
|
||||
yum install mod_php php-cli php-common php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd
|
||||
```
|
||||
|
||||
#### Running with CentOS SCL php
|
||||
|
||||
```
|
||||
yum install centos-release-scl
|
||||
```
|
||||
|
||||
```
|
||||
yum install rh-php72 rh-php72-php-cli rh-php72-php-common rh-php72-php-curl rh-php72-php-gd rh-php72-php-mbstring rh-php72-php-process rh-php72-php-snmp rh-php72-php-xml rh-php72-php-zip rh-php72-php-memcached rh-php72-php-mysqlnd
|
||||
```
|
||||
|
||||
```
|
||||
ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php
|
||||
ln -s /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php72-php.conf /etc/httpd/conf.d/
|
||||
ln -s /opt/rh/httpd24/root/etc/httpd/conf.modules.d/15-rh-php72-php.conf /etc/httpd/conf.modules.d/
|
||||
ln -s /opt/rh/httpd24/root/etc/httpd/modules/librh-php72-php7.so /etc/httpd/modules/
|
||||
```
|
||||
|
||||
# Add librenms user
|
||||
|
||||
```
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms apache
|
||||
```
|
||||
|
||||
# Download LibreNMS
|
||||
|
||||
```
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git
|
||||
```
|
||||
|
||||
# Set permissions
|
||||
|
||||
```
|
||||
chown -R librenms:librenms /opt/librenms
|
||||
chmod 770 /opt/librenms
|
||||
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ /opt/librenms/cache
|
||||
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ /opt/librenms/cache
|
||||
```
|
||||
|
||||
# Install PHP dependencies
|
||||
|
||||
```
|
||||
su - librenms
|
||||
./scripts/composer_wrapper.php install --no-dev
|
||||
exit
|
||||
```
|
||||
|
||||
# DB Server
|
||||
|
||||
## Configure MySQL
|
||||
|
||||
```
|
||||
systemctl enable --now mariadb
|
||||
mysql -u root
|
||||
```
|
||||
|
||||
> NOTE: Please change the 'password' below to something secure.
|
||||
|
||||
```sql
|
||||
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
|
||||
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
exit
|
||||
```
|
||||
|
||||
```
|
||||
vi /etc/my.cnf
|
||||
```
|
||||
|
||||
Within the `[mysqld]` section please add:
|
||||
|
||||
```bash
|
||||
innodb_file_per_table=1
|
||||
lower_case_table_names=0
|
||||
```
|
||||
|
||||
```
|
||||
systemctl restart mariadb
|
||||
```
|
||||
|
||||
# Web Server
|
||||
|
||||
## Configure PHP
|
||||
|
||||
Ensure date.timezone is set in php.ini to your preferred time zone.
|
||||
See <https://php.net/manual/en/timezones.php> for a list of supported
|
||||
timezones. Valid examples are: "America/New_York",
|
||||
"Australia/Brisbane", "Etc/UTC".
|
||||
|
||||
When PHP is configured with open_basedir, be sure to allow the following paths for LibreNMS to work:
|
||||
|
||||
```
|
||||
php_admin_value[open_basedir] = "/opt/librenms:/usr/lib64/nagios/plugins:/dev/urandom:/usr/sbin/fping:/usr/sbin/fping6:/usr/bin/snmpgetnext:/usr/bin/rrdtool:/usr/bin/snmpwalk:/usr/bin/snmpget:/usr/bin/snmpbulkwalk:/usr/bin/snmptranslate:/usr/bin/traceroute:/usr/bin/whois:/bin/ping:/usr/sbin/mtr:/usr/bin/nmap:/usr/sbin/ipmitool:/usr/bin/virsh:/usr/bin/nfdump"
|
||||
```
|
||||
|
||||
```
|
||||
vi /etc/php.ini
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
vi /etc/opt/rh/rh-php72/php.ini
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Configure 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>
|
||||
</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
|
||||
```
|
||||
|
||||
# SELinux
|
||||
|
||||
Install the policy tool for SELinux:
|
||||
|
||||
```
|
||||
yum install policycoreutils-python
|
||||
```
|
||||
|
||||
## Configure the contexts needed by LibreNMS
|
||||
|
||||
```
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/logs/
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/rrd/
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/storage(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/storage(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/storage/
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/bootstrap/cache(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/bootstrap/cache(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/bootstrap/cache/
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/cache(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/cache(/.*)?'
|
||||
restorecon -RFvv /var/www/opt/librenms/cache/
|
||||
setsebool -P httpd_can_sendmail=1
|
||||
```
|
||||
|
||||
Additional SELinux problems may be found by executing the following command
|
||||
|
||||
```
|
||||
audit2why < /var/log/audit/audit.log
|
||||
```
|
||||
|
||||
# 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
|
||||
```
|
||||
|
||||
# Allow access through firewall
|
||||
|
||||
```
|
||||
firewall-cmd --zone public --add-service http
|
||||
firewall-cmd --permanent --zone public --add-service http
|
||||
firewall-cmd --zone public --add-service https
|
||||
firewall-cmd --permanent --zone public --add-service https
|
||||
```
|
||||
|
||||
# Configure snmpd
|
||||
|
||||
Copy the example snmpd.conf from the LibreNMS install.
|
||||
|
||||
```
|
||||
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/dist/librenms.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:
|
||||
> <@= config.site_url =@/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.php>
|
||||
|
||||
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 as root in
|
||||
the librenms directory:
|
||||
|
||||
```
|
||||
cd /opt/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](../Support/Performance.md)
|
||||
- [Alerting](../Alerting/index.md)
|
||||
- [Device Groups](../Extensions/Device-Groups.md)
|
||||
- [Auto discovery](../Extensions/Auto-Discovery.md)
|
||||
|
||||
# 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](../General/Callback-Stats-and-Privacy.md) on
|
||||
what it is and how to enable it.
|
||||
|
||||
If you would like to help make LibreNMS better there are [many ways to
|
||||
help](../Support/FAQ.md#a-namefaq9-what-can-i-do-to-helpa). You
|
||||
can also [back LibreNMS on Open Collective](https://t.libren.ms/donations).
|
@@ -1,348 +0,0 @@
|
||||
> 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`.
|
||||
|
||||
!!! warning
|
||||
|
||||
Please note the minimum supported PHP version is @= php.version_min =@.
|
||||
The guide below might not have been updated to reflect it!
|
||||
|
||||
# Install Required Packages
|
||||
|
||||
```
|
||||
yum install epel-release yum-utils
|
||||
```
|
||||
|
||||
```
|
||||
yum localinstall http://rpms.remirepo.net/enterprise/remi-release-7.rpm
|
||||
```
|
||||
|
||||
```
|
||||
yum-config-manager --enable remi-php73
|
||||
```
|
||||
|
||||
```
|
||||
yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php-fpm php-cli php-common php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd python-memcached rrdtool python3 python3-pip
|
||||
```
|
||||
|
||||
# Add librenms user
|
||||
|
||||
```
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms nginx
|
||||
```
|
||||
|
||||
# Download LibreNMS
|
||||
|
||||
```
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git
|
||||
```
|
||||
|
||||
# Set permissions
|
||||
|
||||
```
|
||||
chown -R librenms:librenms /opt/librenms
|
||||
chmod 770 /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/
|
||||
chgrp apache /var/lib/php/session/
|
||||
```
|
||||
|
||||
# Install PHP dependencies
|
||||
|
||||
```
|
||||
su - librenms
|
||||
./scripts/composer_wrapper.php install --no-dev
|
||||
exit
|
||||
```
|
||||
|
||||
# DB Server
|
||||
|
||||
## Configure MySQL
|
||||
|
||||
```
|
||||
systemctl start mariadb
|
||||
mysql -u root
|
||||
```
|
||||
|
||||
> NOTE: Please change the 'password' below to something secure.
|
||||
|
||||
```sql
|
||||
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
|
||||
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
exit
|
||||
```
|
||||
|
||||
```
|
||||
vi /etc/my.cnf
|
||||
```
|
||||
|
||||
Within the `[mysqld]` section please add:
|
||||
|
||||
```bash
|
||||
innodb_file_per_table=1
|
||||
lower_case_table_names=0
|
||||
```
|
||||
|
||||
```
|
||||
systemctl enable mariadb
|
||||
systemctl restart mariadb
|
||||
```
|
||||
|
||||
# Web Server
|
||||
|
||||
## Configure and Start PHP-FPM
|
||||
|
||||
Ensure date.timezone is set in php.ini to your preferred time zone.
|
||||
See <https://php.net/manual/en/timezones.php> for a list of supported
|
||||
timezones. Valid examples are: "America/New_York",
|
||||
"Australia/Brisbane", "Etc/UTC".
|
||||
|
||||
```
|
||||
vi /etc/php.ini
|
||||
```
|
||||
|
||||
In `/etc/php-fpm.d/www.conf` make these changes:
|
||||
|
||||
```
|
||||
vi /etc/php-fpm.d/www.conf
|
||||
```
|
||||
|
||||
```nginx
|
||||
;user = apache
|
||||
user = nginx
|
||||
|
||||
group = apache ; keep group as apache
|
||||
|
||||
;listen = 127.0.0.1:9000
|
||||
listen = /run/php-fpm/php-fpm.sock
|
||||
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
listen.mode = 0660
|
||||
```
|
||||
|
||||
```
|
||||
systemctl enable php-fpm
|
||||
systemctl restart php-fpm
|
||||
```
|
||||
|
||||
## Configure 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 /api/v0 {
|
||||
try_files $uri $uri/ /api_v0.php?$query_string;
|
||||
}
|
||||
location ~ \.php {
|
||||
include fastcgi.conf;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
|
||||
}
|
||||
location ~ /\.ht {
|
||||
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 nginx
|
||||
systemctl restart nginx
|
||||
```
|
||||
|
||||
# SELinux
|
||||
|
||||
Install the policy tool for SELinux:
|
||||
|
||||
```
|
||||
yum install policycoreutils-python
|
||||
```
|
||||
|
||||
## Configure the contexts needed by LibreNMS:
|
||||
|
||||
```
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/logs/
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/rrd/
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/storage(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/storage(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/storage/
|
||||
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/bootstrap/cache(/.*)?'
|
||||
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/bootstrap/cache(/.*)?'
|
||||
restorecon -RFvv /opt/librenms/bootstrap/cache/
|
||||
setsebool -P httpd_can_sendmail=1
|
||||
setsebool -P httpd_execmem 1
|
||||
```
|
||||
|
||||
# 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
|
||||
```
|
||||
|
||||
# Allow access through firewall
|
||||
|
||||
```
|
||||
firewall-cmd --zone public --add-service http
|
||||
firewall-cmd --permanent --zone public --add-service http
|
||||
firewall-cmd --zone public --add-service https
|
||||
firewall-cmd --permanent --zone public --add-service https
|
||||
```
|
||||
|
||||
# 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/dist/librenms.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:
|
||||
> <@= config.site_url =@/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.php>
|
||||
|
||||
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 as root in
|
||||
the librenms directory:
|
||||
|
||||
```
|
||||
cd /opt/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](../Support/Performance.md)
|
||||
- [Alerting](../Alerting/index.md)
|
||||
- [Device Groups](../Extensions/Device-Groups.md)
|
||||
- [Auto discovery](../Extensions/Auto-Discovery.md)
|
||||
|
||||
# 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](../General/Callback-Stats-and-Privacy.md) on
|
||||
what it is and how to enable it.
|
||||
|
||||
If you would like to help make LibreNMS better there are [many ways to
|
||||
help](../Support/FAQ.md#a-namefaq9-what-can-i-do-to-helpa). You
|
||||
can also [back LibreNMS on Open Collective](https://t.libren.ms/donations).
|
@@ -1,227 +0,0 @@
|
||||
> 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`.
|
||||
|
||||
!!! warning
|
||||
|
||||
Please note the minimum supported PHP version is @= php.version_min =@.
|
||||
The guide below might not have been updated to reflect it!
|
||||
|
||||
# Install Required Packages
|
||||
|
||||
```bash
|
||||
apt install acl apache2 composer fping git graphviz imagemagick libapache2-mod-php7.0 mariadb-client mariadb-server mtr-tiny nmap php7.0-cli php7.0-curl php7.0-gd php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois
|
||||
```
|
||||
|
||||
# Add librenms user
|
||||
|
||||
```bash
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms www-data
|
||||
```
|
||||
|
||||
# Install LibreNMS
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
|
||||
```
|
||||
|
||||
# DB Server
|
||||
|
||||
## Configure MySQL
|
||||
|
||||
```bash
|
||||
systemctl restart mysql
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
> NOTE: Please change the 'password' below to something secure.
|
||||
|
||||
```sql
|
||||
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
|
||||
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
exit
|
||||
```
|
||||
|
||||
```bash
|
||||
vi /etc/mysql/mariadb.conf.d/50-server.cnf
|
||||
```
|
||||
|
||||
Within the `[mysqld]` section please add:
|
||||
|
||||
```bash
|
||||
innodb_file_per_table=1
|
||||
lower_case_table_names=0
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl restart mysql
|
||||
```
|
||||
|
||||
# Web Server
|
||||
|
||||
## Configure PHP
|
||||
|
||||
Ensure date.timezone is set in php.ini to your preferred time zone.
|
||||
See <https://php.net/manual/en/timezones.php> for a list of supported
|
||||
timezones. Valid examples are: "America/New_York",
|
||||
"Australia/Brisbane", "Etc/UTC".
|
||||
|
||||
```bash
|
||||
vi /etc/php/7.0/apache2/php.ini
|
||||
vi /etc/php/7.0/cli/php.ini
|
||||
```
|
||||
|
||||
```bash
|
||||
a2enmod php7.0
|
||||
a2dismod mpm_event
|
||||
a2enmod mpm_prefork
|
||||
phpenmod mcrypt
|
||||
```
|
||||
|
||||
## Configure 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>
|
||||
</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. `a2dissite 000-default`
|
||||
|
||||
```bash
|
||||
a2ensite librenms.conf
|
||||
a2enmod rewrite
|
||||
systemctl restart apache2
|
||||
```
|
||||
|
||||
# Configure snmpd
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
|
||||
chmod +x /usr/bin/distro
|
||||
systemctl restart snmpd
|
||||
```
|
||||
|
||||
## Cron job
|
||||
|
||||
```bash
|
||||
cp /opt/librenms/dist/librenms.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:
|
||||
> <@= config.site_url =@/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 /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
|
||||
```
|
||||
|
||||
# Set permissions
|
||||
|
||||
```bash
|
||||
chown -R librenms:librenms /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/
|
||||
```
|
||||
|
||||
# Web installer
|
||||
|
||||
Now head to the web installer and follow the on-screen instructions.
|
||||
|
||||
<http://librenms.example.com/install.php>
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
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 as root in
|
||||
the librenms directory:
|
||||
|
||||
```bash
|
||||
cd /opt/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](../Support/Performance.md)
|
||||
- [Alerting](../Alerting/index.md)
|
||||
- [Device Groups](../Extensions/Device-Groups.md)
|
||||
- [Auto discovery](../Extensions/Auto-Discovery.md)
|
||||
|
||||
# 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](../General/Callback-Stats-and-Privacy.md) on
|
||||
what it is and how to enable it.
|
||||
|
||||
If you would like to help make LibreNMS better there are [many ways to
|
||||
help](../Support/FAQ.md#a-namefaq9-what-can-i-do-to-helpa). You
|
||||
can also [back LibreNMS on Open
|
||||
Collective](https://t.libren.ms/donations).
|
@@ -1,239 +0,0 @@
|
||||
> 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`.
|
||||
|
||||
!!! warning
|
||||
|
||||
Please note the minimum supported PHP version is @= php.version_min =@.
|
||||
The guide below might not have been updated to reflect it!
|
||||
|
||||
# Install Required Packages
|
||||
|
||||
```bash
|
||||
apt install acl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois
|
||||
```
|
||||
|
||||
# Add librenms user
|
||||
|
||||
```bash
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms www-data
|
||||
```
|
||||
|
||||
# Install LibreNMS
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
|
||||
```
|
||||
|
||||
# DB Server
|
||||
|
||||
## Configure MySQL
|
||||
|
||||
```bash
|
||||
systemctl restart mysql
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
> NOTE: Please change the 'password' below to something secure.
|
||||
|
||||
```sql
|
||||
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
|
||||
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
exit
|
||||
```
|
||||
|
||||
```bash
|
||||
vim /etc/mysql/mariadb.conf.d/50-server.cnf
|
||||
```
|
||||
|
||||
Within the `[mysqld]` section please add:
|
||||
|
||||
```bash
|
||||
innodb_file_per_table=1
|
||||
lower_case_table_names=0
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl restart mysql
|
||||
```
|
||||
|
||||
# Web Server
|
||||
|
||||
## Configure and Start PHP-FPM
|
||||
|
||||
Ensure date.timezone is set in php.ini to your preferred time zone.
|
||||
See <https://php.net/manual/en/timezones.php> for a list of supported
|
||||
timezones. Valid examples are: "America/New_York",
|
||||
"Australia/Brisbane", "Etc/UTC".
|
||||
|
||||
```bash
|
||||
vim /etc/php/7.0/fpm/php.ini
|
||||
vim /etc/php/7.0/cli/php.ini
|
||||
```
|
||||
|
||||
```bash
|
||||
phpenmod mcrypt
|
||||
systemctl restart php7.0-fpm
|
||||
```
|
||||
|
||||
## Configure NGINX
|
||||
|
||||
```bash
|
||||
vim /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;
|
||||
|
||||
proxy_read_timeout 300;
|
||||
proxy_connect_timeout 300;
|
||||
proxy_send_timeout 300;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
}
|
||||
location /api/v0 {
|
||||
try_files $uri $uri/ /api_v0.php?$query_string;
|
||||
}
|
||||
location ~ \.php {
|
||||
include fastcgi.conf;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
|
||||
}
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
systemctl restart nginx
|
||||
```
|
||||
|
||||
# Configure snmpd
|
||||
|
||||
```bash
|
||||
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
|
||||
vim /etc/snmp/snmpd.conf
|
||||
```
|
||||
|
||||
Edit the text which says `RANDOMSTRINGGOESHERE` and set your own community string.
|
||||
|
||||
```bash
|
||||
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
|
||||
chmod +x /usr/bin/distro
|
||||
systemctl restart snmpd
|
||||
```
|
||||
|
||||
# Cron job
|
||||
|
||||
```bash
|
||||
cp /opt/librenms/dist/librenms.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:
|
||||
> <@= config.site_url =@/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 /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
|
||||
```
|
||||
|
||||
# Set permissions
|
||||
|
||||
```bash
|
||||
chown -R librenms:librenms /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/
|
||||
```
|
||||
|
||||
# Web installer
|
||||
|
||||
Now head to the web installer and follow the on-screen instructions.
|
||||
|
||||
```
|
||||
http://librenms.example.com/install.php
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
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 as root in
|
||||
the librenms directory:
|
||||
|
||||
```bash
|
||||
cd /opt/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](../Support/Performance.md)
|
||||
- [Alerting](../Alerting/index.md)
|
||||
- [Device Groups](../Extensions/Device-Groups.md)
|
||||
- [Auto discovery](../Extensions/Auto-Discovery.md)
|
||||
|
||||
# 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](../General/Callback-Stats-and-Privacy.md) on
|
||||
what it is and how to enable it.
|
||||
|
||||
If you would like to help make LibreNMS better there are [many ways to
|
||||
help](../Support/FAQ.md#a-namefaq9-what-can-i-do-to-helpa). You
|
||||
can also [back LibreNMS on Open Collective](https://t.libren.ms/donations).
|
@@ -1,237 +0,0 @@
|
||||
> 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`.
|
||||
|
||||
!!! warning
|
||||
|
||||
Please note the minimum supported PHP version is @= php.version_min =@.
|
||||
The guide below might not have been updated to reflect it!
|
||||
|
||||
# Install Required Packages
|
||||
|
||||
```bash
|
||||
apt install software-properties-common
|
||||
add-apt-repository universe
|
||||
apt update
|
||||
apt install curl apache2 composer fping git graphviz imagemagick libapache2-mod-php7.2 mariadb-client mariadb-server mtr-tiny nmap php7.2-cli php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-snmp php7.2-xml php7.2-zip python-memcache python-mysqldb rrdtool snmp snmpd whois python3-pip
|
||||
```
|
||||
|
||||
# Add librenms user
|
||||
|
||||
```bash
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms www-data
|
||||
```
|
||||
|
||||
# Download LibreNMS
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git
|
||||
```
|
||||
|
||||
# Set permissions
|
||||
|
||||
```bash
|
||||
chown -R librenms:librenms /opt/librenms
|
||||
chmod 770 /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
|
||||
|
||||
```bash
|
||||
su - librenms
|
||||
./scripts/composer_wrapper.php install --no-dev
|
||||
exit
|
||||
```
|
||||
|
||||
# DB Server
|
||||
|
||||
## Configure MySQL
|
||||
|
||||
```bash
|
||||
systemctl restart mysql
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
> NOTE: Please change the 'password' below to something secure.
|
||||
|
||||
```sql
|
||||
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
|
||||
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
exit
|
||||
```
|
||||
|
||||
```bash
|
||||
vi /etc/mysql/mariadb.conf.d/50-server.cnf
|
||||
```
|
||||
|
||||
Within the `[mysqld]` section please add:
|
||||
|
||||
```bash
|
||||
innodb_file_per_table=1
|
||||
lower_case_table_names=0
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl restart mysql
|
||||
```
|
||||
|
||||
# Web Server
|
||||
|
||||
## Configure PHP
|
||||
|
||||
Ensure date.timezone is set in php.ini to your preferred time zone.
|
||||
See <https://php.net/manual/en/timezones.php> for a list of supported
|
||||
timezones. Valid examples are: "America/New_York",
|
||||
"Australia/Brisbane", "Etc/UTC".
|
||||
|
||||
```bash
|
||||
vi /etc/php/7.2/apache2/php.ini
|
||||
vi /etc/php/7.2/cli/php.ini
|
||||
|
||||
a2enmod php7.2
|
||||
a2dismod mpm_event
|
||||
a2enmod mpm_prefork
|
||||
```
|
||||
|
||||
## Configure 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>
|
||||
</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. `a2dissite 000-default`
|
||||
|
||||
```bash
|
||||
a2ensite librenms.conf
|
||||
a2enmod rewrite
|
||||
systemctl restart apache2
|
||||
```
|
||||
|
||||
# Configure snmpd
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
|
||||
chmod +x /usr/bin/distro
|
||||
systemctl restart snmpd
|
||||
```
|
||||
|
||||
# Cron job
|
||||
|
||||
```bash
|
||||
cp /opt/librenms/dist/librenms.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:
|
||||
> <@= config.site_url =@/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 /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.php
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
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 as root in
|
||||
the librenms directory:
|
||||
|
||||
```bash
|
||||
cd /opt/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](../Support/Performance.md)
|
||||
- [Alerting](../Alerting/index.md)
|
||||
- [Device Groups](../Extensions/Device-Groups.md)
|
||||
- [Auto discovery](../Extensions/Auto-Discovery.md)
|
||||
|
||||
# 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](../General/Callback-Stats-and-Privacy.md) on
|
||||
what it is and how to enable it.
|
||||
|
||||
If you would like to help make LibreNMS better there are [many ways to
|
||||
help](../Support/FAQ.md#a-namefaq9-what-can-i-do-to-helpa). You
|
||||
can also [back LibreNMS on Open Collective](https://t.libren.ms/donations).
|
@@ -1,263 +0,0 @@
|
||||
> 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`.
|
||||
|
||||
!!! warning
|
||||
|
||||
Please note the minimum supported PHP version is @= php.version_min =@.
|
||||
The guide below might not have been updated to reflect it!
|
||||
|
||||
# Install Required Packages
|
||||
|
||||
```bash
|
||||
apt install software-properties-common
|
||||
add-apt-repository universe
|
||||
apt update
|
||||
apt install curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.2-cli php7.2-curl php7.2-fpm php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-snmp php7.2-xml php7.2-zip python-memcache python-mysqldb rrdtool snmp snmpd whois unzip python3-pip
|
||||
```
|
||||
|
||||
# Add librenms user
|
||||
|
||||
```bash
|
||||
useradd librenms -d /opt/librenms -M -r
|
||||
usermod -a -G librenms www-data
|
||||
```
|
||||
|
||||
# Download LibreNMS
|
||||
|
||||
```bash
|
||||
cd /opt
|
||||
git clone https://github.com/librenms/librenms.git
|
||||
```
|
||||
|
||||
# Set permissions
|
||||
|
||||
```bash
|
||||
chown -R librenms:librenms /opt/librenms
|
||||
chmod 770 /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
|
||||
|
||||
```bash
|
||||
su - librenms
|
||||
cd /opt/librenms
|
||||
./scripts/composer_wrapper.php install --no-dev
|
||||
exit
|
||||
```
|
||||
|
||||
# DB Server
|
||||
|
||||
## Configure MySQL
|
||||
|
||||
```bash
|
||||
systemctl restart mysql
|
||||
mysql -uroot -p
|
||||
```
|
||||
|
||||
> NOTE: Please change the 'password' below to something secure.
|
||||
|
||||
```sql
|
||||
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
|
||||
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
exit
|
||||
```
|
||||
|
||||
```bash
|
||||
vi /etc/mysql/mariadb.conf.d/50-server.cnf
|
||||
```
|
||||
|
||||
Within the `[mysqld]` section please add:
|
||||
|
||||
```bash
|
||||
innodb_file_per_table=1
|
||||
lower_case_table_names=0
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl restart mysql
|
||||
```
|
||||
|
||||
# Web Server
|
||||
|
||||
## Configure and Start PHP-FPM
|
||||
|
||||
Ensure date.timezone is set in php.ini to your preferred time zone.
|
||||
See <https://php.net/manual/en/timezones.php> for a list of supported
|
||||
timezones. Valid examples are: "America/New_York",
|
||||
"Australia/Brisbane", "Etc/UTC".
|
||||
Please remember to set the system timezone as well.
|
||||
|
||||
```bash
|
||||
vi /etc/php/7.2/fpm/php.ini
|
||||
vi /etc/php/7.2/cli/php.ini
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl restart php7.2-fpm
|
||||
´´´
|
||||
|
||||
```
|
||||
timedatectl set-timezone Etc/UTC
|
||||
´´´
|
||||
|
||||
## Configure 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;
|
||||
|
||||
proxy_read_timeout 300;
|
||||
proxy_connect_timeout 300;
|
||||
proxy_send_timeout 300;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
}
|
||||
location /api/v0 {
|
||||
try_files $uri $uri/ /api_v0.php?$query_string;
|
||||
}
|
||||
location ~ \.php {
|
||||
include fastcgi.conf;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
|
||||
}
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
systemctl restart nginx
|
||||
```
|
||||
|
||||
# Configure snmpd
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
|
||||
chmod +x /usr/bin/distro
|
||||
systemctl restart snmpd
|
||||
```
|
||||
|
||||
# Cron job
|
||||
|
||||
```bash
|
||||
cp /opt/librenms/dist/librenms.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:
|
||||
> <@= config.site_url =@/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 /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
|
||||
```
|
||||
|
||||
# Set permissions
|
||||
|
||||
```bash
|
||||
chown -R librenms:librenms /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/
|
||||
```
|
||||
|
||||
# Web installer
|
||||
|
||||
Now head to the web installer and follow the on-screen instructions.
|
||||
|
||||
<http://librenms.example.com/install.php>
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
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 as root in
|
||||
the librenms directory:
|
||||
|
||||
```bash
|
||||
cd /opt/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](../Support/Performance.md)
|
||||
- [Alerting](../Alerting/index.md)
|
||||
- [Device Groups](../Extensions/Device-Groups.md)
|
||||
- [Auto discovery](../Extensions/Auto-Discovery.md)
|
||||
|
||||
# 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](../General/Callback-Stats-and-Privacy.md) on
|
||||
what it is and how to enable it.
|
||||
|
||||
If you would like to help make LibreNMS better there are [many ways to
|
||||
help](../Support/FAQ.md#a-namefaq9-what-can-i-do-to-helpa). You
|
||||
can also [back LibreNMS on Open Collective](https://t.libren.ms/donations).
|
16
mkdocs.yml
16
mkdocs.yml
@@ -71,6 +71,14 @@ plugins:
|
||||
'General/Contributing.md': 'Developing/Getting-Started.md'
|
||||
'Installation/CentOS-image.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/index.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installation-CentOS-6-Apache-Nginx.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installation-CentOS-7-Apache.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installation-CentOS-7-Nginx.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installation-Debian-11-Nginx.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installation-Ubuntu-1604-Apache.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installation-Ubuntu-1604-Nginx.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installation-Ubuntu-1804-Apache.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installation-Ubuntu-1804-Nginx.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Installing-LibreNMS.md': 'Installation/Install-LibreNMS.md'
|
||||
'Installation/Ubuntu-image.md': 'Installation/Images.md'
|
||||
'Support/Support-New-OS.md': 'Developing/Support-New-OS.md'
|
||||
@@ -139,14 +147,6 @@ nav:
|
||||
- Other Methods:
|
||||
- Docker: Installation/Docker.md
|
||||
- Virtual machines: Installation/Images.md
|
||||
- Older guides:
|
||||
- RHEL / CentOS 6: Installation/Installation-CentOS-6-Apache-Nginx.md
|
||||
- RHEL / CentOS 7 - Apache: Installation/Installation-CentOS-7-Apache.md
|
||||
- RHEL / CentOS 7 - Nginx: Installation/Installation-CentOS-7-Nginx.md
|
||||
- Ubuntu 16.04 - Apache: Installation/Installation-Ubuntu-1604-Apache.md
|
||||
- Ubuntu 16.04 - Nginx: Installation/Installation-Ubuntu-1604-Nginx.md
|
||||
- Ubuntu 18.04 - Apache: Installation/Installation-Ubuntu-1804-Apache.md
|
||||
- Ubuntu 18.04 - Nginx: Installation/Installation-Ubuntu-1804-Nginx.md
|
||||
- Choosing a release: General/Releases.md
|
||||
- Updating: General/Updating.md
|
||||
|
||||
|
Reference in New Issue
Block a user