Zabbix 7.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:

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

2 Likes

Hi @mrmarkuz

I’m in the process of testing Zabbix at 4 sites, 2 are new installs on a NS8 VM, the other two (Recently migrated from NS7) I intend to migrate as much as possible, also for testing and reporting purposes…

The first two also had NS7 / Zabbix before, but one is a complete new install (no migration), the other is only mail / file / AD migration, the network has changed too much to make a migration of Zabbix viable, a complete redesign makes sense!

Certain issues (mostly solved so far) delayed everything by a few weeks, but I’m still at it!

My 2 cents
Andy

1 Like

@mrmarkuz

A few questions:

I saw that images from my repo are under /images, the others are top level. This is somewhat different from before, and makes the importing / migration unecessary difficult - or duplicates in the library…

Any possiblity to correct / alleviate this in further updates?


How can a batch import of images be realized in NS8 / Zabbix?
Eg for importing a new, corrected library / repo of images?

Thanks for the great work so far!

My 2 cents
Andy

1 Like

Thanks for testing!

Did you migrate from a previous version or is it a fresh installation? I need to recheck…

Yes, I hope so. Currently the images are imported via an sql file. I’d like to have a folder where you can put the images and they’re imported on restart or directly.

1 Like

Hi @mrmarkuz

I isntalled my Home Zabbix (and NS8) completly new. Too much changed in my home network.

The clients NS7 is migrated (Only mail / fileserver/ ad) - but Zabbix / Nextcloud are completly fresh, new NS8 installs.
If possible, I intend to migrate data for 2 clients from the old Zabbix. Database / script probably, or test your script…

My 2 cents
Andy

1 Like

Zabbix 7.0 LTS release IS available.
Release Notes for Zabbix 7.0.0

they have a tone of new features and fixes…
Good thing with Docker based deployments, Upgrades might not be as headachy as were before.

Ill be available to help test What breaks during upgrade, when its available.

I don’t have an active Zabbix installation, nor am i currently using it in prod.

A cool new Addition for the future on Zabbix would be for larger Deployments (i dont know who would need this at the moment in the community)
however, the High availability and Load balancing, with multi Node Installation in NS8.

Interestingly we have not seen any app in ns8 implement that thus far, as a learning ground…

2 Likes

NS8-Zabbix was updated to use Zabbix 7.0 LTS.

https://www.zabbix.com/documentation/current/en/manual/introduction/whatsnew700

6 Likes

Released an update to 7.0.2 due to security issues, thanks to @capote who noticed it.

https://www.zabbix.com/rn/rn7.0.2

4 Likes