How to
Linux DB
Linux Postgress Installation for Netbox
sudo apt update
sudo apt install -y postgresql
Before continuing, verify that you have installed PostgreSQL 12 or later:
psql -V
Database Creation
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. Start by invoking the PostgreSQL shell as the system Postgres user.
sudo -u postgres psql
Within the shell, enter the following commands to create the database and user (role), substituting your own value for the password:
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'choserandompwd';
ALTER DATABASE netbox OWNER TO netbox;
-- the next two commands are needed on PostgreSQL 15 and later
\connect netbox;
GRANT CREATE ON SCHEMA public TO netbox
Once complete, enter \q to exit the PostgreSQL shell.
Verify Service Status
You can verify that authentication works by executing the psql command and passing the configured username and password. (Replace localhost with your database server if using a remote database.)
$ psql --username netbox --password --host localhost netbox
Password for user netbox:
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
netbox=> \conninfo
You are connected to database "netbox" as user "netbox" on host "localhost" (address "127.0.0.1") at port "5432".
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
netbox=> \q
If successful, you will enter a netbox prompt. Type \conninfo to confirm your connection, or type \q to exit.
Redis installation Netbox
Redis is an in-memory key-value store which NetBox employs for caching and queuing. This section entails the installation and configuration of a local Redis instance. If you already have a Redis service in place, skip to the next section.
sudo apt install -y redis-server
Before continuing, verify that your installed version of Redis is at least v4.0:
redis-server -v
You may wish to modify the Redis configuration at /etc/redis.conf or /etc/redis/redis.conf, however in most cases the default configuration is sufficient.
Verify Service Status
Use the redis-cli utility to ensure the Redis service is functional:
redis-cli ping
If successful, you should receive a PONG response from the server.
ZFS
Replace bad disk on ZFS pool
Check the status of the pool
root@pve:~# zpool status
pool: Mirror1
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
scan: resilvered 3.16G in 00:14:53 with 0 errors on Sat Jun 1 04:46:50 2024
config:
NAME STATE READ WRITE CKSUM
Mirror1 DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
55ee9c9d-1a2e-412d-827e-1875474cdd90 ONLINE 0 0 0
12500327251565222082 UNAVAIL 0 0 0 was /dev/disk/by-partuuid/52151b98-6ccc-4bfd-8318-4e72ced09a5f
52151b98-6ccc-4bfd-8318-4e72ced09a5f
Put offline the bad drive
root@pve:~# zpool offline Mirror1 12500327251565222082
root@pve:~# zpool status
pool: Mirror1
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scan: resilvered 2.50G in 00:11:31 with 0 errors on Tue Jun 4 18:33:06 2024
config:
NAME STATE READ WRITE CKSUM
Mirror1 DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
55ee9c9d-1a2e-412d-827e-1875474cdd90 ONLINE 0 0 0
52151b98-6ccc-4bfd-8318-4e72ced09a5f OFFLINE 0 0 0
Remove drive and insert new one, this case its device /dev/sdc
root@pve:~# lsblk | grep sd
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 1G 0 part /boot/efi
└─sda3 8:3 0 110.8G 0 part
sdb 8:16 0 111.8G 0 disk
└─sdb1 8:17 0 111.8G 0 part /mnt/data
sdc 8:32 0 1.8T 0 disk
sdd 8:48 0 7.3T 0 disk
├─sdd1 8:49 0 7.3T 0 part
└─sdd9 8:57 0 8M 0 part
sde 8:64 0 1.8T 0 disk
├─sde1 8:65 0 2G 0 part
└─sde2 8:66 0 1.8T 0 part
sdf 8:80 0 7.3T 0 disk
├─sdf1 8:81 0 7.3T 0 part
└─sdf9 8:89 0 8M 0 part
Retrieve disk ID, our drive is number 9
root@pve:~# ls -1 /dev/disk/by-id/ | grep ata
ata-ADATA_SU650_2M1629QJKNU1
ata-ADATA_SU650_2M1629QJKNU1-part1
ata-ADATA_SU650_4M10277WTRC7
ata-ADATA_SU650_4M10277WTRC7-part1
ata-ADATA_SU650_4M10277WTRC7-part2
ata-ADATA_SU650_4M10277WTRC7-part3
ata-ST2000DM001-9YN164_Z1E1B9AK
ata-ST2000DM006-2DM164_Z4Z806BP
ata-ST2000DM006-2DM164_Z4Z806BP-part1
ata-ST2000DM006-2DM164_Z4Z806BP-part2
ata-ST8000DM004-2CX188_ZR14EZCZ
ata-ST8000DM004-2CX188_ZR14EZCZ-part1
ata-ST8000DM004-2CX188_ZR14EZCZ-part9
ata-ST8000DM004-2U9188_ZR12SA93
ata-ST8000DM004-2U9188_ZR12SA93-part1
ata-ST8000DM004-2U9188_ZR12SA93-part9
replace mirrir old device with new device by id and wait for resilver (could take long)
root@pve:~# zpool replace Mirror1 52151b98-6ccc-4bfd-8318-4e72ced09a5f ata-ST2000DM001-9YN164_Z1E1B9AK
root@pve:~# zpool status Mirror1
pool: Mirror1
state: DEGRADED
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Tue Jun 4 18:47:00 2024
246G / 246G scanned, 211M / 246G issued at 106M/s
195M resilvered, 0.08% done, 00:39:46 to go
config:
NAME STATE READ WRITE CKSUM
Mirror1 DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
55ee9c9d-1a2e-412d-827e-1875474cdd90 ONLINE 0 0 0
replacing-1 DEGRADED 0 0 0
52151b98-6ccc-4bfd-8318-4e72ced09a5f OFFLINE 0 0 0
ata-ST2000DM001-9YN164_Z1E1B9AK ONLINE 0 0 0 (resilvering)