====== Instalación Raspberry ======
Descargamos la imagen de raspberry:
https://www.raspberrypi.com/software/operating-systems/
He descargado la lite.
La planchamos en una micro SD que no esté montada:
dd if=2021-10-30-raspios-bullseye-armhf-lite.img of=/dev/mmcblk0 bs=4M
Tarda en mi portátil unos 50 segundos:
466+0 records in
466+0 records out
1954545664 bytes (2.0 GB, 1.8 GiB) copied, 50.1178 s, 39.0 MB/s
real 0m50.120s
user 0m0.001s
sys 0m1.786s
Para poder conectarnos sin necesidad de teclado ni pantalla, le damos IP y configuramos SSH:
Nos ha creado dos particiones:
* boot
* rootfs
===== IP Fija =====
Pondremos una IP del rango admin del EKO, que es 192.168.0.x \\
Por ejemplo 192.168.0.10
Editamos el fichero:
rootfs/etc/dhcpcd.conf
interface eth0
static ip_address=192.168.100.10/24
static routers=192.168.100.1
static domain_name_servers=8.8.8.8
===== Habilitar SSH =====
Creamos un fichero que se llame ssh en la partición boot. Da igual que esté vacio. Podemos hacer:
touch boot/ssh
Metemos la tarjeta en la Raspberry y la arrancamos. Tarda un poco al ser la primera vez porque hace resize de tarjeta, inicia servicios....
Conectamos por ssh y cambiamos timezone:
rm /etc/timezone
ln -s /usr/share/zoneinfo/Europe/Madrid /etc/timezone
timedatectl set-timezone Europe/Madrid
====== Instalación de LibreMS ======
Fuente: https://docs.librenms.org/Installation/Install-LibreNMS/ (para debian 11)
Como root:
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-gmp php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip python3-dotenv python3-pip python3-pymysql python3-redis python3-setuptools python3-systemd rrdtool snmp snmpd whois
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
cd /opt
git clone https://github.com/librenms/librenms.git
chown -R librenms:librenms /opt/librenms
chmod 771 /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
Cambiamos a usuario librenms
su - librenms
Ejecutamos script:
./scripts/composer_wrapper.php install --no-dev
Volvemos a root
exit
Cambiamos timezone en php:
vi /etc/php/7.4/fpm/php.ini
vi /etc/php/7.4/cli/php.ini
En la sección [Date] cambiamos
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
Por:
date.timezone = Europe/Madrid
Configuración BBDD:
vi /etc/mysql/mariadb.conf.d/50-server.cnf
En la sección [mysqld] añadir:
innodb_file_per_table=1
lower_case_table_names=0
Habilitamos mariadb para que arranque al reiniciar y reiniciamos mariadb
systemctl enable mariadb
systemctl restart mariadb
Creamos la BBDD de librenms
mysql -u root
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
Configuración php
mv /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
Cambiar [www] a [librenms]:
Cambiar
user = www-data
group = www-data
Por
user = librenms
group = librenms
Cambiar
listen = /run/php/php7.4-fpm.sock
por
listen = /run/php-fpm-librenms.sock
Configuración nginx:
vi /etc/nginx/sites-enabled/librenms.vhost
Cambiad server_name por el que toque:
server {
listen 80;
server_name librenmseko.lobo99.info;
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;
}
}
rm /etc/nginx/sites-enabled/default
systemctl reload nginx
systemctl restart php7.4-fpm
Activar autocompletado lnms
ln -s /opt/librenms/lnms /usr/bin/lnms
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
Configurar snmpd
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Cambiamos RANDOMSTRINGGOESHERE por public
vi /etc/snmp/snmpd.conf
com2sec readonly default RANDOMSTRINGGOESHERE
por
com2sec readonly default public
Cronjob
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
logrotate:
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Acabamos la instalación vía web. Vamos a la url que hayamos puesto:
http://librenmseko.lobo99.info
Pulsamos en Configure BBDD:
{{:tecnologia:red:librenms01.png|}}
La contraseña es password (la hemos puesto al crear la bbdd) y pulsamos Check Credentials:
{{:tecnologia:red:librenms02.png|}}
Pulsamos Build Database:
{{:tecnologia:red:librenms03.png|}}
Pulsamos el siguiente paso "Create Admin User":
{{:tecnologia:red:librenms04.png|}}
Creamos el usuario:
{{:tecnologia:red:librenms05.png|}}
Pulsamos Finish install:
{{:tecnologia:red:librenms06.png|}}
Aparece esta pantalla. Pulsamos "validate your install" y nos logamos:
{{:tecnologia:red:librenms07.png|}}
Aparecen estos errores y el resto ok:
{{:tecnologia:red:librenms08.png|}}
Lo primero es un warning porque no evidentemente no hemos creado ningun servidor a monitorizar.
La segunda es de tiempo, no sé porque da... Lo arreglamos así desde la raspberry:
sudo mysql -u root
Seleccionamos la BBDD con:
use librenms
MariaDB [(none)]> use librenms
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [librenms]>
Y copiamos los comandos que pone:
SET TIME_ZONE='+00:00';
ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' ;
ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT '1970-01-02 00:00:01' ;
MariaDB [librenms]> SET TIME_ZONE='+00:00';
Query OK, 0 rows affected (0.000 sec)
MariaDB [librenms]> ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' ;
Query OK, 0 rows affected (0.006 sec)
Records: 0 Duplicates: 0 Warnings: 0
MariaDB [librenms]> ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT '1970-01-02 00:00:01' ;
Query OK, 0 rows affected (0.010 sec)
Records: 0 Duplicates: 0 Warnings: 0
Salimos con exit y reiniciamos mariadb:
sudo systemctl restart mariadb
Si ahora vamos a:
http://librenmseko.lobo99.info/validate
Vemos que todo está ok (menos lo de añadir un host):
{{:tecnologia:red:librenms09.png|}}