User Tools

Site Tools


tecnologia:red:monitorizacion

This is an old revision of the document!


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.0.10/24
static routers=192.168.0.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

Activra 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:

La contraseña es password (la hemos puesto al crear la bbdd) y pulsamos Check Credentials:

Pulsamos Build Database:

Pulsamos el siguiente paso “Create Admin User”:

Creamos el usuario:

Pulsamos Finish install:

Aparece esta pantalla. Pulsamos “validate your install” y nos logamos:

Aparecen estos errores y el resto ok:

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/monitorizacion.1637626230.txt.gz · Last modified: by jose