Zabbix 6.0 LTS testing

Please help testing the new Zabbix NS8 app.

Feel free to share your feedback and improvement ideas. Check out the Zabbix docker hub, maybe we need another variable to be configured in the UI?

Installation:

  • Add my repository, see the repository web site how to add it.
  • Install Zabbix via Software Center

Features:

  • A lot of map images by @Andy_Wismer
  • Set PHP time zone
  • Set a servername that is shown under the logo and as page title (browser tab)
  • Documented import of an NS7 Zabbix database
  • Status page app link

Documentation:

Todo:

  • Improve validation, the text fields are just checked for not being empty
  • Move app to NS8 Forge
  • NS7 migration tool

Pictures:

10 Likes

Tried to add your repo…

1 Like

Thanks for testing!

You missed the path, please set

https://repo.mrmarkuz.com/ns8/updates/

EDIT:

I corrected the instructions.

1 Like

I can’t reproduce. Did you check the network/firewall?

EDIT:

@fausp , you could try

https://raw.githubusercontent.com/mrmarkuz/ns8-mrmarkuz/repomd/ns8/updates/

as repo URL.

1 Like

Yes but I think its the browser (Firefox and Edge):

This works for me, thank you!

1 Like

Looks like a firewall blocks my domain because it’s maybe unknown or not mature enough…I’ll update the instructions.

1 Like

Nice Addition @mrmarkuz with these, NS8 should meet feature parity with ns7 much sooner

2 Likes

Works!

I have no real need for it (yet) but would like to explore a bit more. Any hints tips on installing zabbix agent(s) on other nodes or the main node itself?

TIA

1 Like

Thanks for testing, you could still use the old manual in the wiki: zabbix [NethServer Wiki]
I’ll provide a new agent manual asap…

3 Likes
in-place restore failed with "You can run just one instance on a node"
{
   "context": {
      "action": "restore-module",
      "data": {
         "node": 1,
         "path": "zabbix/2266f80e-2dfb-45e7-bce4-ea24961ca1ca",
         "replace": true,
         "repository": "86d1a8ac-ef89-557a-8e19-8582ab86b7c4",
         "snapshot": ""
      },
      "extra": {
         "completion": {
            "extraTextParams": [
               "node"
            ],
            "i18nString": "backup.instance_restored_to_node",
            "outputTextParams": [
               "module_id"
            ]
         },
         "description": "Restoring zabbix to Node 1",
         "node": "Node 1",
         "title": "Restore app"
      },
      "id": "90b42454-dc6f-4a8c-8611-47e8c192e3f6",
      "parent": "",
      "queue": "cluster/tasks",
      "timestamp": "2024-04-13T15:02:31.138058671Z",
      "user": "admin"
   },
   "progress": 79,
   "result": {
      "error": "restic dump latest state/environment
Assertion failed
  File \"/var/lib/nethserver/cluster/actions/restore-module/50restore_module\", line 93, in <module>
    agent.assert_exp(restore_task_result['exit_code'] == 0)
",
      "exit_code": 2,
      "file": "task/cluster/90b42454-dc6f-4a8c-8611-47e8c192e3f6",
      "output": ""
   },
   "status": "aborted",
   "subTasks": [
      {
         "context": {
            "action": "add-module",
            "data": {
               "image": "ghcr.io/mrmarkuz/zabbix:1.0.0-beta.3",
               "node": 1
            },
            "extra": {},
            "id": "26b42e8e-6b81-4e74-a831-c0e383b28266",
            "parent": "90b42454-dc6f-4a8c-8611-47e8c192e3f6"
         },
         "progress": 100,
         "result": {
            "error": "<7>podman-pull-missing ghcr.io/mrmarkuz/zabbix:1.0.0-beta.3
<7>extract-ui ghcr.io/mrmarkuz/zabbix:1.0.0-beta.3
Extracting container filesystem ui to /var/lib/nethserver/cluster/ui/apps/zabbix2
ui/css/
ui/css/about~31ecd969.f3b8eb2f.css
ui/css/app~748942c6.ca782fce.css
ui/i18n/
ui/i18n/de/
ui/i18n/de/translation.json
ui/i18n/en/
ui/i18n/en/translation.json
ui/i18n/es/
ui/i18n/es/translation.json
ui/i18n/eu/
ui/i18n/eu/translation.json
ui/i18n/it/
ui/i18n/it/translation.json
ui/i18n/pt/
ui/i18n/pt/translation.json
ui/i18n/pt_BR/
ui/i18n/pt_BR/translation.json
ui/img/
ui/img/module_default_logo.c9cc4493.png
ui/index.html
ui/js/
ui/js/about~31ecd969.b5a46d83.js
ui/js/about~31ecd969.b5a46d83.js.map
ui/js/app~748942c6.863de00a.js
ui/js/app~748942c6.863de00a.js.map
ui/js/chunk-vendors~0605657e.7f254d6a.js
ui/js/chunk-vendors~0605657e.7f254d6a.js.map
ui/js/chunk-vendors~0f485567.2b34adf2.js
ui/js/chunk-vendors~0f485567.2b34adf2.js.map
ui/js/chunk-vendors~17faf02d.7f68aab6.js
ui/js/chunk-vendors~17faf02d.7f68aab6.js.map
ui/js/chunk-vendors~1d97ff09.290bda9d.js
ui/js/chunk-vendors~1d97ff09.290bda9d.js.map
ui/js/chunk-vendors~2a42e354.0df57e14.js
ui/js/chunk-vendors~2a42e354.0df57e14.js.map
ui/js/chunk-vendors~2aa62147.38204dba.js
ui/js/chunk-vendors~2aa62147.38204dba.js.map
ui/js/chunk-vendors~41d44f25.e7779fa1.js
ui/js/chunk-vendors~41d44f25.e7779fa1.js.map
ui/js/chunk-vendors~46852254.0b6d19c2.js
ui/js/chunk-vendors~46852254.0b6d19c2.js.map
ui/js/chunk-vendors~57473a66.f586d2ed.js
ui/js/chunk-vendors~57473a66.f586d2ed.js.map
ui/js/chunk-vendors~5bb1f863.3efba861.js
ui/js/chunk-vendors~5bb1f863.3efba861.js.map
ui/js/chunk-vendors~5eba3806.b8428291.js
ui/js/chunk-vendors~5eba3806.b8428291.js.map
ui/js/chunk-vendors~690b702c.fd888ae3.js
ui/js/chunk-vendors~690b702c.fd888ae3.js.map
ui/js/chunk-vendors~7274e1de.72bc2eab.js
ui/js/chunk-vendors~7274e1de.72bc2eab.js.map
ui/js/chunk-vendors~86f6b1bc.be2cf131.js
ui/js/chunk-vendors~86f6b1bc.be2cf131.js.map
ui/js/chunk-vendors~b5906859.deff14e4.js
ui/js/chunk-vendors~b5906859.deff14e4.js.map
ui/js/chunk-vendors~bc21d4b3.68b10b46.js
ui/js/chunk-vendors~bc21d4b3.68b10b46.js.map
ui/js/chunk-vendors~be71a85b.9c367aa3.js
ui/js/chunk-vendors~be71a85b.9c367aa3.js.map
ui/js/chunk-vendors~c8728516.dd1ccc58.js
ui/js/chunk-vendors~c8728516.dd1ccc58.js.map
ui/js/chunk-vendors~d2305125.6a99a4ff.js
ui/js/chunk-vendors~d2305125.6a99a4ff.js.map
ui/js/chunk-vendors~d9886323.1a1a66f6.js
ui/js/chunk-vendors~d9886323.1a1a66f6.js.map
ui/js/chunk-vendors~db300d2f.ddb8641c.js
ui/js/chunk-vendors~db300d2f.ddb8641c.js.map
ui/js/chunk-vendors~ec8c427e.5c1734c3.js
ui/js/chunk-vendors~ec8c427e.5c1734c3.js.map
ui/js/chunk-vendors~fdc6512a.81c5c86c.js
ui/js/chunk-vendors~fdc6512a.81c5c86c.js.map
ui/js/lang-de-translation-json~3c620948.c6252c90.js
ui/js/lang-de-translation-json~3c620948.c6252c90.js.map
ui/js/lang-en-translation-json~9b60384d.83aed3be.js
ui/js/lang-en-translation-json~9b60384d.83aed3be.js.map
ui/js/lang-es-translation-json~f7c30340.434383b0.js
ui/js/lang-es-translation-json~f7c30340.434383b0.js.map
ui/js/lang-eu-translation-json~8ed4c5c2.33ab4b3c.js
ui/js/lang-eu-translation-json~8ed4c5c2.33ab4b3c.js.map
ui/js/lang-it-translation-json~e043826f.e33749b0.js
ui/js/lang-it-translation-json~e043826f.e33749b0.js.map
ui/js/lang-pt-translation-json~45d767f3.8b3eaa68.js
ui/js/lang-pt-translation-json~45d767f3.8b3eaa68.js.map
ui/js/lang-pt_BR-translation-json~eef7148a.487e22b9.js
ui/js/lang-pt_BR-translation-json~eef7148a.487e22b9.js.map
ui/metadata.json
ui/shortcuts.json
6409539b647fcd19e482adade6ab222d8ebddbfc94525d7aed170076744f5439
",
            "exit_code": 0,
            "file": "task/cluster/26b42e8e-6b81-4e74-a831-c0e383b28266",
            "output": {
               "image_name": "zabbix",
               "image_url": "ghcr.io/mrmarkuz/zabbix:1.0.0-beta.3",
               "module_id": "zabbix2"
            }
         },
         "status": "completed",
         "subTasks": [
            {
               "context": {
                  "action": "add-module",
                  "data": {
                     "environment": {
                        "IMAGE_DIGEST": "sha256:baa13e53c0bcdb2d07545ebe809d9cb903e61fb8658998844040ab912d8d4fed",
                        "IMAGE_ID": "bfea71f9fec6fd7bf5c4eeba86b9d410260d5cb2bc37edd9aa9b032fe92f2d48",
                        "IMAGE_REOPODIGEST": "ghcr.io/mrmarkuz/zabbix@sha256:baa13e53c0bcdb2d07545ebe809d9cb903e61fb8658998844040ab912d8d4fed",
                        "IMAGE_URL": "ghcr.io/mrmarkuz/zabbix:1.0.0-beta.3",
                        "MODULE_ID": "zabbix2",
                        "MODULE_UUID": "16f74709-be08-4842-8d16-0f2a5a5cac6c",
                        "NODE_ID": "1",
                        "TCP_PORT": "20011",
                        "TCP_PORTS": "20011"
                     },
                     "is_rootfull": false,
                     "module_id": "zabbix2"
                  },
                  "extra": {},
                  "id": "647df3b7-bfb0-4198-89e2-c63a7530c96a",
                  "parent": "26b42e8e-6b81-4e74-a831-c0e383b28266"
               },
               "progress": 100,
               "result": {
                  "error": "<7>useradd -m -k /etc/nethserver/skel -s /bin/bash zabbix2
<7>extract-image ghcr.io/mrmarkuz/zabbix:1.0.0-beta.3
Extracting container filesystem imageroot to /home/zabbix2/.config
Total bytes read: 24043520 (23MiB, 114MiB/s)
imageroot/actions/
imageroot/actions/clone-module/
imageroot/actions/clone-module/50traefik
imageroot/actions/configure-module/
imageroot/actions/configure-module/01Hostname_validation
imageroot/actions/configure-module/10configure_environment_vars
imageroot/actions/configure-module/20configure_traefik
imageroot/actions/configure-module/80start_services
imageroot/actions/configure-module/validate-input.json
imageroot/actions/create-module/
imageroot/actions/create-module/90firewall
imageroot/actions/destroy-module/
imageroot/actions/destroy-module/20destroy
imageroot/actions/destroy-module/90firewall
imageroot/actions/get-configuration/
imageroot/actions/get-configuration/20read
imageroot/actions/get-configuration/validate-output.json
imageroot/actions/restore-module/
imageroot/actions/restore-module/06copyenv
imageroot/actions/restore-module/40restore_database
imageroot/actions/restore-module/50traefik
imageroot/bin/
imageroot/bin/discover-smarthost
imageroot/bin/module-cleanup-state
imageroot/bin/module-dump-state
imageroot/etc/
imageroot/etc/state-include.conf
imageroot/events/
imageroot/events/smarthost-changed/
imageroot/events/smarthost-changed/10reload_services
imageroot/images/
imageroot/images/images.sql
imageroot/systemd/
imageroot/systemd/user/
imageroot/systemd/user/postgresql-app.service
imageroot/systemd/user/zabbix-agent.service
imageroot/systemd/user/zabbix-app.service
imageroot/systemd/user/zabbix-server.service
imageroot/systemd/user/zabbix.service
imageroot/update-module.d/
imageroot/update-module.d/20restart
changed ownership of './state/environment' from root:root to zabbix2:zabbix2
changed ownership of './state/agent.env' from root:root to zabbix2:zabbix2
changed ownership of './systemd/user/postgresql-app.service' from root:root to zabbix2:zabbix2
changed ownership of './systemd/user/zabbix-agent.service' from root:root to zabbix2:zabbix2
changed ownership of './systemd/user/zabbix-app.service' from root:root to zabbix2:zabbix2
changed ownership of './systemd/user/zabbix-server.service' from root:root to zabbix2:zabbix2
changed ownership of './systemd/user/zabbix.service' from root:root to zabbix2:zabbix2
changed ownership of './.imageroot.lst' from root:root to zabbix2:zabbix2
changed ownership of './actions/clone-module/50traefik' from root:root to zabbix2:zabbix2
changed ownership of './actions/clone-module' from root:root to zabbix2:zabbix2
changed ownership of './actions/configure-module/01Hostname_validation' from root:root to zabbix2:zabbix2
changed ownership of './actions/configure-module/10configure_environment_vars' from root:root to zabbix2:zabbix2
changed ownership of './actions/configure-module/20configure_traefik' from root:root to zabbix2:zabbix2
changed ownership of './actions/configure-module/80start_services' from root:root to zabbix2:zabbix2
changed ownership of './actions/configure-module/validate-input.json' from root:root to zabbix2:zabbix2
changed ownership of './actions/configure-module' from root:root to zabbix2:zabbix2
changed ownership of './actions/create-module/90firewall' from root:root to zabbix2:zabbix2
changed ownership of './actions/create-module' from root:root to zabbix2:zabbix2
changed ownership of './actions/destroy-module/20destroy' from root:root to zabbix2:zabbix2
changed ownership of './actions/destroy-module/90firewall' from root:root to zabbix2:zabbix2
changed ownership of './actions/destroy-module' from root:root to zabbix2:zabbix2
changed ownership of './actions/get-configuration/20read' from root:root to zabbix2:zabbix2
changed ownership of './actions/get-configuration/validate-output.json' from root:root to zabbix2:zabbix2
changed ownership of './actions/get-configuration' from root:root to zabbix2:zabbix2
changed ownership of './actions/restore-module/06copyenv' from root:root to zabbix2:zabbix2
changed ownership of './actions/restore-module/40restore_database' from root:root to zabbix2:zabbix2
changed ownership of './actions/restore-module/50traefik' from root:root to zabbix2:zabbix2
changed ownership of './actions/restore-module' from root:root to zabbix2:zabbix2
changed ownership of './actions' from root:root to zabbix2:zabbix2
changed ownership of './bin/discover-smarthost' from root:root to zabbix2:zabbix2
changed ownership of './bin/module-cleanup-state' from root:root to zabbix2:zabbix2
changed ownership of './bin/module-dump-state' from root:root to zabbix2:zabbix2
changed ownership of './bin' from root:root to zabbix2:zabbix2
changed ownership of './etc/state-include.conf' from root:root to zabbix2:zabbix2
changed ownership of './etc' from root:root to zabbix2:zabbix2
changed ownership of './events/smarthost-changed/10reload_services' from root:root to zabbix2:zabbix2
changed ownership of './events/smarthost-changed' from root:root to zabbix2:zabbix2
changed ownership of './events' from root:root to zabbix2:zabbix2
changed ownership of './images/images.sql' from root:root to zabbix2:zabbix2
changed ownership of './images' from root:root to zabbix2:zabbix2
changed ownership of './update-module.d/20restart' from root:root to zabbix2:zabbix2
changed ownership of './update-module.d' from root:root to zabbix2:zabbix2
9ca7ba43809d4eee0494a0dbf702dd451aee87847e3bbaf122f0f4fac199c73e
<7>systemctl try-restart promtail.service
<7>loginctl enable-linger zabbix2
",
                  "exit_code": 0,
                  "file": "task/node/1/647df3b7-bfb0-4198-89e2-c63a7530c96a",
                  "output": {
                     "redis_sha256": "4365af1fdaca4cbf39d686487304aea19fdeb760938cea4480d767d058c8c451"
                  }
               },
               "status": "completed",
               "subTasks": []
            },
            {
               "context": {
                  "action": "create-module",
                  "data": {
                     "images": [
                        "docker.io/postgres:15.5-alpine3.19",
                        "docker.io/zabbix/zabbix-server-pgsql:6.0-alpine-latest",
                        "docker.io/zabbix/zabbix-agent2:6.0-alpine-latest",
                        "docker.io/zabbix/zabbix-web-nginx-pgsql:6.0-alpine-latest"
                     ]
                  },
                  "extra": {},
                  "id": "603d1fb8-b8da-4c30-a029-92859767b182",
                  "parent": "26b42e8e-6b81-4e74-a831-c0e383b28266"
               },
               "progress": 100,
               "result": {
                  "error": "Add to module/zabbix2 environment POSTGRES_IMAGE=docker.io/postgres:15.5-alpine3.19
Add to module/zabbix2 environment ZABBIX_SERVER_PGSQL_IMAGE=docker.io/zabbix/zabbix-server-pgsql:6.0-alpine-latest
Add to module/zabbix2 environment ZABBIX_AGENT2_IMAGE=docker.io/zabbix/zabbix-agent2:6.0-alpine-latest
Add to module/zabbix2 environment ZABBIX_WEB_NGINX_PGSQL_IMAGE=docker.io/zabbix/zabbix-web-nginx-pgsql:6.0-alpine-latest
<7>podman-pull-missing docker.io/postgres:15.5-alpine3.19 docker.io/zabbix/zabbix-server-pgsql:6.0-alpine-latest docker.io/zabbix/zabbix-agent2:6.0-alpine-latest docker.io/zabbix/zabbix-web-nginx-pgsql:6.0-alpine-latest
Trying to pull docker.io/library/postgres:15.5-alpine3.19...
Getting image source signatures
Copying blob sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8
Copying blob sha256:35c99ea33aad5f1185d6e64637466cb64225f0c0a66fc8190d996707c6c761aa
Copying blob sha256:aae5880a99925721feaf31e049da854509fc9b2f6c5f1fc14c56c934744fe3b8
Copying blob sha256:2144f32fb020c5065622b631a7ac2e569319ede7b070a687dd0c0055912c8cd0
Copying blob sha256:6f7e005279ff39cc3888067813d9a2afa357a829548466f93e1236dd9df482d0
Copying blob sha256:ad7c8daccf63e2fce47fe5e4d860a1aab7d259a21ede996aacfe62e49808ce81
Copying blob sha256:994c5565273a48fe6e8c4c182b2e1b3cd440fc3cfa8389c7599c0b15db25a959
Copying blob sha256:ad00cec9913423f5e51295d48b3bb486cc0989cf6c2b255d76e37c2eb59b896f
Copying blob sha256:986bbf9a3bf6d3a2f707b240442e6c10cffd002d35c7ec42c4b8b56250d6f043
Copying config sha256:478703aef7f8676f16cb204389b751a26df4b85015e4d986aece4314ed13935c
Writing manifest to image destination
478703aef7f8676f16cb204389b751a26df4b85015e4d986aece4314ed13935c
Trying to pull docker.io/zabbix/zabbix-server-pgsql:6.0-alpine-latest...
Getting image source signatures
Copying blob sha256:6f94295467e123925aa530db7d86813eb518896aefd213c871ec4331739d20c5
Copying blob sha256:2a65acd687b7b82907315e6c914e41b01b629469d55125d8b417359073bb84d0
Copying blob sha256:9a3e8ac0dedf109217ab17a1def8bfcae220e40608f07154c9fcbb84861920eb
Copying blob sha256:670e4e353e983510a594fc345c15a354f6facaa025685f3f9164c77349d405a1
Copying blob sha256:2bc1df5436c6a8a2f73e1ee1e0083d78fc598e0c1ddb840c1eab3f041076fb2d
Copying blob sha256:a88dc8b54e91eb6b19695ef7e04865926d4df23004f414a3ee86978617492d4d
Copying blob sha256:02158d088315845520c572ba499ceff6f218ee4235749e3220d326422881bd37
Copying blob sha256:bb092bc8ea463ab70bd96d49b9fe0f495bb6ac2e4ab3fb97f705dc3ea64294eb
Copying blob sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
Copying blob sha256:2269a6bae56a9f161fad322453065ecb0b6f0f37e3353949e3d18e584a810f81
Copying config sha256:0c84a2b018edfd768c89e0b4834cee4a03d4154a53e889d498e938c865b387ac
Writing manifest to image destination
0c84a2b018edfd768c89e0b4834cee4a03d4154a53e889d498e938c865b387ac
Trying to pull docker.io/zabbix/zabbix-agent2:6.0-alpine-latest...
Getting image source signatures
Copying blob sha256:267cfa10266173be599ab4c37d02d03e4056b4d365c4648a75d316b851b09118
Copying blob sha256:52c95fcdb0a4c55a72ce6acbaa3704920b7a4ebc2525a4650ef8442f12ed0e29
Copying blob sha256:a88dc8b54e91eb6b19695ef7e04865926d4df23004f414a3ee86978617492d4d
Copying blob sha256:33d335132242ed17a7e67ccd5b851d61363bf5fddd4f395a502aef18aca8037b
Copying blob sha256:6ee0d8e28330b8745f0d4d94ab36f85c5c7652ed04724dd1d5b8a43ef22197a6
Copying blob sha256:f93bc67908bc96039ce5337847ea876c2bb3e9a15841d657a462ec3e4cf560ca
Copying blob sha256:614f5abada90a7debfba0d87ccb669d9c29f87d7de2bb99a25ba033f1f12767b
Copying blob sha256:8b097f9e821f66e512ec0e9d9353e6ed91cfa1ca2a65e4a6c36f1d0ffb2b9d93
Copying blob sha256:2379d65afdcb9a0c231aa7e2cfa647b6863aa279a52f1b4f2cd9e90c7a0a93dc
Copying blob sha256:13171092ac4895705c8db2d26da5d46eb2a7ea0a049de3377c35cd83c27e3420
Copying blob sha256:acea6bbc1750a8c7d918a223aa80dd15d19d01f4d1ae40e75b33b6ea566bf0ee
Copying blob sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
Copying blob sha256:4b342bf9fe55198c1290988e11fdcafa7c165ede29dccd457567979b7152ef50
Copying config sha256:b7d2deb4d0617bbe43267eae1838d7268d6f385bb5e7888e254098d984690ce0
Writing manifest to image destination
b7d2deb4d0617bbe43267eae1838d7268d6f385bb5e7888e254098d984690ce0
Trying to pull docker.io/zabbix/zabbix-web-nginx-pgsql:6.0-alpine-latest...
Getting image source signatures
Copying blob sha256:525d7f4c947b2889d98b4cf6d698c6339a9a08b111dad71497253946429d4b2f
Copying blob sha256:a88dc8b54e91eb6b19695ef7e04865926d4df23004f414a3ee86978617492d4d
Copying blob sha256:cdaa66da3ed3302b7c39b9d6f04dd0eb5804b262ad314d65eb33f2f725668438
Copying blob sha256:04febdafa449adba6a57335e6308273f3a415a147416f5ee16be592c3d9288a0
Copying blob sha256:14d19644ed9fcb2982d5b85c0a39555e931299ae58d30d5566f137fb63e21849
Copying blob sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
Copying config sha256:db97fd4bb8c4e884981ec400f3c980bd123e350bca007486c955b4457ba27c84
Writing manifest to image destination
db97fd4bb8c4e884981ec400f3c980bd123e350bca007486c955b4457ba27c84
1
_acontrol_task request attempt failed (WS reached EOF while waiting for node/1/task/cfbc2b90-0e78-4040-8ff4-d72c4523a253). Retrying...
",
                  "exit_code": 0,
                  "file": "task/module/zabbix2/603d1fb8-b8da-4c30-a029-92859767b182",
                  "output": ""
               },
               "status": "completed",
               "subTasks": [
                  {
                     "context": {
                        "action": "add-public-service",
                        "data": {
                           "ports": [
                              "10051/tcp"
                           ],
                           "service": "zabbix2"
                        },
                        "extra": {},
                        "id": "cfbc2b90-0e78-4040-8ff4-d72c4523a253",
                        "parent": "603d1fb8-b8da-4c30-a029-92859767b182",
                        "queue": "node/1/tasks",
                        "timestamp": "2024-04-13T15:04:26.991464478Z",
                        "user": "module/zabbix2"
                     },
                     "progress": 100,
                     "result": {
                        "error": "<7>firewall-cmd --permanent --new-service=zabbix2
success
<7>firewall-cmd --permanent --add-service=zabbix2
success
<7>firewall-cmd --permanent --service=zabbix2 --add-port=10051/tcp
success
<7>firewall-cmd --reload
success
",
                        "exit_code": 0,
                        "file": "task/node/1/cfbc2b90-0e78-4040-8ff4-d72c4523a253",
                        "output": ""
                     },
                     "status": "completed",
                     "subTasks": []
                  }
               ]
            }
         ]
      },
      {
         "context": {
            "action": "restore-module",
            "data": {
               "environment": {
                  "IMAGE_DIGEST": "sha256:baa13e53c0bcdb2d07545ebe809d9cb903e61fb8658998844040ab912d8d4fed",
                  "IMAGE_ID": "bfea71f9fec6fd7bf5c4eeba86b9d410260d5cb2bc37edd9aa9b032fe92f2d48",
                  "IMAGE_REOPODIGEST": "ghcr.io/mrmarkuz/zabbix@sha256:baa13e53c0bcdb2d07545ebe809d9cb903e61fb8658998844040ab912d8d4fed",
                  "IMAGE_URL": "ghcr.io/mrmarkuz/zabbix:1.0.0-beta.3",
                  "MODULE_ID": "zabbix1",
                  "MODULE_UUID": "2266f80e-2dfb-45e7-bce4-ea24961ca1ca",
                  "NODE_ID": "1",
                  "PHP_TZ": "Europe/Madrid",
                  "POSTGRES_IMAGE": "docker.io/postgres:15.5-alpine3.19",
                  "TCP_PORT": "20010",
                  "TCP_PORTS": "20010",
                  "TRAEFIK_HOST": "zabbix.ns8.test",
                  "TRAEFIK_HTTP2HTTPS": "False",
                  "TRAEFIK_LETS_ENCRYPT": "False",
                  "ZABBIX_AGENT2_IMAGE": "docker.io/zabbix/zabbix-agent2:6.0-alpine-latest",
                  "ZABBIX_SERVER_PGSQL_IMAGE": "docker.io/zabbix/zabbix-server-pgsql:6.0-alpine-latest",
                  "ZABBIX_WEB_NGINX_PGSQL_IMAGE": "docker.io/zabbix/zabbix-web-nginx-pgsql:6.0-alpine-latest",
                  "ZBX_SERVER_NAME": "asfasdfsafd"
               },
               "path": "zabbix/2266f80e-2dfb-45e7-bce4-ea24961ca1ca",
               "replace": true,
               "repository": "86d1a8ac-ef89-557a-8e19-8582ab86b7c4",
               "snapshot": "latest"
            },
            "extra": {},
            "id": "5ce526a1-f2ae-467d-bc21-44f0e4088b12",
            "parent": "90b42454-dc6f-4a8c-8611-47e8c192e3f6"
         },
         "progress": 83,
         "result": {
            "error": "<7>dump_env() is deprecated and implemented as a no-op
restic restore latest --target . --exclude state/environment
Trying to pull ghcr.io/nethserver/restic:2.6.0...
Getting image source signatures
Copying blob sha256:670c8e47ccdf40cf785901e5b715c3d6cd7f4c3d5931a30d04e0bd1bb9c9529d
Copying blob sha256:82e94dfc42a5139b349717d0ef16203b01c32a0a5c61b3b3c034e6a329868fbf
Copying config sha256:341e4131a2131a1d4336169346f222071ef2863400ec96a145360d8390a26932
Writing manifest to image destination
restoring <Snapshot 95fc35dd of [/srv/state/zabbix.pg_dump /srv/state/environment] at 2024-04-13 15:01:47.413397531 +0000 UTC by root@node4> to .
mkdir: created directory 'restore'
The files belonging to this database system will be owned by user \"postgres\".
This user must also own the server process.

The database cluster will be initialized with locale \"en_US.utf8\".
The default database encoding has accordingly been set to \"UTF8\".
The default text search configuration will be set to \"english\".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... sh: locale: not found
2024-04-13 15:04:47.490 UTC [25] WARNING:  no usable system locales were found
ok
syncing data to disk ... ok

initdb: warning: enabling \"trust\" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    pg_ctl -D /var/lib/postgresql/data -l logfile start

waiting for server to start....2024-04-13 15:04:48.376 UTC [31] LOG:  starting PostgreSQL 15.5 on x86_64-pc-linux-musl, compiled by gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014, 64-bit
2024-04-13 15:04:48.384 UTC [31] LOG:  listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"
2024-04-13 15:04:48.401 UTC [34] LOG:  database system was shut down at 2024-04-13 15:04:47 UTC
2024-04-13 15:04:48.419 UTC [31] LOG:  database system is ready to accept connections
 done
server started
CREATE DATABASE


/usr/local/bin/docker-entrypoint.sh: sourcing /docker-entrypoint-initdb.d/zabbix_restore.sh
waiting for server to shut down...2024-04-13 15:04:59.245 UTC [31] LOG:  received fast shutdown request
2024-04-13 15:04:59.274 UTC [31] LOG:  aborting any active transactions
2024-04-13 15:04:59.276 UTC [31] LOG:  background worker \"logical replication launcher\" (PID 37) exited with exit code 1
.2024-04-13 15:04:59.279 UTC [32] LOG:  shutting down
2024-04-13 15:04:59.283 UTC [32] LOG:  checkpoint starting: shutdown immediate
2024-04-13 15:04:59.884 UTC [32] LOG:  checkpoint complete: wrote 4828 buffers (29.5%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.078 s, sync=0.492 s, total=0.605 s; sync files=1112, longest=0.067 s, average=0.001 s; distance=42882 kB, estimate=42882 kB
2024-04-13 15:04:59.897 UTC [31] LOG:  database system is shut down
 done
server stopped
removed 'restore/zabbix_restore.sh'
removed directory 'restore/'
removed 'zabbix.pg_dump'
The configure-module subtask failed! You can run just one instance on a node.
  File \"/home/zabbix2/.config/actions/restore-module/50traefik\", line 18, in <module>
    agent.assert_exp(configure_retval['exit_code'] == 0, \"The configure-module subtask failed! You can run just one instance on a node.\")
",
            "exit_code": 2,
            "file": "task/module/zabbix2/5ce526a1-f2ae-467d-bc21-44f0e4088b12",
            "output": ""
         },
         "status": "aborted",
         "subTasks": [
            {
               "context": {
                  "action": "configure-module",
                  "data": {
                     "host": "zabbix.ns8.test",
                     "http2https": false,
                     "lets_encrypt": false,
                     "servername": "",
                     "timezone": "Europe/Vienna"
                  },
                  "extra": {},
                  "id": "d658e748-9c4a-46af-aae1-957cdf8e12a0",
                  "parent": "5ce526a1-f2ae-467d-bc21-44f0e4088b12",
                  "queue": "module/zabbix2/tasks",
                  "timestamp": "2024-04-13T15:05:00.366389302Z",
                  "user": "module/zabbix2"
               },
               "progress": 66,
               "result": {
                  "error": "<7>dump_env() is deprecated and implemented as a no-op
<7>dump_env() is deprecated and implemented as a no-op
Created symlink /home/zabbix2/.config/systemd/user/default.target.wants/zabbix.service → /home/zabbix2/.config/systemd/user/zabbix.service.
Job for zabbix.service failed because the control process exited with error code.
See \"systemctl --user status zabbix.service\" and \"journalctl --user -xeu zabbix.service\" for details.
",
                  "exit_code": 1,
                  "file": "task/module/zabbix2/d658e748-9c4a-46af-aae1-957cdf8e12a0",
                  "output": ""
               },
               "status": "aborted",
               "subTasks": [
                  {
                     "context": {
                        "action": "set-route",
                        "data": {
                           "host": "zabbix.ns8.test",
                           "http2https": false,
                           "instance": "zabbix2",
                           "lets_encrypt": false,
                           "url": "http://127.0.0.1:20011"
                        },
                        "extra": {},
                        "id": "65cedfb8-aa07-403c-a658-7c06cb05b14e",
                        "parent": "d658e748-9c4a-46af-aae1-957cdf8e12a0",
                        "queue": "module/traefik1/tasks",
                        "timestamp": "2024-04-13T15:05:01.151009678Z",
                        "user": "module/zabbix2"
                     },
                     "progress": 100,
                     "result": {
                        "error": "",
                        "exit_code": 0,
                        "file": "task/module/traefik1/65cedfb8-aa07-403c-a658-7c06cb05b14e",
                        "output": ""
                     },
                     "status": "completed",
                     "subTasks": []
                  }
               ]
            }
         ]
      }
   ],
   "validated": true
}
1 Like

Thx for testing!
Zabbix opens port 10051 on the node so it’s not possible to run more than one instance on a node.
It should work when you remove all instances before restore…

EDIT:

I can reproduce the error. The restored instance is there but cannot be configured without error because the zabbix.service container can’t bind to the node port 10051:

rootlessport listen tcp 0.0.0.0:10051: bind: address already in use

I’ll check if it’s possible to find a better way without throwing the error, maybe leaving the restored/cloned instances unconfigured.

2 Likes

That’s another great porting from ns7 :ok_hand:

1 Like