# Instalar LibreNMS en Debian12

LibreNMS es una plataforma de monitoreo de redes de código abierto que utiliza varios servicios como Apache, PHP, MySQL, y SNMP para funcionar. A continuación te indico los pasos para hacer una instalación estándar:

### **1. Actualizar el sistema**

Primero, asegúrate de que tu sistema esté actualizado:

```bash
sudo apt update && sudo apt upgrade -y
```

### **2. Instalar dependencias necesarias**

LibreNMS requiere varias dependencias como PHP, MariaDB (o MySQL), Nginx o Apache, y más.

##### **Instalar Apache**

Si decides usar **Apache** como servidor web, instálalo de la siguiente manera:

```
sudo apt install apache2
```

##### **Instalar PHP y módulos necesarios**

LibreNMS necesita **PHP** (versión 8.1 o superior). Instala PHP y los módulos requeridos:

```
sudo apt install php php-cli php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-json php-snmp php-gmp -y
```

##### **Instalar MariaDB**

Instala **MariaDB**

```
sudo apt install mariadb-server mariadb-client -y
```

##### **Instalar SNMP y RRDTool**

LibreNMS utiliza **SNMP** y **RRDTool** para recopilar y generar las gráficas de los datos recopilados

```
sudo apt install snmp snmpd rrdtool fping git curl -y
```

### **3. Configurar MariaDB**

Inicia la consola de **MariaDB** y asegúrate de configurar una contraseña segura para el usuario root:

```
sudo mysql_secure_installation
```

Luego, crea una base de datos y un usuario para LibreNMS:

```
sudo mysql -u root -p
```

Dentro de la consola de MariaDB, ejecuta los siguientes comandos para crear la base de datos:

```sql
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```

### **4. Crear usuario LibreNMS**

Crea un usuario dedicado para LibreNMS:

```
sudo useradd librenms -d /opt/librenms -M -r -s /bin/bash
```

### **5. Clonar el repositorio de LibreNMS**

Ahora, clona el repositorio de LibreNMS en /opt:

```
sudo git clone https://github.com/librenms/librenms.git /opt/librenms
```

### **6. Establecer permisos**

Cambia los permisos de los archivos y directorios necesarios:

```
sudo chown -R librenms:librenms /opt/librenms
sudo chmod 770 /opt/librenms
```

### **7. Configurar Apache**

Crea una configuración virtual host para Apache:

```
sudo nano /etc/apache2/sites-available/librenms.conf
```

Agrega la siguiente configuración:

```bash
<VirtualHost *:80>
  DocumentRoot /opt/librenms/html/
  ServerName tu_dominio_o_ip

  AllowEncodedSlashes NoDecode
  <Directory "/opt/librenms/html/">
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/librenms_error.log
  CustomLog ${APACHE_LOG_DIR}/librenms_access.log combined
</VirtualHost>
```

Habilita el sitio y los módulos necesarios en Apache:

```
sudo a2ensite librenms.conf
sudo a2enmod rewrite
sudo a2enmod php
sudo systemctl restart apache2
```

### **8. Configurar SNMP**

Edita la configuración de SNMP:

```
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.conf
```

Cambia los datos de la comunidad, contacto y ubicación, si es necesario (desde luego es muy recomendable). Luego, reinicia el servicio SNMP:

```
sudo systemctl enable snmpd
sudo systemctl restart snmpd
```

### **9. Completar la instalación vía web**

Accede a tu navegador y dirígete a http://tu\_dominio\_o\_ip/install.php. Sigue las instrucciones para completar la instalación.

### **10. Configuración final**

Una vez que hayas completado la instalación desde la interfaz web, ejecuta los siguientes comandos:

```
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
```

Esto asegura que los trabajos cron y la rotación de logs estén configurados correctamente.

: