====== 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|}}