Observium

Published: Sep 17, 2024 by Isaac Johnson

Observium has been on my to-do list since this 2023 article brought it to my attention.

It has a great community edition we can self install. It’s open-source but the docs all speak of ‘svn’ and the mirrors I find on Github are forked over (e.g. here) so it could just be subversion

Today we’ll set it up on an Ubuntu host as well as Docker with a real MariaDB backend and lastly with Docker-compose. We may even get into a little ansible to spin up SNMPD on Linux hosts.

Let’s get started!

Observium Install

The Community edition will install a local MySQL

builder@DESKTOP-QADGF36:~/Workspaces/jekyll-blog$ wget http://www.observium.org/observium_installscript.sh
--2024-09-09 14:34:40--  http://www.observium.org/observium_installscript.sh
Resolving www.observium.org (www.observium.org)... 144.76.112.154
Connecting to www.observium.org (www.observium.org)|144.76.112.154|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.observium.org/observium_installscript.sh [following]
--2024-09-09 14:34:41--  https://www.observium.org/observium_installscript.sh
Connecting to www.observium.org (www.observium.org)|144.76.112.154|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22817 (22K) [text/x-sh]
Saving to: ‘observium_installscript.sh’

observium_installscript.sh         100%[==============================================================>]  22.28K  --.-KB/s    in 0.1s

2024-09-09 14:34:41 (180 KB/s) - ‘observium_installscript.sh’ saved [22817/22817]

builder@DESKTOP-QADGF36:~/Workspaces/jekyll-blog$ chmod +x observium_installscript.sh
builder@DESKTOP-QADGF36:~/Workspaces/jekyll-blog$ ./observium_installscript.sh
ERROR: You must be a root user
builder@DESKTOP-QADGF36:~/Workspaces/jekyll-blog$ sudo ./observium_installscript.sh
[sudo] password for builder:
  ___  _                         _
 / _ \| |__  ___  ___ _ ____   _(_)_   _ _ __ ___
| | | | '_ \/ __|/ _ \ '__\ \ / / | | | | '_ ` _ \
| |_| | |_) \__ \  __/ |   \ V /| | |_| | | | | | |
 \___/|_.__/|___/\___|_|    \_/ |_|\__,_|_| |_| |_|

Welcome to Observium automatic installscript v0.2.5

Please choose which version of Observium you would like to install

1. Observium Community Edition
2. Observium Pro/Ent Edition stable (requires account at https://www.observium.org/subs/)
3. Observium Pro/Ent Edition rolling (requires account at https://www.observium.org/subs/)
4. Install the UNIX-Agent
5. Install the SNMPD (snmpd-config will be overwritten)
(1-5):1
you choose 1

 Requested installing Observium CE

 [*] No MySQL server detected in this server, installing MySQL...
Choose a MySQL root password
 [*] Beginning package installation, this might take up to 30min
 [*] We are on Ubuntu 20.04 LTS, installing packages...
'universe' distribution component is already enabled for all sources.
'multiverse' distribution component is already enabled for all sources.
49 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.releases.hashicorp.com focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AA16FCBCA621E701
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.cloud.google.com/apt cloud-sdk InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C0BA5CE6DC6315A3
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04  InRelease: The following signatures were invalid: EXPKEYSIG 4D64390375060AA4 devel:kubic OBS Project <devel:kubic@build.opensuse.org>
W: Failed to fetch https://apt.releases.hashicorp.com/dists/focal/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AA16FCBCA621E701
W: Failed to fetch http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/InRelease  The following signatures were invalid: EXPKEYSIG 4D64390375060AA4 devel:kubic OBS Project <devel:kubic@build.opensuse.org>
W: Failed to fetch https://packages.cloud.google.com/apt/dists/cloud-sdk/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C0BA5CE6DC6315A3
W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
mtr-tiny is already the newest version (0.93-1).
mtr-tiny set to manually installed.
graphviz is already the newest version (2.42.2-3build2).
imagemagick is already the newest version (8:6.9.10.23+dfsg-2.1ubuntu11.10).
imagemagick set to manually installed.
The following packages were automatically installed and are no longer required:
  aspnetcore-runtime-3.1 aspnetcore-targeting-pack-3.1 aspnetcore-targeting-pack-6.0 dotnet-apphost-pack-3.1 dotnet-apphost-pack-6.0
  dotnet-targeting-pack-3.1 dotnet-targeting-pack-6.0 fluent-bit libappstream-glib8 libdbus-glib-1-2 libfwupdplugin1 liblttng-ust-ctl4
  liblttng-ust0 libxmlb1 mariadb-common python3-crcmod td-agent-bit
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  apache2-bin apache2-data freeipmi-common libaprutil1-dbd-sqlite3 libaprutil1-ldap libcgi-fast-perl libcgi-pm-perl libdbi1
  libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libfreeipmi17 libhtml-template-perl liblua5.2-0 libmecab2 libopenipmi0
  librrd8 libserf-1-1 libsvn1 libutf8proc2 libvirt0 mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0
  mysql-server-8.0 mysql-server-core-8.0 openipmi php-apcu-bc php-common php-xml php7.4-common php7.4-readline php7.4-xml ssl-cert
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom freeipmi-tools libipc-sharedcache-perl libvirt-daemon mailx tinyca
  python3-mysqldb-dbg python-pymysql-doc librrds-perl openssl-blacklist db5.3-util libapache2-mod-svn subversion-tools
The following packages will be REMOVED:
  mariadb-client-core-10.3
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data fping freeipmi-common ipmitool libapache2-mod-php7.4 libaprutil1-dbd-sqlite3 libaprutil1-ldap
  libcgi-fast-perl libcgi-pm-perl libdbi1 libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libfreeipmi17 libhtml-template-perl
  liblua5.2-0 libmecab2 libopenipmi0 librrd8 libserf-1-1 libsvn1 libutf8proc2 libvirt-clients libvirt0 mecab-ipadic mecab-ipadic-utf8
  mecab-utils mysql-client mysql-client-8.0 mysql-client-core-8.0 mysql-server mysql-server-8.0 mysql-server-core-8.0 openipmi php-apcu
  php-apcu-bc php-common php-pear php-xml php7.4-bcmath php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-json php7.4-mbstring
  php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml python-is-python3 python3-mysqldb python3-pymysql rrdtool snmp ssl-cert
  subversion whois
0 upgraded, 60 newly installed, 1 to remove and 49 not upgraded.
Need to get 50.2 MB of archives.
After this operation, 349 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.1-4ubuntu2.2 [10.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libaprutil1-ldap amd64 1.6.1-4ubuntu2.2 [8752 B]
Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 liblua5.2-0 amd64 5.2.4-1.1build3 [106 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 apache2-bin amd64 2.4.41-4ubuntu3.21 [1189 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 apache2-data all 2.4.41-4ubuntu3.21 [159 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 apache2 amd64 2.4.41-4ubuntu3.21 [95.6 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 freeipmi-common all 1.6.4-3ubuntu1.1 [179 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libfreeipmi17 amd64 1.6.4-3ubuntu1.1 [875 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 ipmitool amd64 1.8.18-8ubuntu0.2 [401 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-client-core-8.0 amd64 8.0.39-0ubuntu0.20.04.1 [5088 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-client-8.0 amd64 8.0.39-0ubuntu0.20.04.1 [22.0 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal/main amd64 libevent-core-2.1-7 amd64 2.1.11-stable-1 [89.1 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal/main amd64 libevent-pthreads-2.1-7 amd64 2.1.11-stable-1 [7372 B]
Get:14 http://archive.ubuntu.com/ubuntu focal/main amd64 libmecab2 amd64 0.996-10build1 [233 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-server-core-8.0 amd64 8.0.39-0ubuntu0.20.04.1 [22.8 MB]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-server-8.0 amd64 8.0.39-0ubuntu0.20.04.1 [1326 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal/main amd64 php-common all 2:75 [11.9 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-common amd64 7.4.3-4ubuntu2.23 [984 kB]
Get:19 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-json amd64 7.4.3-4ubuntu2.23 [19.2 kB]
Get:20 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-opcache amd64 7.4.3-4ubuntu2.23 [198 kB]
Get:21 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-readline amd64 7.4.3-4ubuntu2.23 [12.7 kB]
Get:22 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-cli amd64 7.4.3-4ubuntu2.23 [1427 kB]
Get:23 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libapache2-mod-php7.4 amd64 7.4.3-4ubuntu2.23 [1368 kB]
Get:24 http://archive.ubuntu.com/ubuntu focal/universe amd64 php-apcu amd64 5.1.18+4.0.11-1build1 [41.8 kB]
Get:25 http://archive.ubuntu.com/ubuntu focal/universe amd64 php-apcu-bc amd64 1.0.5-2build1 [8956 B]
Get:26 http://archive.ubuntu.com/ubuntu focal/universe amd64 fping amd64 4.2-1 [32.4 kB]
Get:27 http://archive.ubuntu.com/ubuntu focal/main amd64 libcgi-pm-perl all 4.46-1 [186 kB]
Get:28 http://archive.ubuntu.com/ubuntu focal/main amd64 libfcgi-perl amd64 0.79-1 [33.1 kB]
Get:29 http://archive.ubuntu.com/ubuntu focal/main amd64 libcgi-fast-perl all 1:2.15-1 [10.5 kB]
Get:30 http://archive.ubuntu.com/ubuntu focal/main amd64 libdbi1 amd64 0.9.0-5 [27.3 kB]
Get:31 http://archive.ubuntu.com/ubuntu focal/main amd64 libhtml-template-perl all 2.97-1 [59.0 kB]
Get:32 http://archive.ubuntu.com/ubuntu focal/main amd64 libopenipmi0 amd64 2.0.27-0ubuntu2 [456 kB]
Get:33 http://archive.ubuntu.com/ubuntu focal/main amd64 librrd8 amd64 1.7.2-3build2 [160 kB]
Get:34 http://archive.ubuntu.com/ubuntu focal/universe amd64 libserf-1-1 amd64 1.3.9-8build1 [45.2 kB]
Get:35 http://archive.ubuntu.com/ubuntu focal/universe amd64 libutf8proc2 amd64 2.5.0-1 [50.0 kB]
Get:36 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libsvn1 amd64 1.13.0-3ubuntu0.2 [1260 kB]
Get:37 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libvirt0 amd64 6.0.0-0ubuntu8.20 [1448 kB]
Get:38 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libvirt-clients amd64 6.0.0-0ubuntu8.20 [344 kB]
Get:39 http://archive.ubuntu.com/ubuntu focal/main amd64 mecab-utils amd64 0.996-10build1 [4912 B]
Get:40 http://archive.ubuntu.com/ubuntu focal/main amd64 mecab-ipadic all 2.7.0-20070801+main-2.1 [6714 kB]
Get:41 http://archive.ubuntu.com/ubuntu focal/main amd64 mecab-ipadic-utf8 all 2.7.0-20070801+main-2.1 [4380 B]
Get:42 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-client all 8.0.39-0ubuntu0.20.04.1 [9364 B]
Get:43 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-server all 8.0.39-0ubuntu0.20.04.1 [9480 B]
Get:44 http://archive.ubuntu.com/ubuntu focal/main amd64 openipmi amd64 2.0.27-0ubuntu2 [165 kB]
Get:45 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-xml amd64 7.4.3-4ubuntu2.23 [98.9 kB]
Get:46 http://archive.ubuntu.com/ubuntu focal/main amd64 php-xml all 2:7.4+75 [2028 B]
Get:47 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php-pear all 1:1.10.9+submodules+notgz-1ubuntu0.20.04.3 [287 kB]
Get:48 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 php7.4-bcmath amd64 7.4.3-4ubuntu2.23 [15.1 kB]
Get:49 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-curl amd64 7.4.3-4ubuntu2.23 [31.2 kB]
Get:50 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-gd amd64 7.4.3-4ubuntu2.23 [28.2 kB]
Get:51 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 php7.4-mbstring amd64 7.4.3-4ubuntu2.23 [396 kB]
Get:52 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-mysql amd64 7.4.3-4ubuntu2.23 [121 kB]
Get:53 http://archive.ubuntu.com/ubuntu focal/main amd64 python-is-python3 all 3.8.2-4 [2364 B]
Get:54 http://archive.ubuntu.com/ubuntu focal/main amd64 python3-mysqldb amd64 1.4.4-2build1 [44.9 kB]
Get:55 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 python3-pymysql all 0.9.3-2ubuntu3.1 [39.1 kB]
Get:56 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 snmp amd64 5.8+dfsg-2ubuntu2.9 [167 kB]
Get:57 http://archive.ubuntu.com/ubuntu focal/main amd64 ssl-cert all 1.0.39 [17.0 kB]
Get:58 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 subversion amd64 1.13.0-3ubuntu0.2 [824 kB]
Get:59 http://archive.ubuntu.com/ubuntu focal/main amd64 whois amd64 5.5.6 [44.7 kB]
Get:60 http://archive.ubuntu.com/ubuntu focal/main amd64 rrdtool amd64 1.7.2-3build2 [376 kB]
Fetched 50.2 MB in 4s (12.7 MB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 239415 files and directories currently installed.)
Removing mariadb-client-core-10.3 (1:10.3.39-0ubuntu0.20.04.2) ...
Selecting previously unselected package libaprutil1-dbd-sqlite3:amd64.
(Reading database ... 239402 files and directories currently installed.)
Preparing to unpack .../00-libaprutil1-dbd-sqlite3_1.6.1-4ubuntu2.2_amd64.deb ...
Unpacking libaprutil1-dbd-sqlite3:amd64 (1.6.1-4ubuntu2.2) ...
Selecting previously unselected package libaprutil1-ldap:amd64.
Preparing to unpack .../01-libaprutil1-ldap_1.6.1-4ubuntu2.2_amd64.deb ...
Unpacking libaprutil1-ldap:amd64 (1.6.1-4ubuntu2.2) ...
Selecting previously unselected package liblua5.2-0:amd64.
Preparing to unpack .../02-liblua5.2-0_5.2.4-1.1build3_amd64.deb ...
Unpacking liblua5.2-0:amd64 (5.2.4-1.1build3) ...
Selecting previously unselected package apache2-bin.
Preparing to unpack .../03-apache2-bin_2.4.41-4ubuntu3.21_amd64.deb ...
Unpacking apache2-bin (2.4.41-4ubuntu3.21) ...
Selecting previously unselected package apache2-data.
Preparing to unpack .../04-apache2-data_2.4.41-4ubuntu3.21_all.deb ...
Unpacking apache2-data (2.4.41-4ubuntu3.21) ...
Selecting previously unselected package apache2.
Preparing to unpack .../05-apache2_2.4.41-4ubuntu3.21_amd64.deb ...
Unpacking apache2 (2.4.41-4ubuntu3.21) ...
Selecting previously unselected package freeipmi-common.
Preparing to unpack .../06-freeipmi-common_1.6.4-3ubuntu1.1_all.deb ...
Unpacking freeipmi-common (1.6.4-3ubuntu1.1) ...
Selecting previously unselected package libfreeipmi17.
Preparing to unpack .../07-libfreeipmi17_1.6.4-3ubuntu1.1_amd64.deb ...
Unpacking libfreeipmi17 (1.6.4-3ubuntu1.1) ...
Selecting previously unselected package ipmitool.
Preparing to unpack .../08-ipmitool_1.8.18-8ubuntu0.2_amd64.deb ...
Unpacking ipmitool (1.8.18-8ubuntu0.2) ...
Selecting previously unselected package mysql-client-core-8.0.
Preparing to unpack .../09-mysql-client-core-8.0_8.0.39-0ubuntu0.20.04.1_amd64.deb ...
Unpacking mysql-client-core-8.0 (8.0.39-0ubuntu0.20.04.1) ...
Selecting previously unselected package mysql-client-8.0.
Preparing to unpack .../10-mysql-client-8.0_8.0.39-0ubuntu0.20.04.1_amd64.deb ...
Unpacking mysql-client-8.0 (8.0.39-0ubuntu0.20.04.1) ...
Selecting previously unselected package libevent-core-2.1-7:amd64.
Preparing to unpack .../11-libevent-core-2.1-7_2.1.11-stable-1_amd64.deb ...
Unpacking libevent-core-2.1-7:amd64 (2.1.11-stable-1) ...
Selecting previously unselected package libevent-pthreads-2.1-7:amd64.
Preparing to unpack .../12-libevent-pthreads-2.1-7_2.1.11-stable-1_amd64.deb ...
Unpacking libevent-pthreads-2.1-7:amd64 (2.1.11-stable-1) ...
Selecting previously unselected package libmecab2:amd64.
Preparing to unpack .../13-libmecab2_0.996-10build1_amd64.deb ...
Unpacking libmecab2:amd64 (0.996-10build1) ...
Selecting previously unselected package mysql-server-core-8.0.
Preparing to unpack .../14-mysql-server-core-8.0_8.0.39-0ubuntu0.20.04.1_amd64.deb ...
Unpacking mysql-server-core-8.0 (8.0.39-0ubuntu0.20.04.1) ...
Selecting previously unselected package mysql-server-8.0.
Preparing to unpack .../15-mysql-server-8.0_8.0.39-0ubuntu0.20.04.1_amd64.deb ...
Unpacking mysql-server-8.0 (8.0.39-0ubuntu0.20.04.1) ...
Selecting previously unselected package php-common.
Preparing to unpack .../16-php-common_2%3a75_all.deb ...
Unpacking php-common (2:75) ...
Selecting previously unselected package php7.4-common.
Preparing to unpack .../17-php7.4-common_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-common (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php7.4-json.
Preparing to unpack .../18-php7.4-json_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-json (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php7.4-opcache.
Preparing to unpack .../19-php7.4-opcache_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-opcache (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php7.4-readline.
Preparing to unpack .../20-php7.4-readline_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-readline (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php7.4-cli.
Preparing to unpack .../21-php7.4-cli_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-cli (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package libapache2-mod-php7.4.
Preparing to unpack .../22-libapache2-mod-php7.4_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking libapache2-mod-php7.4 (7.4.3-4ubuntu2.23) ...
Setting up php-common (2:75) ...
Created symlink /etc/systemd/system/timers.target.wants/phpsessionclean.timer → /lib/systemd/system/phpsessionclean.timer.
Selecting previously unselected package php-apcu.
(Reading database ... 240490 files and directories currently installed.)
Preparing to unpack .../00-php-apcu_5.1.18+4.0.11-1build1_amd64.deb ...
Unpacking php-apcu (5.1.18+4.0.11-1build1) ...
Selecting previously unselected package php-apcu-bc.
Preparing to unpack .../01-php-apcu-bc_1.0.5-2build1_amd64.deb ...
Unpacking php-apcu-bc (1.0.5-2build1) ...
Selecting previously unselected package fping.
Preparing to unpack .../02-fping_4.2-1_amd64.deb ...
Unpacking fping (4.2-1) ...
Selecting previously unselected package libcgi-pm-perl.
Preparing to unpack .../03-libcgi-pm-perl_4.46-1_all.deb ...
Unpacking libcgi-pm-perl (4.46-1) ...
Selecting previously unselected package libfcgi-perl.
Preparing to unpack .../04-libfcgi-perl_0.79-1_amd64.deb ...
Unpacking libfcgi-perl (0.79-1) ...
Selecting previously unselected package libcgi-fast-perl.
Preparing to unpack .../05-libcgi-fast-perl_1%3a2.15-1_all.deb ...
Unpacking libcgi-fast-perl (1:2.15-1) ...
Selecting previously unselected package libdbi1:amd64.
Preparing to unpack .../06-libdbi1_0.9.0-5_amd64.deb ...
Unpacking libdbi1:amd64 (0.9.0-5) ...
Selecting previously unselected package libhtml-template-perl.
Preparing to unpack .../07-libhtml-template-perl_2.97-1_all.deb ...
Unpacking libhtml-template-perl (2.97-1) ...
Selecting previously unselected package libopenipmi0.
Preparing to unpack .../08-libopenipmi0_2.0.27-0ubuntu2_amd64.deb ...
Unpacking libopenipmi0 (2.0.27-0ubuntu2) ...
Selecting previously unselected package librrd8:amd64.
Preparing to unpack .../09-librrd8_1.7.2-3build2_amd64.deb ...
Unpacking librrd8:amd64 (1.7.2-3build2) ...
Selecting previously unselected package libserf-1-1:amd64.
Preparing to unpack .../10-libserf-1-1_1.3.9-8build1_amd64.deb ...
Unpacking libserf-1-1:amd64 (1.3.9-8build1) ...
Selecting previously unselected package libutf8proc2:amd64.
Preparing to unpack .../11-libutf8proc2_2.5.0-1_amd64.deb ...
Unpacking libutf8proc2:amd64 (2.5.0-1) ...
Selecting previously unselected package libsvn1:amd64.
Preparing to unpack .../12-libsvn1_1.13.0-3ubuntu0.2_amd64.deb ...
Unpacking libsvn1:amd64 (1.13.0-3ubuntu0.2) ...
Selecting previously unselected package libvirt0:amd64.
Preparing to unpack .../13-libvirt0_6.0.0-0ubuntu8.20_amd64.deb ...
Unpacking libvirt0:amd64 (6.0.0-0ubuntu8.20) ...
Selecting previously unselected package libvirt-clients.
Preparing to unpack .../14-libvirt-clients_6.0.0-0ubuntu8.20_amd64.deb ...
Unpacking libvirt-clients (6.0.0-0ubuntu8.20) ...
Selecting previously unselected package mecab-utils.
Preparing to unpack .../15-mecab-utils_0.996-10build1_amd64.deb ...
Unpacking mecab-utils (0.996-10build1) ...
Selecting previously unselected package mecab-ipadic.
Preparing to unpack .../16-mecab-ipadic_2.7.0-20070801+main-2.1_all.deb ...
Unpacking mecab-ipadic (2.7.0-20070801+main-2.1) ...
Selecting previously unselected package mecab-ipadic-utf8.
Preparing to unpack .../17-mecab-ipadic-utf8_2.7.0-20070801+main-2.1_all.deb ...
Unpacking mecab-ipadic-utf8 (2.7.0-20070801+main-2.1) ...
Selecting previously unselected package mysql-client.
Preparing to unpack .../18-mysql-client_8.0.39-0ubuntu0.20.04.1_all.deb ...
Unpacking mysql-client (8.0.39-0ubuntu0.20.04.1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../19-mysql-server_8.0.39-0ubuntu0.20.04.1_all.deb ...
Unpacking mysql-server (8.0.39-0ubuntu0.20.04.1) ...
Selecting previously unselected package openipmi.
Preparing to unpack .../20-openipmi_2.0.27-0ubuntu2_amd64.deb ...
Unpacking openipmi (2.0.27-0ubuntu2) ...
Selecting previously unselected package php7.4-xml.
Preparing to unpack .../21-php7.4-xml_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-xml (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php-xml.
Preparing to unpack .../22-php-xml_2%3a7.4+75_all.deb ...
Unpacking php-xml (2:7.4+75) ...
Selecting previously unselected package php-pear.
Preparing to unpack .../23-php-pear_1%3a1.10.9+submodules+notgz-1ubuntu0.20.04.3_all.deb ...
Unpacking php-pear (1:1.10.9+submodules+notgz-1ubuntu0.20.04.3) ...
Selecting previously unselected package php7.4-bcmath.
Preparing to unpack .../24-php7.4-bcmath_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-bcmath (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php7.4-curl.
Preparing to unpack .../25-php7.4-curl_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-curl (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php7.4-gd.
Preparing to unpack .../26-php7.4-gd_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-gd (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php7.4-mbstring.
Preparing to unpack .../27-php7.4-mbstring_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-mbstring (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package php7.4-mysql.
Preparing to unpack .../28-php7.4-mysql_7.4.3-4ubuntu2.23_amd64.deb ...
Unpacking php7.4-mysql (7.4.3-4ubuntu2.23) ...
Selecting previously unselected package python-is-python3.
Preparing to unpack .../29-python-is-python3_3.8.2-4_all.deb ...
Unpacking python-is-python3 (3.8.2-4) ...
Selecting previously unselected package python3-mysqldb.
Preparing to unpack .../30-python3-mysqldb_1.4.4-2build1_amd64.deb ...
Unpacking python3-mysqldb (1.4.4-2build1) ...
Selecting previously unselected package python3-pymysql.
Preparing to unpack .../31-python3-pymysql_0.9.3-2ubuntu3.1_all.deb ...
Unpacking python3-pymysql (0.9.3-2ubuntu3.1) ...
Selecting previously unselected package snmp.
Preparing to unpack .../32-snmp_5.8+dfsg-2ubuntu2.9_amd64.deb ...
Unpacking snmp (5.8+dfsg-2ubuntu2.9) ...
Selecting previously unselected package ssl-cert.
Preparing to unpack .../33-ssl-cert_1.0.39_all.deb ...
Unpacking ssl-cert (1.0.39) ...
Selecting previously unselected package subversion.
Preparing to unpack .../34-subversion_1.13.0-3ubuntu0.2_amd64.deb ...
Unpacking subversion (1.13.0-3ubuntu0.2) ...
Selecting previously unselected package whois.
Preparing to unpack .../35-whois_5.5.6_amd64.deb ...
Unpacking whois (5.5.6) ...
Selecting previously unselected package rrdtool.
Preparing to unpack .../36-rrdtool_1.7.2-3build2_amd64.deb ...
Unpacking rrdtool (1.7.2-3build2) ...
Setting up libmecab2:amd64 (0.996-10build1) ...
Setting up mysql-client-core-8.0 (8.0.39-0ubuntu0.20.04.1) ...
Setting up php7.4-common (7.4.3-4ubuntu2.23) ...

Creating config file /etc/php/7.4/mods-available/calendar.ini with new version

Creating config file /etc/php/7.4/mods-available/ctype.ini with new version

Creating config file /etc/php/7.4/mods-available/exif.ini with new version

Creating config file /etc/php/7.4/mods-available/fileinfo.ini with new version

Creating config file /etc/php/7.4/mods-available/ffi.ini with new version

Creating config file /etc/php/7.4/mods-available/ftp.ini with new version

Creating config file /etc/php/7.4/mods-available/gettext.ini with new version

Creating config file /etc/php/7.4/mods-available/iconv.ini with new version

Creating config file /etc/php/7.4/mods-available/pdo.ini with new version

Creating config file /etc/php/7.4/mods-available/phar.ini with new version

Creating config file /etc/php/7.4/mods-available/posix.ini with new version

Creating config file /etc/php/7.4/mods-available/shmop.ini with new version

Creating config file /etc/php/7.4/mods-available/sockets.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvmsg.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvsem.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvshm.ini with new version

Creating config file /etc/php/7.4/mods-available/tokenizer.ini with new version
Setting up libdbi1:amd64 (0.9.0-5) ...#########################################.......................................................]
Setting up whois (5.5.6) ...###################################################.......................................................]
Setting up php7.4-curl (7.4.3-4ubuntu2.23) ...#################################.......................................................]
Progress: [ 53%] [#############################################################.......................................................]
Creating config file /etc/php/7.4/mods-available/curl.ini with new version######.......................................................]
Setting up php7.4-mysql (7.4.3-4ubuntu2.23) ...#################################.......................................................]
Progress: [ 53%] [##############################################################.......................................................]
Creating config file /etc/php/7.4/mods-available/mysqlnd.ini with new version####........................................................]
Progress: [ 53%] [################################################################.........................................................]
Creating config file /etc/php/7.4/mods-available/mysqli.ini with new version

Creating config file /etc/php/7.4/mods-available/pdo_mysql.ini with new version
Setting up php7.4-bcmath (7.4.3-4ubuntu2.23) ...

Creating config file /etc/php/7.4/mods-available/bcmath.ini with new version
Setting up freeipmi-common (1.6.4-3ubuntu1.1) ...
Setting up libutf8proc2:amd64 (2.5.0-1) ...
Setting up libcgi-pm-perl (4.46-1) ...
Setting up libserf-1-1:amd64 (1.3.9-8build1) ...
Setting up php7.4-readline (7.4.3-4ubuntu2.23) ...

Creating config file /etc/php/7.4/mods-available/readline.ini with new version
Setting up php7.4-mbstring (7.4.3-4ubuntu2.23) ...

Creating config file /etc/php/7.4/mods-available/mbstring.ini with new version
Setting up snmp (5.8+dfsg-2ubuntu2.9) ...
Setting up libaprutil1-ldap:amd64 (1.6.1-4ubuntu2.2) ...
Setting up libaprutil1-dbd-sqlite3:amd64 (1.6.1-4ubuntu2.2) ...
Setting up libhtml-template-perl (2.97-1) ...
Setting up python3-mysqldb (1.4.4-2build1) ...
Setting up ssl-cert (1.0.39) ...
Setting up mecab-utils (0.996-10build1) ...
Setting up libevent-core-2.1-7:amd64 (2.1.11-stable-1) ...
Setting up python3-pymysql (0.9.3-2ubuntu3.1) ...
Setting up libfreeipmi17 (1.6.4-3ubuntu1.1) ...
Setting up libvirt0:amd64 (6.0.0-0ubuntu8.20) ...
Setting up liblua5.2-0:amd64 (5.2.4-1.1build3) ...
Setting up mysql-client-8.0 (8.0.39-0ubuntu0.20.04.1) ...
Setting up libfcgi-perl (0.79-1) ...
Setting up php7.4-opcache (7.4.3-4ubuntu2.23) ...

Creating config file /etc/php/7.4/mods-available/opcache.ini with new version
Setting up apache2-data (2.4.41-4ubuntu3.21) ...
Setting up libsvn1:amd64 (1.13.0-3ubuntu0.2) ...
Setting up python-is-python3 (3.8.2-4) ...
Setting up libopenipmi0 (2.0.27-0ubuntu2) ...
Setting up fping (4.2-1) ...
Setting up php7.4-gd (7.4.3-4ubuntu2.23) ...

Creating config file /etc/php/7.4/mods-available/gd.ini with new version
Setting up ipmitool (1.8.18-8ubuntu0.2) ...
invoke-rc.d: could not determine current runlevel
Setting up libevent-pthreads-2.1-7:amd64 (2.1.11-stable-1) ...
Setting up librrd8:amd64 (1.7.2-3build2) ...
Setting up mysql-client (8.0.39-0ubuntu0.20.04.1) ...
Setting up php7.4-json (7.4.3-4ubuntu2.23) ...

Creating config file /etc/php/7.4/mods-available/json.ini with new version
Setting up php7.4-xml (7.4.3-4ubuntu2.23) ...

Creating config file /etc/php/7.4/mods-available/dom.ini with new version

Creating config file /etc/php/7.4/mods-available/simplexml.ini with new version

Creating config file /etc/php/7.4/mods-available/xml.ini with new version

Creating config file /etc/php/7.4/mods-available/xmlreader.ini with new version

Creating config file /etc/php/7.4/mods-available/xmlwriter.ini with new version

Creating config file /etc/php/7.4/mods-available/xsl.ini with new version
Setting up mecab-ipadic (2.7.0-20070801+main-2.1) ...
Compiling IPA dictionary for Mecab.  This takes long time...
reading /usr/share/mecab/dic/ipadic/unk.def ... 40
emitting double-array: 100% |###########################################|
/usr/share/mecab/dic/ipadic/model.def is not found. skipped.
reading /usr/share/mecab/dic/ipadic/Noun.others.csv ... 151
reading /usr/share/mecab/dic/ipadic/Conjunction.csv ... 171
reading /usr/share/mecab/dic/ipadic/Adverb.csv ... 3032
reading /usr/share/mecab/dic/ipadic/Suffix.csv ... 1393
reading /usr/share/mecab/dic/ipadic/Noun.name.csv ... 34202
reading /usr/share/mecab/dic/ipadic/Postp-col.csv ... 91
reading /usr/share/mecab/dic/ipadic/Noun.number.csv ... 42
reading /usr/share/mecab/dic/ipadic/Auxil.csv ... 199
reading /usr/share/mecab/dic/ipadic/Noun.place.csv ... 72999
reading /usr/share/mecab/dic/ipadic/Filler.csv ... 19
reading /usr/share/mecab/dic/ipadic/Noun.proper.csv ... 27328
reading /usr/share/mecab/dic/ipadic/Others.csv ... 2
reading /usr/share/mecab/dic/ipadic/Noun.nai.csv ... 42
reading /usr/share/mecab/dic/ipadic/Prefix.csv ... 221
reading /usr/share/mecab/dic/ipadic/Noun.org.csv ... 16668
reading /usr/share/mecab/dic/ipadic/Noun.csv ... 60477
reading /usr/share/mecab/dic/ipadic/Symbol.csv ... 208
reading /usr/share/mecab/dic/ipadic/Postp.csv ... 146
reading /usr/share/mecab/dic/ipadic/Noun.adverbal.csv ... 795
reading /usr/share/mecab/dic/ipadic/Adnominal.csv ... 135
reading /usr/share/mecab/dic/ipadic/Interjection.csv ... 252
reading /usr/share/mecab/dic/ipadic/Noun.demonst.csv ... 120
reading /usr/share/mecab/dic/ipadic/Adj.csv ... 27210
reading /usr/share/mecab/dic/ipadic/Verb.csv ... 130750
reading /usr/share/mecab/dic/ipadic/Noun.verbal.csv ... 12146
reading /usr/share/mecab/dic/ipadic/Noun.adjv.csv ... 3328
emitting double-array: 100% |###########################################|
reading /usr/share/mecab/dic/ipadic/matrix.def ... 1316x1316
emitting matrix      : 100% |###########################################|

done!
update-alternatives: using /var/lib/mecab/dic/ipadic to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up libcgi-fast-perl (1:2.15-1) ...
Setting up libvirt-clients (6.0.0-0ubuntu8.20) ...
Setting up subversion (1.13.0-3ubuntu0.2) ...
Setting up php7.4-cli (7.4.3-4ubuntu2.23) ...
update-alternatives: using /usr/bin/php7.4 to provide /usr/bin/php (php) in auto mode
update-alternatives: using /usr/bin/phar7.4 to provide /usr/bin/phar (phar) in auto mode
update-alternatives: using /usr/bin/phar.phar7.4 to provide /usr/bin/phar.phar (phar.phar) in auto mode

Creating config file /etc/php/7.4/cli/php.ini with new version
Setting up apache2-bin (2.4.41-4ubuntu3.21) ...
Setting up mysql-server-core-8.0 (8.0.39-0ubuntu0.20.04.1) ...
Setting up mecab-ipadic-utf8 (2.7.0-20070801+main-2.1) ...
Compiling IPA dictionary for Mecab.  This takes long time...
reading /usr/share/mecab/dic/ipadic/unk.def ... 40
emitting double-array: 100% |###########################################|
/usr/share/mecab/dic/ipadic/model.def is not found. skipped.
reading /usr/share/mecab/dic/ipadic/Noun.others.csv ... 151
reading /usr/share/mecab/dic/ipadic/Conjunction.csv ... 171
reading /usr/share/mecab/dic/ipadic/Adverb.csv ... 3032
reading /usr/share/mecab/dic/ipadic/Suffix.csv ... 1393
reading /usr/share/mecab/dic/ipadic/Noun.name.csv ... 34202
reading /usr/share/mecab/dic/ipadic/Postp-col.csv ... 91
reading /usr/share/mecab/dic/ipadic/Noun.number.csv ... 42
reading /usr/share/mecab/dic/ipadic/Auxil.csv ... 199
reading /usr/share/mecab/dic/ipadic/Noun.place.csv ... 72999
reading /usr/share/mecab/dic/ipadic/Filler.csv ... 19
reading /usr/share/mecab/dic/ipadic/Noun.proper.csv ... 27328
reading /usr/share/mecab/dic/ipadic/Others.csv ... 2
reading /usr/share/mecab/dic/ipadic/Noun.nai.csv ... 42
reading /usr/share/mecab/dic/ipadic/Prefix.csv ... 221
reading /usr/share/mecab/dic/ipadic/Noun.org.csv ... 16668
reading /usr/share/mecab/dic/ipadic/Noun.csv ... 60477
reading /usr/share/mecab/dic/ipadic/Symbol.csv ... 208
reading /usr/share/mecab/dic/ipadic/Postp.csv ... 146
reading /usr/share/mecab/dic/ipadic/Noun.adverbal.csv ... 795
reading /usr/share/mecab/dic/ipadic/Adnominal.csv ... 135
reading /usr/share/mecab/dic/ipadic/Interjection.csv ... 252
reading /usr/share/mecab/dic/ipadic/Noun.demonst.csv ... 120
reading /usr/share/mecab/dic/ipadic/Adj.csv ... 27210
reading /usr/share/mecab/dic/ipadic/Verb.csv ... 130750
reading /usr/share/mecab/dic/ipadic/Noun.verbal.csv ... 12146
reading /usr/share/mecab/dic/ipadic/Noun.adjv.csv ... 3328
emitting double-array: 100% |###########################################|
reading /usr/share/mecab/dic/ipadic/matrix.def ... 1316x1316
emitting matrix      : 100% |###########################################|

done!
update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up php-apcu (5.1.18+4.0.11-1build1) ...
Setting up openipmi (2.0.27-0ubuntu2) ...
Setting up rrdtool (1.7.2-3build2) ...
Setting up libapache2-mod-php7.4 (7.4.3-4ubuntu2.23) ...
Package apache2 is not configured yet. Will defer actions by package libapache2-mod-php7.4.

Creating config file /etc/php/7.4/apache2/php.ini with new version
No module matches
Setting up php-xml (2:7.4+75) ...
Setting up mysql-server-8.0 (8.0.39-0ubuntu0.20.04.1) ...
invoke-rc.d: could not determine current runlevel
 * Stopping MySQL database server mysqld                                                                                           [ OK ]
Renaming removed key_buffer and myisam-recover options (if present)
mysqld will log errors to /var/lib/mysql/DESKTOP-QADGF36.err
mysqld is running as pid 16585
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
invoke-rc.d: could not determine current runlevel
Setting up php-pear (1:1.10.9+submodules+notgz-1ubuntu0.20.04.3) ...
Setting up php-apcu-bc (1.0.5-2build1) ...
Setting up apache2 (2.4.41-4ubuntu3.21) ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling module reqtimeout.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
info: Switch to mpm prefork for package libapache2-mod-php7.4
Module mpm_event disabled.
Enabling module mpm_prefork.
info: Executing deferred 'a2enmod php7.4' for package libapache2-mod-php7.4
Enabling module php7.4.
Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.
Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.
invoke-rc.d: could not determine current runlevel
Setting up mysql-server (8.0.39-0ubuntu0.20.04.1) ...
Processing triggers for ufw (0.36-6ubuntu1.1) ...
Processing triggers for systemd (245.4-4ubuntu3.23) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for install-info (6.7.0.dfsg.2-5) ...
Processing triggers for libc-bin (2.31-0ubuntu9.16) ...
/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

Processing triggers for php7.4-cli (7.4.3-4ubuntu2.23) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.23) ...
Module mpm_event already disabled
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering dependency mpm_prefork for php7.4:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.4:
Module php7.4 already enabled
 [*] Creating Observium dir
 [*] Downloading Observium CE and unpacking...
WARNING: combining -O with -r or -p will mean that all downloaded content
will be placed in the single file you specified.

Sadly, that wouldn’t work on WSL

 [*] Creating database user for Observium with a random password...
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

I popped over to a different host running Ubuntu to try there.

I finished the install and allowed it to setup monitoring on this host

 o Duration             0.1116s

#####  Module Start: ip-addresses  #####

 o IP-MIB               ......
 o IPV6-MIB
 o LLDP-MIB
+---------+-----------------+-------------+--------------------------------------------+--------------------------------+----------+-----------+
| ifIndex | ifDescr         | IP: Version | Address                                    | Network                        | Type     | Origin    |
+---------+-----------------+-------------+--------------------------------------------+--------------------------------+----------+-----------+
| 1       | lo              | IPv4        | 127.0.0.1/8                                | 127.0.0.0/8                    | loopback |           |
| 7       | enx0014d1b07686 | IPv4        | 192.168.1.78/24                            | 192.168.1.0/24                 | private  |           |
| 6       | enxc84d44294898 | IPv4        | 192.168.1.144/24                           | 192.168.1.0/24                 | private  |           |
| 1       | lo              | IPv6        | ::1/128                                    | 0:0:0:0:0:0:0:1/128            | loopback | manual    |
| 6       | enxc84d44294898 | IPv6        | fd39:b4c2:d84b:5bba:9fbe:7199:32a0:500d/64 | fd39:b4c2:d84b:5bba:0:0:0:0/64 | private  | linklayer |
| 7       | enx0014d1b07686 | IPv6        | fd39:b4c2:d84b:5bba:bb58:7c72:2c63:2795/64 | fd39:b4c2:d84b:5bba:0:0:0:0/64 | private  | linklayer |
+---------+-----------------+-------------+--------------------------------------------+--------------------------------+----------+-----------+


 o Changes              6 added
 o Duration             0.3681s

#####  localhost [1] completed discovery modules at 2024-09-09 14:59:25  #####

 o Discovery time       1.8214 seconds

Added device localhost (1).

Devices success: 1.
DONE! UNIX-agent is installed and this server is now monitored by Observium
Would you like to install the UNIX-agent on this host? (y/N): Y
Installing systemd unix-agent service...
Created symlink /etc/systemd/system/sockets.target.wants/observium_agent.socket → /etc/systemd/system/observium_agent.socket.
DONE! UNIX-agent is installed and this server is now monitored by Observium
 [*] Installation finished! Use your webbrowser and login to the web interface with the account you just created and add your first device

I could now go to http on the server to see the Web UI

/content/images/2024/09/observium-01.png

And explore the landing page

/content/images/2024/09/observium-02.png

After a while I could see some details like Core temps, storage and event logs

/content/images/2024/09/observium-03.png

The graphs are fantastic. For instance, I can easily break down memory usage over time

/content/images/2024/09/observium-04.png

The overview is almost too much information to take in at once

/content/images/2024/09/observium-05.png

Docker

I’m not entirely keen on running this as a fat app with database on a touchy old Macbook Air.

Someone has made a Github repo with a Docker container for running either with Docker Compose or as an App.

Since this uses MariaDB 10, we are in luck (as that is what is on the NAS).

ijohnson@sirnasilot:~$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9751
Server version: 10.11.2-MariaDB Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE observiumdb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
Query OK, 1 row affected (0.002 sec)

MariaDB [(none)]> create user 'observiumdbuser'@'%' identified by 'ODB_U334455';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements: [Include mixed case]
MariaDB [(none)]> create user 'observiumdbuser'@'%' identified by 'ODb_U334455';
Query OK, 0 rows affected (0.797 sec)

MariaDB [(none)]> grant all privileges on observiumdb.* to 'observiumdbuser'@'%';
Query OK, 0 rows affected (0.081 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> \q
Bye

I’ll make some folders on my docker host

builder@builder-T100:~$ mkdir observium
builder@builder-T100:~$ mkdir observium/logs
builder@builder-T100:~$ mkdir observium/rrd

Then launch

$ docker run --name observiumapp \
    -v /home/builder/observium/logs:/opt/observium/logs \
    -v /home/builder/observium/rrd:/opt/observium/rrd \
    -e OBSERVIUM_ADMIN_USER=admin \
    -e OBSERVIUM_ADMIN_PASS=P4ssw0rd12345 \
    -e OBSERVIUM_DB_HOST=192.168.1.116 \
    -e OBSERVIUM_DB_USER=observiumdbuser \
    -e OBSERVIUM_DB_PASS=ODb_U334455 \
    -e OBSERVIUM_DB_NAME=observiumdb \
    -e OBSERVIUM_BASE_URL=http://192.168.1.100:8078 \
    -e TZ=America/Chicago \
    -p 8078:80 \
    mbixtech/observium

It launched but the login never took

builder@builder-T100:~/observium$ docker run --name observiumapp \
    -v /home/builder/observium/logs:/opt/observium/logs \
    -v /home/builder/observium/rrd:/opt/observium/rrd \
    -e OBSERVIUM_ADMIN_USER=admin \
    -e OBSERVIUM_ADMIN_PASS=P4ssw0rd12345 \
    -e OBSERVIUM_DB_HOST=192.168.1.116 \
    -e OBSERVIUM_DB_USER=observiumdbuser \
    -e OBSERVIUM_DB_PASS=ODb_U334455 \
    -e OBSERVIUM_DB_NAME=observiumdb \
    -e OBSERVIUM_BASE_URL=http://192.168.1.100:8078 \
    -e TZ=America/Chicago \
    -p 8078:80 \
    mbixtech/observium
Unable to find image 'mbixtech/observium:latest' locally
latest: Pulling from mbixtech/observium
a48641193673: Pull complete
206bf6eaa34c: Pull complete
0f273906990c: Pull complete
94b57dcdddb3: Pull complete
e89a45da21fe: Pull complete
6c9b3169d419: Pull complete
9fb1f975271f: Pull complete
6e68488a77ed: Pull complete
c4de0337b300: Pull complete
4f4fb700ef54: Pull complete
a3ae8503d004: Pull complete
ded32381a276: Pull complete
d0e92c31573b: Pull complete
7d0fb57c471f: Pull complete
a624fd039caf: Pull complete
84bade8a4d77: Pull complete
Digest: sha256:dcf2b9c60ac1418f25a4505ff8e4acf45d3c41eeafe2ac7c0f6b2d6d1f23a9f1
Status: Downloaded newer image for mbixtech/observium:latest
2024-09-09 18:27:02,147 INFO Set uid to user 0 succeeded
2024-09-09 18:27:02,149 INFO supervisord started with pid 1
2024-09-09 18:27:03,152 INFO spawned: 'apache2' with pid 6
2024-09-09 18:27:03,155 INFO spawned: 'cron' with pid 7
2024-09-09 18:27:03,158 INFO spawned: 'init' with pid 8
2024-09-09 18:27:03 [observium-init.sh] Set timezone to 'America/Chicago'
2024-09-09 18:27:03 [observium-init.sh] Check connection to observium database (attempt #1)
2024-09-09 18:27:03 [observium-init.sh] Connection to observium database checked after 1 attempts
2024-09-09 18:27:03 [observium-init.sh] Set /opt/observium/rrd directory to www-data:www-data
2024-09-09 18:27:03 [observium-init.sh] Init/Update database schema
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.18. Set the 'ServerName' directive globally to suppress this message

  ___   _                              _
 / _ \ | |__   ___   ___  _ __ __   __(_) _   _  _ __ ___
| | | || '_ \ / __| / _ \| '__|\ \ / /| || | | || '_ ` _ \
| |_| || |_) |\__ \|  __/| |    \ V / | || |_| || | | | | |
 \___/ |_.__/ |___/ \___||_|     \_/  |_| \__,_||_| |_| |_|
                     Observium Community Edition 23.9.13005
                                  https://www.observium.org

Install initial database schema ...2024-09-09 18:27:04,615 INFO success: apache2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-09-09 18:27:04,615 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-09-09 18:27:04,615 INFO success: init entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

/content/images/2024/09/observium-06.png

I stopped and started it and it seemed to make some progress

builder@builder-T100:~/observium$ docker logs observiumapp
2024-09-09 18:27:02,147 INFO Set uid to user 0 succeeded
2024-09-09 18:27:02,149 INFO supervisord started with pid 1
2024-09-09 18:27:03,152 INFO spawned: 'apache2' with pid 6
2024-09-09 18:27:03,155 INFO spawned: 'cron' with pid 7
2024-09-09 18:27:03,158 INFO spawned: 'init' with pid 8
2024-09-09 18:27:03 [observium-init.sh] Set timezone to 'America/Chicago'
2024-09-09 18:27:03 [observium-init.sh] Check connection to observium database (attempt #1)
2024-09-09 18:27:03 [observium-init.sh] Connection to observium database checked after 1 attempts
2024-09-09 18:27:03 [observium-init.sh] Set /opt/observium/rrd directory to www-data:www-data
2024-09-09 18:27:03 [observium-init.sh] Init/Update database schema
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.18. Set the 'ServerName' directive globally to suppress this message

  ___   _                              _
 / _ \ | |__   ___   ___  _ __ __   __(_) _   _  _ __ ___
| | | || '_ \ / __| / _ \| '__|\ \ / /| || | | || '_ ` _ \
| |_| || |_) |\__ \|  __/| |    \ V / | || |_| || | | | | |
 \___/ |_.__/ |___/ \___||_|     \_/  |_| \__,_||_| |_| |_|
                     Observium Community Edition 23.9.13005
                                  https://www.observium.org

Install initial database schema ...2024-09-09 18:27:04,615 INFO success: apache2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-09-09 18:27:04,615 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-09-09 18:27:04,615 INFO success: init entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-09-09 18:37:35,249 WARN received SIGINT indicating exit request
2024-09-09 18:37:35,254 INFO waiting for apache2, cron, init to die
2024-09-09 18:37:36,256 INFO stopped: init (terminated by SIGTERM)
2024-09-09 18:37:36,258 INFO stopped: cron (terminated by SIGTERM)
2024-09-09 18:37:36,367 INFO stopped: apache2 (exit status 0)
2024-09-09 18:38:37,551 INFO Set uid to user 0 succeeded
2024-09-09 18:38:37,553 INFO supervisord started with pid 1
2024-09-09 18:38:38,556 INFO spawned: 'apache2' with pid 7
2024-09-09 18:38:38,559 INFO spawned: 'cron' with pid 8
2024-09-09 18:38:38,562 INFO spawned: 'init' with pid 9
2024-09-09 18:38:38 [observium-init.sh] Set timezone to 'America/Chicago'
2024-09-09 18:38:38 [observium-init.sh] Check connection to observium database (attempt #1)
2024-09-09 18:38:38 [observium-init.sh] Connection to observium database checked after 1 attempts
2024-09-09 18:38:38 [observium-init.sh] Set /opt/observium/rrd directory to www-data:www-data
2024-09-09 18:38:38 [observium-init.sh] Init/Update database schema
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.18. Set the 'ServerName' directive globally to suppress this message
2024-09-09 18:38:39,698 INFO success: apache2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-09-09 18:38:39,698 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-09-09 18:38:39,698 INFO success: init entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

  ___   _                              _
 / _ \ | |__   ___   ___  _ __ __   __(_) _   _  _ __ ___
| | | || '_ \ / __| / _ \| '__|\ \ / /| || | | || '_ ` _ \
| |_| || |_) |\__ \|  __/| |    \ V / | || |_| || | | | | |
 \___/ |_.__/ |___/ \___||_|     \_/  |_| \__,_||_| |_| |_|
                     Observium Community Edition 23.9.13005
                                  https://www.observium.org

-- Updating database/file schema
416 -> 417 # (db) .. Done (10s).

Once I saw the logs complete

480 -> 481 # (db) . Done (7s).
481 -> 482 # (db) ........ Done (35s).
482 -> 483 # (db) .. Done (10s).
483 -> 484 # (db) F Done (0s, 1 errors).
484 -> 485 # (db) . Done (7s).
-- Done.
-- Observium is up to date.
2024-09-09 18:56:37 [observium-init.sh] Add admin user
Observium CE 23.9.13005
Add User

User admin creation failed!
2024-09-09 18:56:38 [observium-init.sh] Build environment script for cronjobs
2024-09-09 18:56:38,208 INFO exited: init (exit status 0; expected)

I can then login and see a rather blank dashboard

/content/images/2024/09/observium-07.png

I’ll first try by adding my Dockerhost (on which this container runs)

/content/images/2024/09/observium-08.png

Did not seem to like that (same with 192.168.1.100)

/content/images/2024/09/observium-09.png

Perhaps we need to install the base snmpd agent on the host

builder@builder-T100:~/observium$ sudo apt-get install snmpd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apg gnome-control-center-faces gnome-online-accounts libcolord-gtk1 libfreerdp-server2-2 libgnome-bg-4-1 libgsound0 libgssdp-1.2-0 libgupnp-1.2-1 libgupnp-av-1.0-3 libgupnp-dlna-2.0-4 libntfs-3g89 librygel-core-2.6-2 librygel-db-2.6-2
  librygel-renderer-2.6-2 librygel-server-2.6-2 libvncserver1 mobile-broadband-provider-info network-manager-gnome python3-macaroonbakery python3-protobuf python3-pymacaroons python3-rfc3339 python3-tz rygel
Use 'sudo apt autoremove' to remove them.
Suggested packages:
  snmptrapd
The following NEW packages will be installed:
  snmpd
0 upgraded, 1 newly installed, 0 to remove and 176 not upgraded.
Need to get 60.3 kB of archives.
After this operation, 155 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 snmpd amd64 5.9.1+dfsg-1ubuntu2.6 [60.3 kB]
Fetched 60.3 kB in 0s (157 kB/s)
Preconfiguring packages ...
Selecting previously unselected package snmpd.
(Reading database ... 344121 files and directories currently installed.)
Preparing to unpack .../snmpd_5.9.1+dfsg-1ubuntu2.6_amd64.deb ...
Unpacking snmpd (5.9.1+dfsg-1ubuntu2.6) ...
Setting up snmpd (5.9.1+dfsg-1ubuntu2.6) ...
adduser: Warning: The home directory `/var/lib/snmp' does not belong to the user you are currently creating.
Created symlink /etc/systemd/system/multi-user.target.wants/snmpd.service → /lib/systemd/system/snmpd.service.
Processing triggers for man-db (2.10.2-1) ...

As you can read on other sites, snmpd is locked down by default, so we need to fix that

builder@builder-T100:~/observium$ sudo cat /etc/snmp/snmpd.conf
###########################################################################
#
# snmpd.conf
# An example configuration file for configuring the Net-SNMP agent ('snmpd')
# See snmpd.conf(5) man page for details
#
###########################################################################
# SECTION: System Information Setup
#

# syslocation: The [typically physical] location of the system.
#   Note that setting this value here means that when trying to
#   perform an snmp SET operation to the sysLocation.0 variable will make
#   the agent return the "notWritable" error code.  IE, including
#   this token in the snmpd.conf file will disable write access to
#   the variable.
#   arguments:  location_string
sysLocation    Sitting on the Dock of the Bay
sysContact     Me <me@example.org>

# sysservices: The proper value for the sysServices object.
#   arguments:  sysservices_number
sysServices    72



###########################################################################
# SECTION: Agent Operating Mode
#
#   This section defines how the agent will operate when it
#   is running.

# master: Should the agent operate as a master agent or not.
#   Currently, the only supported master agent type for this token
#   is "agentx".
#
#   arguments: (on|yes|agentx|all|off|no)

master  agentx

# agentaddress: The IP address and port number that the agent will listen on.
#   By default the agent listens to any and all traffic from any
#   interface on the default SNMP port (161).  This allows you to
#   specify which address, interface, transport type and port(s) that you
#   want the agent to listen on.  Multiple definitions of this token
#   are concatenated together (using ':'s).
#   arguments: [transport:]port[@interface/address],...

agentaddress  127.0.0.1,[::1]



###########################################################################
# SECTION: Access Control Setup
#
#   This section defines who is allowed to talk to your running
#   snmp agent.

# Views
#   arguments viewname included [oid]

#  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1


# rocommunity: a SNMPv1/SNMPv2c read-only access community name
#   arguments:  community [default|hostname|network/bits] [oid | -V view]

# Read-only access to everyone to the systemonly view
rocommunity  public default -V systemonly
rocommunity6 public default -V systemonly

# SNMPv3 doesn't use communities, but users with (optionally) an
# authentication and encryption string. This user needs to be created
# with what they can view with rouser/rwuser lines in this file.
#
# createUser username (MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224) authpassphrase [DES|AES] [privpassphrase]
# e.g.
# createuser authPrivUser SHA-512 myauthphrase AES myprivphrase
#
# This should be put into /var/lib/snmp/snmpd.conf
#
# rouser: a SNMPv3 read-only access username
#    arguments: username [noauth|auth|priv [OID | -V VIEW [CONTEXT]]]
rouser authPrivUser authpriv -V systemonly

# include a all *.conf files in a directory
includeDir /etc/snmp/snmpd.conf.d

which I updated to those values I saw here

builder@builder-T100:~/observium$ sudo cat /etc/snmp/snmpd.conf
###########################################################################
#
# snmpd.conf
# An example configuration file for configuring the Net-SNMP agent ('snmpd')
# See snmpd.conf(5) man page for details
#
###########################################################################
# SECTION: System Information Setup
#

# syslocation: The [typically physical] location of the system.
#   Note that setting this value here means that when trying to
#   perform an snmp SET operation to the sysLocation.0 variable will make
#   the agent return the "notWritable" error code.  IE, including
#   this token in the snmpd.conf file will disable write access to
#   the variable.
#   arguments:  location_string
sysLocation    Woodbury, MN [GPS44.930516,-92.9143721]
sysContact     Isaac <isaac.johnson@gmail.com>

# sysservices: The proper value for the sysServices object.
#   arguments:  sysservices_number
sysServices    72



###########################################################################
# SECTION: Agent Operating Mode
#
#   This section defines how the agent will operate when it
#   is running.

# master: Should the agent operate as a master agent or not.
#   Currently, the only supported master agent type for this token
#   is "agentx".
#
#   arguments: (on|yes|agentx|all|off|no)

master  agentx

# agentaddress: The IP address and port number that the agent will listen on.
#   By default the agent listens to any and all traffic from any
#   interface on the default SNMP port (161).  This allows you to
#   specify which address, interface, transport type and port(s) that you
#   want the agent to listen on.  Multiple definitions of this token
#   are concatenated together (using ':'s).
#   arguments: [transport:]port[@interface/address],...

agentaddress  127.0.0.1,[::1],192.168.1.100



###########################################################################
# SECTION: Access Control Setup
#
#   This section defines who is allowed to talk to your running
#   snmp agent.


#observium
#
com2sec readonly  default        public
group MyROGroup v1         readonly
group MyROGroup v2c        readonly
group MyROGroup usm        readonly

# Views
#   arguments viewname included [oid]

#  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
view all    included  .1                               80


# rocommunity: a SNMPv1/SNMPv2c read-only access community name
#   arguments:  community [default|hostname|network/bits] [oid | -V view]

# Read-only access to everyone to the systemonly view
rocommunity  public default -V systemonly
rocommunity6 public default -V systemonly

# SNMPv3 doesn't use communities, but users with (optionally) an
# authentication and encryption string. This user needs to be created
# with what they can view with rouser/rwuser lines in this file.
#
# createUser username (MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224) authpassphrase [DES|AES] [privpassphrase]
# e.g.
# createuser authPrivUser SHA-512 myauthphrase AES myprivphrase
#
# This should be put into /var/lib/snmp/snmpd.conf
#
# rouser: a SNMPv3 read-only access username
#    arguments: username [noauth|auth|priv [OID | -V VIEW [CONTEXT]]]
#rouser authPrivUser authpriv -V systemonly
rouser nouth authpriv -V systemonly

# Observium
access MyROGroup ""      any       noauth    exact  all    none   none
extend .1.3.6.1.4.1.2021.7890.1 distro /usr/local/bin/distro

# include a all *.conf files in a directory
includeDir /etc/snmp/snmpd.conf.d

I also need a distro script (see here)

builder@builder-T100:~/observium$ sudo curl -o /usr/local/bin/distro https://www.observium.org/files/distro
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 20450  100 20450    0     0  23422      0 --:--:-- --:--:-- --:--:-- 23424
builder@builder-T100:~/observium$ sudo chmod +x /usr/local/bin/distro

Then restart snmpd to take effect

builder@builder-T100:~/observium$ sudo vi /etc/snmp/snmpd.conf
builder@builder-T100:~/observium$ sudo service snmpd restart

I can now add it (though still used v2c not v3 in snpmd protocol)

/content/images/2024/09/observium-10.png

Try again

#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161

#  Full view access
view   all         included   .1

#  Default access to full view
rocommunity public  default    -V all

#  System contact and location
syslocation    House, 1234 house street, Woodbury, MN, USA [GPS44.1111,-92.1111]
syscontact     Isaac <isaac.johnson@gmail.com>

#  Disk Monitoring
includeAllDisks  10%

# This line allows Observium to detect the host OS if the distro script is installed
extend .1.3.6.1.4.1.2021.7890.1 distro /usr/local/bin/distro

# This lines allows Observium to detect hardware, vendor and serial
# Common Linux:
extend .1.3.6.1.4.1.2021.7890.2 hardware /bin/cat /sys/devices/virtual/dmi/id/product_name
extend .1.3.6.1.4.1.2021.7890.3 vendor   /bin/cat /sys/devices/virtual/dmi/id/sys_vendor
extend .1.3.6.1.4.1.2021.7890.4 serial   /bin/cat /sys/devices/virtual/dmi/id/product_serial

# Raspberry Pi:
#extend .1.3.6.1.4.1.2021.7890.2 hardware /bin/cat /proc/device-tree/model
#extend .1.3.6.1.4.1.2021.7890.4 serial   /bin/cat /proc/device-tree/serial

# This line allows Observium to collect an accurate uptime
extend uptime /bin/cat /proc/uptime

# This line enables Observium's ifAlias description injection
pass_persist .1.3.6.1.2.1.31.1.1.1.18 /usr/local/bin/ifAlias_persist

Then add it, noting to use public for the community string

/content/images/2024/09/observium-11.png

I can initially see

/content/images/2024/09/observium-12.png

If you know me, then you know if I have to do something more than once, dammit, I’ll make a script or playbook.

So I created a new Ansible Playbook you are welcome to take/use.

The playbook

- name: Install SNMPD
  hosts: all

  tasks:
  - name: Add Prereqs and snmpd
    ansible.builtin.shell: |
       DEBIAN_FRONTEND=noninteractive apt update -y
       DEBIAN_FRONTEND=noninteractive apt install -y wget curl snmpd
    become: true

  - name: Add Prereqs and snmpd
    ansible.builtin.shell: |
       curl -o /usr/local/bin/distro https://www.observium.org/files/distro
       chmod +x /usr/local/bin/distro
    become: true

  - name: Copy snmpd config
    ansible.builtin.template:
       src: files/snmpd.conf.j2
       dest: /etc/snmp/snmpd.conf

  - name: set perms
    ansible.builtin.shell: |
       chmod 600 /etc/snmp/snmpd.conf
    become: true

  - name: Start snmpd
    ansible.builtin.shell: |
       service snmpd start
    become: true

(note: typo’ed the name in the first try, corrected above to src: files/snmpd.conf.j2)

And the Jinja2 templated file

# Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161

#  Full view access
view   all         included   .1

#  Default access to full view
rocommunity   default    -V all

#  System contact and location
syslocation 
syscontact 

#  Disk Monitoring
includeAllDisks  10%

# This line allows Observium to detect the host OS if the distro script is installed
extend .1.3.6.1.4.1.2021.7890.1 distro /usr/local/bin/distro

# This lines allows Observium to detect hardware, vendor and serial
# Common Linux:
extend .1.3.6.1.4.1.2021.7890.2 hardware /bin/cat /sys/devices/virtual/dmi/id/product_name
extend .1.3.6.1.4.1.2021.7890.3 vendor   /bin/cat /sys/devices/virtual/dmi/id/sys_vendor
extend .1.3.6.1.4.1.2021.7890.4 serial   /bin/cat /sys/devices/virtual/dmi/id/product_serial

# Raspberry Pi:
#extend .1.3.6.1.4.1.2021.7890.2 hardware /bin/cat /proc/device-tree/model
#extend .1.3.6.1.4.1.2021.7890.4 serial   /bin/cat /proc/device-tree/serial

# This line allows Observium to collect an accurate uptime
extend uptime /bin/cat /proc/uptime

# This line enables Observium's ifAlias description injection
pass_persist .1.3.6.1.2.1.31.1.1.1.18 /usr/local/bin/ifAlias_persist

I can now add to AWX

/content/images/2024/09/observium-13.png

To test, I’ll just run on one host

/content/images/2024/09/observium-14.png

The job completed

/content/images/2024/09/observium-15.png

I then went to add “AnnaMacbook” by IP

/content/images/2024/09/observium-16.png

But it just seemed to hang in Docker

I tried from the physical instance of Observium and it worked (note: .13 and .81 are the same host in my network)

/content/images/2024/09/observium-18.png

Which we can see

/content/images/2024/09/observium-19.png

I’m going to try bouncing our Docker instance - perhaps it’s just stuck

builder@builder-T100:~$ docker ps | grep observ
2ed622e9887a   mbixtech/observium                                               "/usr/bin/supervisor…"   13 hours ago    Up 12 hours            0.0.0.0:8078->80/tcp, :::8078->80/tcp                                                  observiumapp
builder@builder-T100:~$ docker stop observiumapp
observiumapp
builder@builder-T100:~$ docker start observiumapp
observiumapp

However it still hangs (we never see the green added). I even enabled and tried TCP and waited a full day to complete.

/content/images/2024/09/observium-20.png

Could it be my NAS database?

I decided to stop and remove the containerized db

builder@builder-T100:~$ docker ps | head -n2
CONTAINER ID   IMAGE                                                            COMMAND                  CREATED         STATUS                 PORTS                                                                                  NAMES
2ed622e9887a   mbixtech/observium                                               "/usr/bin/supervisor…"   24 hours ago    Up 11 hours            0.0.0.0:8078->80/tcp, :::8078->80/tcp                                                  observiumapp
builder@builder-T100:~$ docker stop observiumapp
observiumapp
builder@builder-T100:~$ docker rm observiumapp
observiumapp

I’ll pull down the repo

builder@builder-T100:~$ git clone https://github.com/somsakc/docker-observium.git
Cloning into 'docker-observium'...
remote: Enumerating objects: 207, done.
remote: Counting objects: 100% (52/52), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 207 (delta 31), reused 28 (delta 26), pack-reused 155 (from 1)
Receiving objects: 100% (207/207), 52.74 KiB | 1.17 MiB/s, done.
Resolving deltas: 100% (122/122), done.
builder@builder-T100:~$ cd docker-observium/
builder@builder-T100:~/docker-observium$ ls
amd64  arm32v7  docker-compose.yml  Jenkinsfile  LICENSE  README.md

I changed the URL and ports to 8078

builder@builder-T100:~/docker-observium$ git diff docker-compose.yml
diff --git a/docker-compose.yml b/docker-compose.yml
index e9e8825..a48e8dd 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml

... snip ...

-      - OBSERVIUM_BASE_URL=http://observium.mbixtech.com:8888
-      - TZ=Asia/Bangkok
+      - OBSERVIUM_BASE_URL=http://192.168.1.100:8078
+      - TZ=America/Chicago

... snip ...


     ports:
-      - "8888:80"
+      - "8078:80"

We can then launch with docker compose up

builder@builder-T100:~/docker-observium$ docker compose up
[+] Running 27/27
 ✔ app 15 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                                                                                                                 39.8s
   ✔ 35807b77a593 Pull complete                                                                                                                                                                                                                            2.0s
   ✔ fddc80f611c0 Pull complete                                                                                                                                                                                                                            2.2s
   ✔ ae8bfc7edda7 Pull complete                                                                                                                                                                                                                           16.9s
   ✔ 8a43de210fba Pull complete                                                                                                                                                                                                                           17.1s
   ✔ a83565d24351 Pull complete                                                                                                                                                                                                                           24.2s
   ✔ 66099aec92d6 Pull complete                                                                                                                                                                                                                           24.3s
   ✔ 86a6a7b293a8 Pull complete                                                                                                                                                                                                                           24.5s
   ✔ 0872de6596dd Pull complete                                                                                                                                                                                                                           37.9s
   ✔ 64a4d7731743 Pull complete                                                                                                                                                                                                                           38.0s
   ✔ fa3ea58ac736 Pull complete                                                                                                                                                                                                                           38.2s
   ✔ 9eea20ba99d4 Pull complete                                                                                                                                                                                                                           38.3s
   ✔ 4be108e88f89 Pull complete                                                                                                                                                                                                                           38.4s
   ✔ 92ffe39ce41f Pull complete                                                                                                                                                                                                                           38.5s
   ✔ eb584453d3e6 Pull complete                                                                                                                                                                                                                           38.7s
   ✔ f9440fb822f3 Pull complete                                                                                                                                                                                                                           38.8s
 ✔ db 10 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                                                                                                                       14.9s
   ✔ 7b1a6ab2e44d Pull complete                                                                                                                                                                                                                            7.8s
   ✔ 034655750c88 Pull complete                                                                                                                                                                                                                            8.0s
   ✔ f0b757a2a0f0 Pull complete                                                                                                                                                                                                                            8.3s
   ✔ 5c37daf8b6b5 Pull complete                                                                                                                                                                                                                            8.6s
   ✔ b4cd9409b0f6 Pull complete                                                                                                                                                                                                                            8.8s
   ✔ dbcda06785eb Pull complete                                                                                                                                                                                                                            9.4s
   ✔ a34cd90f184c Pull complete                                                                                                                                                                                                                            9.7s
   ✔ fd6cef4ce489 Pull complete                                                                                                                                                                                                                            9.8s
   ✔ 3cb89a1550ea Pull complete                                                                                                                                                                                                                           13.6s
   ✔ df9f153bd930 Pull complete                                                                                                                                                                                                                           13.7s
[+] Building 0.0s (0/0)
[+] Running 3/3
 ✔ Network observium_back-tier  Created                                                                                                                                                                                                                    0.3s
 ✔ Container observium-db-1     Created                                                                                                                                                                                                                    0.4s
 ✔ Container observium-app-1    Created                                                                                                                                                                                                                    0.0s
Attaching to observium-app-1, observium-db-1
observium-db-1   | 2024-09-10 18:15:23-05:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.4+maria~focal started.
observium-db-1   | 2024-09-10 18:15:23-05:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
observium-db-1   | 2024-09-10 18:15:23-05:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.4+maria~focal started.
observium-db-1   | 2024-09-10 18:15:24-05:00 [Note] [Entrypoint]: Initializing database files
observium-db-1   | 2024-09-10 18:15:24 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.
observium-app-1  | 2024-09-10 18:15:25,619 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
observium-app-1  | 2024-09-10 18:15:25,623 INFO supervisord started with pid 1
observium-db-1   |
observium-db-1   |
observium-db-1   | PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
observium-db-1   | To do so, start the server, then issue the following command:
observium-db-1   |
observium-db-1   | '/usr/bin/mysql_secure_installation'
observium-db-1   |
observium-db-1   | which will also give you the option of removing the test
observium-db-1   | databases and anonymous user created by default.  This is
observium-db-1   | strongly recommended for production servers.
observium-db-1   |
observium-db-1   | See the MariaDB Knowledgebase at https://mariadb.com/kb or the
observium-db-1   | MySQL manual for more instructions.
observium-db-1   |
observium-db-1   | Please report any problems at https://mariadb.org/jira
observium-db-1   |
observium-db-1   | The latest information about MariaDB is available at https://mariadb.org/.
observium-db-1   | You can find additional information about the MySQL part at:
observium-db-1   | https://dev.mysql.com
observium-db-1   | Consider joining MariaDB's strong and vibrant community:
observium-db-1   | https://mariadb.org/get-involved/
observium-db-1   |
observium-db-1   | 2024-09-10 18:15:25-05:00 [Note] [Entrypoint]: Database files initialized
observium-db-1   | 2024-09-10 18:15:25-05:00 [Note] [Entrypoint]: Starting temporary server
observium-db-1   | 2024-09-10 18:15:25-05:00 [Note] [Entrypoint]: Waiting for server startup
observium-db-1   | 2024-09-10 18:15:25 0 [Note] mysqld (server 10.6.4-MariaDB-1:10.6.4+maria~focal) starting as process 102 ...
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: Number of pools: 1
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
observium-db-1   | 2024-09-10 18:15:25 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: Using Linux native AIO
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: Completed initialization of buffer pool
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: 128 rollback segments are active.
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: Creating shared tablespace for temporary tables
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
observium-db-1   | 2024-09-10 18:15:25 0 [Note] InnoDB: 10.6.4 started; log sequence number 42161; transaction id 14
observium-db-1   | 2024-09-10 18:15:26 0 [Note] Plugin 'FEEDBACK' is disabled.
observium-db-1   | 2024-09-10 18:15:26 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
observium-db-1   | 2024-09-10 18:15:26 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.
observium-db-1   | 2024-09-10 18:15:26 0 [Warning] 'user' entry 'root@5c515e828451' ignored in --skip-name-resolve mode.
observium-db-1   | 2024-09-10 18:15:26 0 [Warning] 'proxies_priv' entry '@% root@5c515e828451' ignored in --skip-name-resolve mode.
observium-db-1   | 2024-09-10 18:15:26 0 [Note] InnoDB: Buffer pool(s) load completed at 240910 18:15:26
observium-db-1   | 2024-09-10 18:15:26 0 [Note] mysqld: ready for connections.
observium-db-1   | Version: '10.6.4-MariaDB-1:10.6.4+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 0  mariadb.org binary distribution
observium-app-1  | 2024-09-10 18:15:26,625 INFO spawned: 'apache2' with pid 8
observium-app-1  | 2024-09-10 18:15:26,627 INFO spawned: 'cron' with pid 9
observium-app-1  | 2024-09-10 18:15:26,629 INFO spawned: 'init' with pid 10
observium-app-1  | [1] Verifying coonection to observium database.

observium-app-1  | mysql: [Warning] Using a password on the command line interface can be insecure.
observium-app-1  | ERROR 2003 (HY000): Can't connect to MySQL server on 'db:3306' (111)
observium-app-1  | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.28.0.3. Set the 'ServerName' directive globally to suppress this message
observium-db-1   | 2024-09-10 18:15:26-05:00 [Note] [Entrypoint]: Temporary server started.
observium-db-1   | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
observium-db-1   | Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
observium-app-1  | 2024-09-10 18:15:27,719 INFO success: apache2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
observium-app-1  | 2024-09-10 18:15:27,719 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
observium-app-1  | 2024-09-10 18:15:27,719 INFO success: init entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
observium-db-1   | Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
observium-db-1   | 2024-09-10 18:15:28 5 [Warning] 'proxies_priv' entry '@% root@5c515e828451' ignored in --skip-name-resolve mode.
observium-db-1   | 2024-09-10 18:15:28-05:00 [Note] [Entrypoint]: Creating database observium
observium-db-1   | 2024-09-10 18:15:28-05:00 [Note] [Entrypoint]: Creating user observium
observium-db-1   | 2024-09-10 18:15:28-05:00 [Note] [Entrypoint]: Giving user observium access to schema observium
observium-db-1   |
observium-db-1   | 2024-09-10 18:15:28-05:00 [Note] [Entrypoint]: Stopping temporary server
observium-db-1   | 2024-09-10 18:15:28 0 [Note] mysqld (initiated by: root[root] @ localhost []): Normal shutdown
observium-db-1   | 2024-09-10 18:15:28 0 [Note] InnoDB: FTS optimize thread exiting.
observium-db-1   | 2024-09-10 18:15:28 0 [Note] InnoDB: Starting shutdown...
observium-db-1   | 2024-09-10 18:15:28 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
observium-db-1   | 2024-09-10 18:15:28 0 [Note] InnoDB: Buffer pool(s) dump completed at 240910 18:15:28
observium-db-1   | 2024-09-10 18:15:28 0 [Note] InnoDB: Removed temporary tablespace data file: "./ibtmp1"
observium-db-1   | 2024-09-10 18:15:28 0 [Note] InnoDB: Shutdown completed; log sequence number 42173; transaction id 15
observium-db-1   | 2024-09-10 18:15:28 0 [Note] mysqld: Shutdown complete
observium-db-1   |
observium-db-1   | 2024-09-10 18:15:29-05:00 [Note] [Entrypoint]: Temporary server stopped
observium-db-1   |
observium-db-1   | 2024-09-10 18:15:29-05:00 [Note] [Entrypoint]: MariaDB init process done. Ready for start up.
observium-db-1   |
observium-db-1   | 2024-09-10 18:15:29 0 [Note] mysqld (server 10.6.4-MariaDB-1:10.6.4+maria~focal) starting as process 1 ...
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Number of pools: 1
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
observium-db-1   | 2024-09-10 18:15:29 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Using Linux native AIO
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Completed initialization of buffer pool
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: 128 rollback segments are active.
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Creating shared tablespace for temporary tables
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: 10.6.4 started; log sequence number 42173; transaction id 14
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
observium-db-1   | 2024-09-10 18:15:29 0 [Note] Plugin 'FEEDBACK' is disabled.
observium-db-1   | 2024-09-10 18:15:29 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.
observium-db-1   | 2024-09-10 18:15:29 0 [Note] InnoDB: Buffer pool(s) load completed at 240910 18:15:29
observium-db-1   | 2024-09-10 18:15:29 0 [Note] Server socket created on IP: '0.0.0.0'.
observium-db-1   | 2024-09-10 18:15:29 0 [Note] Server socket created on IP: '::'.
observium-db-1   | 2024-09-10 18:15:29 0 [Warning] 'proxies_priv' entry '@% root@5c515e828451' ignored in --skip-name-resolve mode.
observium-db-1   | 2024-09-10 18:15:29 0 [Note] mysqld: ready for connections.
observium-db-1   | Version: '10.6.4-MariaDB-1:10.6.4+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
observium-app-1  | [2] Verifying coonection to observium database.
observium-app-1  | mysql: [Warning] Using a password on the command line interface can be insecure.
observium-app-1  | Connected to observium database successfully.
observium-app-1  | Setting /opt/observium/rrd directory to www-data:www-data.
observium-app-1  | changed ownership of '/opt/observium/rrd' from 1000:1000 to www-data:www-data
observium-app-1  | Initializing database schema in first time running for observium.
observium-app-1  |
observium-app-1  |   ___   _                              _
observium-app-1  |  / _ \ | |__   ___   ___  _ __ __   __(_) _   _  _ __ ___
observium-app-1  | | | | || '_ \ / __| / _ \| '__|\ \ / /| || | | || '_ ` _ \
observium-app-1  | | |_| || |_) |\__ \|  __/| |    \ V / | || |_| || | | | | |
observium-app-1  |  \___/ |_.__/ |___/ \___||_|     \_/  |_| \__,_||_| |_| |_|
observium-app-1  |                     Observium Community Edition 21.10.11666
observium-app-1  |                                   https://www.observium.org
observium-app-1  |
observium-app-1  | Install initial database schema ... done.
observium-app-1  | -- Updating database/file schema
observium-app-1  | 416 -> 417 # (db) .. Done (0s).
observium-app-1  | 417 -> 418 # (db) . Done (0s).
observium-app-1  | 418 -> 419 # (db) .... Done (0s).
observium-app-1  | 419 -> 420 # (db) .. Done (0s).
observium-app-1  | 420 -> 421 # (db) ... Done (0s).
observium-app-1  | 421 -> 422 # (db) .. Done (0s).
observium-app-1  | 422 -> 423 # (db) ...... Done (0s).
observium-app-1  | 423 -> 424 # (php)  Done (0s).
observium-app-1  | 424 -> 425 # (db) . Done (0s).
observium-app-1  | 425 -> 426 # (db) ............... Done (1s).
observium-app-1  | 426 -> 427 # (db) ... Done (0s).
observium-app-1  | 427 -> 428 # (db) ... Done (0s).
observium-app-1  | 428 -> 429 # (db) ... Done (0s).
observium-app-1  | 429 -> 430 # (db) (WARNING! Required MySQL version 5.6+ or MariaDB 10.0+).... Done (0s).
observium-app-1  | 430 -> 431 # (db) ..... Done (0s).
observium-app-1  | 431 -> 432 # (php)  Done (0s).
observium-app-1  | 432 -> 433 # (db) ......... Done (0s).
observium-app-1  | 433 -> 434 # (db) ... Done (0s).
observium-app-1  | 434 -> 435 # (db) . Done (0s).
observium-app-1  | 435 -> 436 # (db) . Done (0s).
observium-app-1  | 436 -> 437 # (db) .... Done (0s).
observium-app-1  | 437 -> 438 # (db) . Done (0s).
observium-app-1  | 438 -> 439 # (db) (update syslog alerts, may be long operation ~10-15min). Done (0s).
observium-app-1  | 439 -> 440 # (db) . Done (0s).
observium-app-1  | 440 -> 441 # (db) ..... Done (0s).
observium-app-1  | 441 -> 442 # (php) Fixing alert_table device_id:
observium-app-1  |  Done (0s).
observium-app-1  | 442 -> 443 # (db) . Done (0s).
observium-app-1  | 443 -> 444 # (db) . Done (1s).
observium-app-1  | 444 -> 445 # (db) ... Done (0s).
observium-app-1  | 445 -> 446 # (db) ....... Done (0s).
observium-app-1  | 446 -> 447 # (db) ......... Done (0s).
observium-app-1  | 447 -> 448 # (db) ... Done (0s).
observium-app-1  | 448 -> 449 # (db) .... Done (0s).
observium-app-1  | 449 -> 450 # (db) . Done (0s).
observium-app-1  | 450 -> 451 # (db) ... Done (0s).
observium-app-1  | 451 -> 452 # (db) . Done (0s).
observium-app-1  | 452 -> 453 # (db) . Done (0s).
observium-app-1  | 453 -> 454 # (php) Fixing alert_table device_id:
observium-app-1  |  Done (0s).
observium-app-1  | 454 -> 455 # (php) -+ Done (0s).
observium-app-1  | 455 -> 456 # (db) . Done (0s).
observium-app-1  | -- Done.
observium-app-1  | There is a newer revision of Observium available!
observium-app-1  | Version 23.09 (10th September 2024) is 1339 revisions ahead.
observium-app-1  |
observium-app-1  | Observium CE 21.10.11666
observium-app-1  | Add User
observium-app-1  |
observium-app-1  | User admin added successfully.
observium-app-1  | 2024-09-10 18:15:55,770 INFO exited: init (exit status 0; expected)

I can login with the new password and see an empty system

/content/images/2024/09/observium-21.png

We can then add it

/content/images/2024/09/observium-22.png

And I can see it listed

/content/images/2024/09/observium-23.png

I can add another without issue

/content/images/2024/09/observium-24.png

I’ll now launch on the rest of the hosts then add to Observium

/content/images/2024/09/observium-26.png

I can see details for the new hosts

/content/images/2024/09/observium-25.png

I tried setting up SMTP settings

/content/images/2024/09/observium-27.png

Then an email contact

/content/images/2024/09/observium-28.png

Then associate with my contact

/content/images/2024/09/observium-29.png

However, even waiting a full day, i never saw any alerts trigger. I also set a log alert for “.*” and did not see that trigger

/content/images/2024/09/observium-33.png

Perhaps it’s just that I don’t quite understand the alerting system - I’ll own that. But without a test and without some kind of clear schedule, I have no idea if notifications would even work.

Quick side note, I found the Entities global setting would let me switch to Fahrenheit

/content/images/2024/09/observium-30.png

On times

I watched the data for a day

/content/images/2024/09/observium-31.png

What really confuses me is that the date picker clearly knows my TZ (it is around 6a now so that looks right). But the graph labels wedenesday 6, 9 .. even if 9am that doesnt make any sense as its 6am Wednesday right now and i know we get some spikes around 1 to 3 am

/content/images/2024/09/observium-32.png

I have to assume that graph is in UTC which would make “Wed 09:00” about Wed 4am CDT (local).

Upgrades

As we saw from the banner

/content/images/2024/09/observium-35.png

there is a new version from the one I’m running (21.10)

builder@builder-T100:~/docker-observium$ cat docker-compose.yml
# Docker compose file for Observium
# Maintained by somsakc@hotmail.com

version: '3'

services:
  db:
    image: mariadb:10.6.4
    environment:
      - MYSQL_ROOT_PASSWORD=adfasdfasd
      - MYSQL_USER=observium
      - MYSQL_PASSWORD=passw0rd
      - MYSQL_DATABASE=observium
      - TZ=America/Chicago
    volumes:
      - ./data:/var/lib/mysql
    networks:
      - back-tier
    restart: always

  app:
    image: mbixtech/observium:21.10
    environment:
      - OBSERVIUM_ADMIN_USER=admin
      - OBSERVIUM_ADMIN_PASS=asdfasdfasfasd
      - OBSERVIUM_DB_HOST=db
      - OBSERVIUM_DB_NAME=observium
      - OBSERVIUM_DB_USER=observium
      - OBSERVIUM_DB_PASS=passw0rd
      - OBSERVIUM_BASE_URL=http://192.168.1.100:8078
      - TZ=America/Chicago
    volumes:
      - ./logs:/opt/observium/logs
      - ./rrd:/opt/observium/rrd
    networks:
      - back-tier
    ports:
      - "8078:80"
    restart: always
    depends_on:
      - db

networks:
  back-tier:
      driver: bridge

I believe we just need to use docker to turn off our system, update the label and docker compose to bring it back up.

builder@builder-T100:~/docker-observium$ docker compose down
[+] Running 3/3
 ✔ Container observium-app-1    Removed                                                                            3.1s
 ✔ Container observium-db-1     Removed                                                                            0.8s
 ✔ Network observium_back-tier  Removed                                                                            0.2s
builder@builder-T100:~/docker-observium$ sed -i 's/observium:21.10/observium:23.9/g' ./docker-compose.yml
builder@builder-T100:~/docker-observium$ cat docker-compose.yml | grep image:
    image: mariadb:10.6.4
    image: mbixtech/observium:23.9
builder@builder-T100:~/docker-observium$ docker compose up -d
[+] Running 16/16
 ✔ app 15 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                         29.4s
   ✔ 527f5363b98e Pull complete                                                                                    1.6s
   ✔ b00ab622d861 Pull complete                                                                                   11.7s
   ✔ 34fa6113af85 Pull complete                                                                                   11.9s
   ✔ 0241002f51cb Pull complete                                                                                   19.2s
   ✔ bcf9219452ea Pull complete                                                                                   19.3s
   ✔ e84b9809f01a Pull complete                                                                                   19.4s
   ✔ ef7f45dda573 Pull complete                                                                                   27.1s
   ✔ 4f4fb700ef54 Pull complete                                                                                   27.3s
   ✔ f904b04770dd Pull complete                                                                                   27.6s
   ✔ 172cd9141be4 Pull complete                                                                                   27.8s
   ✔ 2beac8a3dd36 Pull complete                                                                                   27.9s
   ✔ aecb79311c53 Pull complete                                                                                   28.1s
   ✔ 96a511479348 Pull complete                                                                                   28.2s
   ✔ a998549c6903 Pull complete                                                                                   28.4s
   ✔ 05d912d58b09 Pull complete                                                                                   28.6s
[+] Building 0.0s (0/0)
[+] Running 3/3
 ✔ Network observium_back-tier  Created                                                                            0.3s
 ✔ Container observium-db-1     Started                                                                            1.6s
 ✔ Container observium-app-1    Started                                                                            2.8s
builder@builder-T100:~/docker-observium$

Note: we can also go to Dockerhub and see releses there

/content/images/2024/09/observium-36.png

As well as their Github Releases.

However, on boot up, I could not log in, my admin password kept getting rejected…

I even went into the container to add a new admin user (level 10)

builder@builder-T100:~/docker-observium$ docker exec -it observium-app-1 /bin/sh
# cd /opt/observium
# ./adduser.php admin2 P4ssw0rd8888 10
Observium CE 23.9.13005
Add User

User admin2 added successfully.
#

But that failed

/content/images/2024/09/observium-37.png

FIXED!

One needs to fire off the Database migrations manually after upgrading the app image…

builder@builder-T100:~/docker-observium$ docker exec -it observium-app-1 /bin/sh
# /opt/observium/discovery.php -u

  ___   _                              _
 / _ \ | |__   ___   ___  _ __ __   __(_) _   _  _ __ ___
| | | || '_ \ / __| / _ \| '__|\ \ / /| || | | || '_ ` _ \
| |_| || |_) |\__ \|  __/| |    \ V / | || |_| || | | | | |
 \___/ |_.__/ |___/ \___||_|     \_/  |_| \__,_||_| |_| |_|
                     Observium Community Edition 23.9.13005
                                  https://www.observium.org

-- Updating database/file schema
456 -> 457 # (db) ..... Done (0s).
457 -> 458 # (db) ... Done (0s).
458 -> 459 # (db)  Done (0s).
459 -> 460 # (db) . Done (0s).
460 -> 461 # (db) .. Done (0s).
461 -> 462 # (db) .. Done (0s).
462 -> 463 # (db) . Done (0s).
463 -> 464 # (php) Renaming RRD files for alerts: []
 Done (0s).
464 -> 465 # (db) ... Done (0s).
465 -> 466 # (db) . Done (0s).
466 -> 467 # (db) . Done (0s).
467 -> 468 # (db) .. Done (0s).
468 -> 469 # (db) ...... Done (0s).
469 -> 470 # (db) .. Done (0s).
470 -> 471 # (db) . Done (0s).
471 -> 472 # (db) . Done (0s).
472 -> 473 # (db) ......... Done (0s).
473 -> 474 # (db) . Done (0s).
474 -> 475 # (db) . Done (0s).
475 -> 476 # (db) . Done (0s).
476 -> 477 # (db) ........... Done (0s).
477 -> 478 # (db) .. Done (0s).
478 -> 479 # (db) . Done (0s).
479 -> 480 # (db) . Done (0s).
480 -> 481 # (db) . Done (0s).
481 -> 482 # (db) ........ Done (0s).
482 -> 483 # (db) .. Done (0s).
483 -> 484 # (db) . Done (0s).
484 -> 485 # (db) . Done (0s).
-- Done.
-- Observium is up to date.
#

Once I did that, I could log back in

/content/images/2024/09/observium-38.png

And more importantly, I saw that the bug that annoyed me about UTC times in graphs was fixed!

/content/images/2024/09/observium-39.png

The new release has a few more features I didn’t notice before like Graphs on polling

/content/images/2024/09/observium-40.png

and refresh intervals if it was to be in a NOC or as a persistent dashboard

/content/images/2024/09/observium-41.png

Costs

The version we have been using, the “Community Edition” is free. The have a Professional and Enterprise which frankly are ridiculously cheap, in my opinion

/content/images/2024/09/observium-43.png

The Team page shows it’s basically a three man operation with the founder Adam Armstrong (and company registered) in the UK.

The company has been around for over 12 years and seems to do it’s one thing well.

It’s rather refreshing to see a CEO who tags himself in LI as “Accidental Founder, Reluctant CEO and Haphazard Investor.” and they just keep on with one solid, albeit older, product.

Summary

Overall, I like Observium. It’s an older PHP app but has some good graphing and monitors as fetched by way of SNMPD

/content/images/2024/09/observium-34.png

I’m torn on whether it’s better than the tried and true Zabbix which I covered in a two part series last year, “Zabbix: Part 1: Introduction and Setup” and “Zabbix: Part 2: Configuration and Usage”.

While I could expose this with a TLS ingress, it seems like the kind of app better kept behind the firewall of my network.

I can also use my Obsidian linuxserver shell to front into Observium and avoiding having to setup a persistent Observium ingress.

/content/images/2024/09/observium-42.png

Also, I made a couple of tweaks to the Playbook for restarts, so feel free to take a copy of the Ansible playbook and Jinja SNMPD conf File

Observium PHP Open-source Docker Monitoring

Have something to add? Feedback? You can use the feedback form

Isaac Johnson

Isaac Johnson

Cloud Solutions Architect

Isaac is a CSA and DevOps engineer who focuses on cloud migrations and devops processes. He also is a dad to three wonderful daughters (hence the references to Princess King sprinkled throughout the blog).

Theme built by C.S. Rhymes