Compare commits

...

1833 Commits
3.4.9 ... 7.4

Author SHA1 Message Date
Alexey Pustovalov
b651d0e546 Removed env variables for arch for Windows images 2025-12-25 17:34:40 +09:00
Alexey Pustovalov
78ce5093c7 Removed env variables for arch for Windows images 2025-12-25 17:25:40 +09:00
Alexey Pustovalov
20b7c3f566 Updated qemu for actions 2025-12-23 02:32:52 +09:00
Alexey Pustovalov
ea2a43e692 Fix for RHEL images certification procedure 2025-12-21 10:53:10 +09:00
Alexey Pustovalov
7f122c4fa1 Minor fixes for Windows container build system 2025-12-21 00:41:54 +09:00
Alexey Pustovalov
1cfc72ebad Added additional host to white list 2025-12-20 22:38:19 +09:00
Alexey Pustovalov
8820908b86 Fixed pcre2 compilation on Windows for agent2 2025-12-20 12:47:46 +09:00
Alexey Pustovalov
5823311888 Fixed agent compilation on Windows. Minor redesign for build images on Windows 2025-12-20 01:35:36 +00:00
Alexey Pustovalov
339cc8bdb0 Added additional host to white list 2025-12-19 03:14:15 +09:00
Continuous Integration
3a5abe4617 Zabbix v7.4.6 release 2025-12-18 09:45:48 +02:00
Alexey Pustovalov
7e1a96eb00 Updated dependencies and build environment dependencies for Windows agents 2025-12-18 16:39:27 +09:00
Alexey Pustovalov
44c1992be6 Updated dependencies and build environment dependencies for Windows agents 2025-12-18 16:39:19 +09:00
Alexey Pustovalov
d5e70bbc31
Merge pull request #1824 from zabbix/dependabot/github_actions/github/codeql-action-4.31.8
Bump github/codeql-action from 4.31.0 to 4.31.8
2025-12-17 13:06:31 +09:00
Alexey Pustovalov
863b1628bb
Merge pull request #1823 from zabbix/dependabot/github_actions/actions/cache-5.0.1
Bump actions/cache from 4.3.0 to 5.0.1
2025-12-17 13:06:18 +09:00
Alexey Pustovalov
186d29fc77
Merge pull request #1822 from zabbix/dependabot/github_actions/docker/setup-qemu-action-3.7.0
Bump docker/setup-qemu-action from 3.6.0 to 3.7.0
2025-12-17 13:05:56 +09:00
Alexey Pustovalov
8d75f9d356
Merge pull request #1821 from zabbix/dependabot/github_actions/actions/dependency-review-action-4.8.2
Bump actions/dependency-review-action from 4.8.1 to 4.8.2
2025-12-17 13:05:44 +09:00
dependabot[bot]
801a741d50
Bump actions/dependency-review-action from 4.8.1 to 4.8.2
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.8.1 to 4.8.2.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](40c09b7dc9...3c4e3dcb1a)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-version: 4.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-17 04:05:33 +00:00
Alexey Pustovalov
89cb6bdc66
Merge pull request #1820 from zabbix/dependabot/github_actions/actions/upload-artifact-6.0.0
Bump actions/upload-artifact from 4.6.1 to 6.0.0
2025-12-17 13:05:17 +09:00
Alexey Pustovalov
005be07c63
Merge pull request #1819 from zabbix/dependabot/github_actions/peter-evans/dockerhub-description-5.0.0
Bump peter-evans/dockerhub-description from 4.0.0 to 5.0.0
2025-12-17 13:04:52 +09:00
Alexey Pustovalov
eafb5340ff
Merge pull request #1818 from zabbix/dependabot/github_actions/actions/checkout-6.0.1
Bump actions/checkout from 5.0.0 to 6.0.1
2025-12-17 13:04:21 +09:00
Alexey Pustovalov
8d14b04c58
Merge pull request #1817 from zabbix/dependabot/github_actions/SonarSource/sonarqube-scan-action-7.0.0
Bump SonarSource/sonarqube-scan-action from 6.0.0 to 7.0.0
2025-12-17 13:03:53 +09:00
Alexey Pustovalov
4c52d38506
Merge pull request #1816 from zabbix/dependabot/github_actions/ossf/scorecard-action-2.4.3
Bump ossf/scorecard-action from 2.4.1 to 2.4.3
2025-12-17 13:03:41 +09:00
Alexey Pustovalov
a75b0c69d7
Merge pull request #1815 from zabbix/dependabot/github_actions/step-security/harden-runner-2.14.0
Bump step-security/harden-runner from 2.13.1 to 2.14.0
2025-12-17 13:03:21 +09:00
dependabot[bot]
1a584b5a23
Bump actions/checkout from 5.0.0 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](08c6903cd8...8e8c483db8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-16 01:32:47 +00:00
Alexey Pustovalov
50b027269f Updated allowed endpoints 2025-12-16 10:31:25 +09:00
dependabot[bot]
2d0e60d57f
Bump github/codeql-action from 4.31.0 to 4.31.8
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.0 to 4.31.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4e94bd11f7...1b168cd394)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.31.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 06:12:07 +00:00
dependabot[bot]
2989ded3c1
Bump actions/cache from 4.3.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](0057852bfa...9255dc7a25)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 06:11:58 +00:00
dependabot[bot]
53886b1e56
Bump docker/setup-qemu-action from 3.6.0 to 3.7.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](29109295f8...c7c5346462)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 06:11:44 +00:00
dependabot[bot]
ef94106497
Bump actions/upload-artifact from 4.6.1 to 6.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.1 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](4cec3d8aa0...b7c566a772)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 06:11:36 +00:00
dependabot[bot]
b3d5beabaa
Bump peter-evans/dockerhub-description from 4.0.0 to 5.0.0
Bumps [peter-evans/dockerhub-description](https://github.com/peter-evans/dockerhub-description) from 4.0.0 to 5.0.0.
- [Release notes](https://github.com/peter-evans/dockerhub-description/releases)
- [Commits](e98e4d1628...1b9a80c056)

---
updated-dependencies:
- dependency-name: peter-evans/dockerhub-description
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 06:11:31 +00:00
dependabot[bot]
750c9d982e
Bump SonarSource/sonarqube-scan-action from 6.0.0 to 7.0.0
Bumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)
- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/v6.0.0...v7.0.0)

---
updated-dependencies:
- dependency-name: SonarSource/sonarqube-scan-action
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 06:11:14 +00:00
dependabot[bot]
e7d4568afb
Bump ossf/scorecard-action from 2.4.1 to 2.4.3
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.4.1 to 2.4.3.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](f49aabe0b5...4eaacf0543)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-version: 2.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 06:11:11 +00:00
dependabot[bot]
a333b4c03a
Bump step-security/harden-runner from 2.13.1 to 2.14.0
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.13.1 to 2.14.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](f4a75cfd61...20cf305ff2)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 06:11:06 +00:00
Alexey Pustovalov
13dd4cf567 Updated allowed endpoints 2025-12-15 15:04:55 +09:00
Alexey Pustovalov
739f83c427
Merge pull request #1746 from zabbix/dependabot/github_actions/docker/metadata-action-5.8.0
Bump docker/metadata-action from 5.7.0 to 5.8.0
2025-12-15 14:00:58 +09:00
Alexey Pustovalov
6b11be7b10
Merge pull request #1753 from zabbix/dependabot/github_actions/actions/checkout-5.0.0
Bump actions/checkout from 4.1.7 to 5.0.0
2025-12-15 14:00:46 +09:00
Alexey Pustovalov
866aa4e53c
Merge pull request #1766 from zabbix/dependabot/github_actions/actions/attest-build-provenance-3
Bump actions/attest-build-provenance from 2 to 3
2025-12-15 14:00:32 +09:00
Alexey Pustovalov
1ab0f7910a
Merge pull request #1769 from zabbix/dependabot/github_actions/actions/setup-python-6.0.0
Bump actions/setup-python from 5.4.0 to 6.0.0
2025-12-15 14:00:21 +09:00
Alexey Pustovalov
70ebd63b52
Merge pull request #1773 from zabbix/dependabot/github_actions/step-security/harden-runner-2.13.1
Bump step-security/harden-runner from 2.11.0 to 2.13.1
2025-12-15 14:00:09 +09:00
Alexey Pustovalov
47c3305a6c
Merge pull request #1781 from zabbix/dependabot/github_actions/actions/cache-4.3.0
Bump actions/cache from 4.2.2 to 4.3.0
2025-12-15 13:59:57 +09:00
Alexey Pustovalov
dcf2cda1a1
Merge pull request #1788 from zabbix/dependabot/github_actions/docker/login-action-3.6.0
Bump docker/login-action from 3.2.0 to 3.6.0
2025-12-15 13:59:45 +09:00
Alexey Pustovalov
540346db0a
Merge pull request #1797 from zabbix/dependabot/github_actions/actions/dependency-review-action-4.8.1
Bump actions/dependency-review-action from 4.3.3 to 4.8.1
2025-12-15 13:59:22 +09:00
Alexey Pustovalov
f0af7685c7
Merge pull request #1798 from zabbix/dependabot/github_actions/sigstore/cosign-installer-4.0.0
Bump sigstore/cosign-installer from 3.9.2 to 4.0.0
2025-12-15 13:59:11 +09:00
Alexey Pustovalov
c2dee31637
Merge pull request #1802 from zabbix/dependabot/github_actions/github/codeql-action-4.31.0
Bump github/codeql-action from 3.28.10 to 4.31.0
2025-12-15 13:58:29 +09:00
Alexey Pustovalov
2043ea4f18
Merge pull request #1778 from petrkle/7.4
Enable cidr in WEB_REAL_IP_FROM
2025-12-05 17:48:02 +09:00
Alexey Pustovalov
5d90a063b8 Fixed MariaDB connector TLS / SSL error with Oracle MySQL 2025-12-05 15:37:59 +09:00
Alexey Pustovalov
9890c36327 Fixed custom patches search 2025-12-05 15:36:20 +09:00
Alexey Pustovalov
c826638d38 Removed CentOS 10 from scan for vulnerabilities 2025-12-04 13:33:15 +09:00
Alexey Pustovalov
9a7ba6dbbe Updated Alpine Linux to 3.23 2025-12-04 12:59:44 +09:00
Alexey Pustovalov
bb9c218771 Fixed web-service building on RHEL 2025-12-02 15:57:45 +09:00
Alexey Pustovalov
f76b8d285a Fixed RedHat images build process 2025-12-02 15:57:37 +09:00
Alexey Pustovalov
3551587082 Fixed custom snmptrapd configuration file 2025-11-25 13:26:54 +09:00
Alexey Pustovalov
ad100c80ee Fixed web-service startup error 2025-11-19 17:39:03 +09:00
Alexey Pustovalov
4e182dedf1 Updated RHEL to 10.1 2025-11-17 18:54:47 +09:00
Alexey Pustovalov
17d5ed8d33 Fixed custom snmptrapd configuration file 2025-11-11 17:01:29 +09:00
Continuous Integration
846cd21c3d Zabbix v7.4.5 release 2025-11-03 13:44:46 +02:00
Continuous Integration
15e9afc872 Zabbix v7.4.4 release 2025-10-29 13:50:41 +02:00
dependabot[bot]
407291fa27
Bump github/codeql-action from 3.28.10 to 4.31.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.10 to 4.31.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b56ba49b26...4e94bd11f7)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.31.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 06:26:17 +00:00
dependabot[bot]
69342d9c63
Bump sigstore/cosign-installer from 3.9.2 to 4.0.0
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.9.2 to 4.0.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](d58896d6a1...faadad0cce)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 06:08:47 +00:00
dependabot[bot]
b5cd390fec
Bump actions/dependency-review-action from 4.3.3 to 4.8.1
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.3.3 to 4.8.1.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](72eb03d02c...40c09b7dc9)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-version: 4.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 06:12:49 +00:00
Alexey Pustovalov
b9037d85d7 Use c-ares library as DNS resolver 2025-10-03 12:02:10 +09:00
Alexey Pustovalov
b318f3d27b Use c-ares library as DNS resolver 2025-10-03 12:01:36 +09:00
Continuous Integration
15922fd093 Zabbix v7.4.3 release 2025-10-01 01:18:31 +03:00
dependabot[bot]
f9d4a03f85
Bump docker/login-action from 3.2.0 to 3.6.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.2.0 to 3.6.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](0d4c9c5ea7...5e57cd1181)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-30 06:09:05 +00:00
Alexey Pustovalov
e46c0832e1
Merge pull request #1784 from zabbix/dependabot/github_actions/dot-github/workflows/SonarSource/sonarqube-scan-action-6.0.0
Bump SonarSource/sonarqube-scan-action from 5.3.1 to 6.0.0 in /.github/workflows
2025-09-29 10:24:37 +09:00
Alexey Pustovalov
caafd5c50c Double quotes around patch path 2025-09-29 10:24:02 +09:00
dependabot[bot]
5630d98490
Bump SonarSource/sonarqube-scan-action in /.github/workflows
Bumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 5.3.1 to 6.0.0.
- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)
- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/v5.3.1...v6.0.0)

---
updated-dependencies:
- dependency-name: SonarSource/sonarqube-scan-action
  dependency-version: 6.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 13:20:24 +00:00
Alexey Pustovalov
f5eefca0da
Merge pull request #1782 from zabbix/dependabot/github_actions/dot-github/workflows/SonarSource/sonarqube-scan-action-5.3.1
Bump SonarSource/sonarqube-scan-action from 5.2.0 to 5.3.1 in /.github/workflows
2025-09-26 12:00:09 +09:00
dependabot[bot]
422e32f250
Bump SonarSource/sonarqube-scan-action in /.github/workflows
Bumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 5.2.0 to 5.3.1.
- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)
- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/v5.2.0...v5.3.1)

---
updated-dependencies:
- dependency-name: SonarSource/sonarqube-scan-action
  dependency-version: 5.3.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 02:59:40 +00:00
dependabot[bot]
30b3b669fb
Bump actions/cache from 4.2.2 to 4.3.0
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.2 to 4.3.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](d4323d4df1...0057852bfa)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-25 06:09:59 +00:00
Petr
808c6da0e6
Enable cidr in WEB_REAL_IP_FROM 2025-09-18 22:29:39 +02:00
dependabot[bot]
724a95d843
Bump step-security/harden-runner from 2.11.0 to 2.13.1
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.11.0 to 2.13.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](4d991eb9b9...f4a75cfd61)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 06:10:19 +00:00
dependabot[bot]
e670510045
Bump actions/setup-python from 5.4.0 to 6.0.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.4.0 to 6.0.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](42375524e2...e797f83bcb)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 11:15:59 +00:00
dependabot[bot]
f8ab63edab
Bump actions/attest-build-provenance from 2 to 3
Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) from 2 to 3.
- [Release notes](https://github.com/actions/attest-build-provenance/releases)
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md)
- [Commits](https://github.com/actions/attest-build-provenance/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/attest-build-provenance
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 06:09:31 +00:00
Continuous Integration
c82b6e59f9 Zabbix v7.4.2 release 2025-08-25 16:03:08 +03:00
Alexey Pustovalov
3d2a0dd9aa Fixed base image for Apache images with PostgreSQL support 2025-08-21 14:09:29 +09:00
Alexey Pustovalov
f04527e490 Updated Go to 1.25.0 2025-08-18 16:47:01 +09:00
dependabot[bot]
b8688e438c
Bump actions/checkout from 4.1.7 to 5.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](692973e3d9...08c6903cd8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 13:56:17 +00:00
Alexey Pustovalov
54b5482cb1 Removed static cosign version 2025-08-06 13:24:12 +09:00
Alexey Pustovalov
0940058fd6
Merge pull request #1731 from zabbix/dependabot/github_actions/sigstore/cosign-installer-3.9.2
Bump sigstore/cosign-installer from 3.8.1 to 3.9.2
2025-08-06 12:49:37 +09:00
dependabot[bot]
3ef7c9131c
Bump docker/metadata-action from 5.7.0 to 5.8.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](902fa8ec7d...c1e51972af)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: 5.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 09:13:33 +00:00
Alexey Pustovalov
f50ab224a5 Removed s390x and added ppc64le for Ubuntu 2025-07-31 17:59:37 +09:00
Continuous Integration
906ed94ad5 Zabbix v7.4.1 release 2025-07-30 12:47:01 +03:00
Alexey Pustovalov
bf92828c2c Updated OpenSSL build flags for Windows Zabbix agent and Zabbix agent 2 2025-07-29 12:40:42 +09:00
Alexey Pustovalov
b0a9e8ee00
Merge pull request #1732 from zabbix/fix/7_4_mysql_db_variable_export
fix: 7.4 MYSQL_DB variable export
2025-07-18 17:18:20 +09:00
Marks Sunins
d57938e075
feat: set php mysqli socket to user provided value 2025-07-18 08:09:26 +00:00
Marks Sunins
744c5eed89
feat: set php mysqli socket to user provided value 2025-07-18 08:09:14 +00:00
Marks Sunins
d857a30bb1
refactor: unify mysql_connect_args in web-frontend
- Refactored mysql_connect_args to be set under a single condition
2025-07-18 08:09:04 +00:00
Alexey Pustovalov
80ae6c771f Updated Sonacloud workflow 2025-07-18 15:45:11 +09:00
dependabot[bot]
33b0cee1db
Bump sigstore/cosign-installer from 3.8.1 to 3.9.2
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.1 to 3.9.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](d7d6bc7722...d58896d6a1)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.9.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-18 06:32:33 +00:00
Marks Sunins
7ed23e456c refactor: unify mysql_connect_args condition logic
- Refactored mysql_connect_args to be set under a single condition
2025-07-18 15:25:40 +09:00
Alexey Pustovalov
6aec0d215d Updated supported versions and removed old versions documentation 2025-07-18 14:31:59 +09:00
Marks Sunins
cacd04bcb1 fix: test ENV existence before exporting to config
- test `DB_SERVER_SOCKET` before set `ZBX_DB_SOCKET`
- test `DB_SERVER_HOST` before set `ZBX_DB_HOST`
- test `DB_SERVER_PORT` before set `ZBX_DB_PORT`
- remove trailing spaces in `docker-entrypoint.sh` files
2025-07-18 13:13:14 +09:00
Alexey Pustovalov
fc09a76aff Fixed temporary filesystem required for Chrome 2025-07-17 19:58:52 +09:00
Alexey Pustovalov
70953564f1 Fixed PostgreSQL 17 on Ubuntu images 2025-07-17 10:58:04 +09:00
Alexey Pustovalov
51b5f1a0f8 Fixed PostgreSQL 17 on Ubuntu images 2025-07-17 00:10:33 +09:00
Alexey Pustovalov
136d09f45e Fixed PostgreSQL 17 on Ubuntu images 2025-07-16 11:17:32 +09:00
Alexey Pustovalov
79d60209cd Removed orphaned *.pyc files from Ubuntu images 2025-07-15 18:05:00 +09:00
Alexey Pustovalov
3bc102be60 Fixed PostgreSQL 17 on Ubuntu images 2025-07-15 15:34:59 +09:00
Alexey Pustovalov
609866c700 Fixed maintenance message for Web-interface 2025-07-14 19:16:22 +09:00
Alexey Pustovalov
e983d96d30 Fixed package names for CentOS based images + removed LTSC2025 2025-07-08 14:26:49 +09:00
Alexey Pustovalov
20d11ee6d6 Added correct resolving for source IP addresses in case of HTTP proxies 2025-07-05 11:49:09 +03:00
Alexey Pustovalov
d6f0ef5997 Updated Oracle Linux 9 to 10 2025-07-04 10:37:03 +03:00
Alexey Pustovalov
24eec860fd Revert CentOS and remove deprecated Windows ltsc 2019 2025-07-01 20:19:52 +03:00
Pustovalov Alexey
c5681e8a90 Removed CentOS from build pipeline 2025-07-01 17:15:11 +03:00
Alexey Pustovalov
9dfc28bf0d
Merge pull request #1717 from zabbix/feat/release-7-4-0
feat: release Zabbix 7.4.0
2025-07-01 11:20:39 +03:00
Alexey Pustovalov
ea607c9ddd Updated Sonarcloud default branch 2025-07-01 11:20:08 +03:00
Marks Sunins
8534e1b944
chore: set Zabbix version tags in Dockerfiles 2025-07-01 06:33:40 +00:00
Marks Sunins
a84e942ce1
chore: update 7.4 README version references 2025-07-01 06:19:27 +00:00
Marks Sunins
eff34d0b87
chore: update 7.4 k8s image tags 2025-07-01 06:17:53 +00:00
Marks Sunins
230669ac0a
chore: set 7.4 default env vars 2025-07-01 06:16:55 +00:00
Alexey Pustovalov
39b04c8215 Added encryption support between server and frontend 2025-06-26 17:08:19 +09:00
Alexey Pustovalov
dc7086ede0 Added volume for custom MIBs 2025-06-10 14:34:47 +09:00
Alexey Pustovalov
4376467951 Updated readme 2025-06-04 13:04:48 +09:00
Alexey Pustovalov
0b40e2f006 Optimized Windows build environment 2025-06-03 06:51:15 +00:00
Alexey Pustovalov
c9c390b30e Optimized Windows build environment 2025-06-03 06:48:41 +00:00
Alexey Pustovalov
3e20237bdc Updated Alpine image to 3.22 version 2025-06-02 18:18:19 +09:00
Alexey Pustovalov
d0323bf85d Updated Alpine image to 3.22 version 2025-06-01 01:16:15 +09:00
Alexey Pustovalov
4a023d0937 Merge pull request #1665 from zabbix/feat/1298/kerberos-authentication-for-web-monitoring
Kerberos authentication for web monitoring #1298
2025-05-30 16:50:36 +09:00
Alexey Pustovalov
5d12e86b76 Added missing ping utility to all Server, Proxy and Agent images 2025-05-30 16:47:30 +09:00
Alexey Pustovalov
6ae4e8adf5 Increased build time for images 2025-05-29 10:26:18 +09:00
root
98aa0453a7 Updated PHP to 8.4 version on Alpine 2025-05-28 13:30:03 +00:00
root
4fb46b2122 Added Dockerfile for NVIDIA GPU monitoring 2025-05-28 07:48:15 +00:00
Alexey Pustovalov
9a0f5773e3 Using plain Windows nanoserver image for agent and agent2 images 2025-05-26 11:29:59 +09:00
Alexey Pustovalov
0101fb79b4 Using Windows nanoserver image instead of old Powershell image 2025-05-25 13:08:22 +00:00
Alexey Pustovalov
136ba9a5ed Using Windows nanoserver image instead of old Powershell image 2025-05-25 12:05:02 +00:00
Alexey Pustovalov
150a7c7d27 Removed Windows 2025 LTSC. Need to reorganizae powershell images (final) 2025-05-24 13:10:10 +09:00
Alexey Pustovalov
fb585c71ac Added Windows 2025 LTSC 2025-05-22 13:48:25 +09:00
Alexey Pustovalov
a0d7e57993 Updated libraries for Windows 2025-05-22 13:46:19 +09:00
Alexey Pustovalov
f57b511186 Updated CentOS Stream to 10 version from 9 2025-05-21 17:47:18 +09:00
Alexey Pustovalov
5602f6b383 Updated CentOS Stream to 10 version from 9 2025-05-21 17:46:39 +09:00
Alexey Pustovalov
ceb54c94a4 Updated RHEL from 9 to 10 2025-05-16 04:16:19 +09:00
Alexey Pustovalov
212f9019ba Updated RHEL from 9 to 10 2025-05-16 01:08:31 +09:00
Alexey Pustovalov
200d49489d
Merge pull request #1690 from zabbix/fix/DEVOPS-46/empty-db-socket
fix: env ZBX_DB_SOCKET being set to an empty value
2025-05-08 17:43:47 +09:00
Marks Sunins
13301349ae
fix: env ZBX_DB_SOCKET being set to an empty value 2025-05-08 08:34:08 +00:00
Alexey Pustovalov
750cce1334 Fixed fping binary permissions in Alpine images 2025-03-28 13:41:56 +09:00
Alexey Pustovalov
a0bac3925d Fixed ZBX_SSO_SETTINGS parameter format example 2025-03-14 16:48:54 +09:00
Alexey Pustovalov
6a58b8d00f Updated default PostgreSQL and TimescaleDB versions to 17 and 2.18.1 (PostgreSQL 17) 2025-03-13 15:31:49 +09:00
Alexey Pustovalov
9f12cc6022 Fixed usage Vault DB credentials with server and proxy 2025-03-13 15:24:12 +09:00
Alexey Pustovalov
de36c79a2c Merge pull request #1626 from zabbix/dependabot/github_actions/actions/setup-python-5.4.0
Bump actions/setup-python from 5.0.0 to 5.4.0
2025-03-06 16:02:47 +09:00
Alexey Pustovalov
0b8f537d6d Merge pull request #1638 from zabbix/dependabot/github_actions/step-security/harden-runner-2.11.0
Bump step-security/harden-runner from 2.10.3 to 2.11.0
2025-03-06 16:00:08 +09:00
Alexey Pustovalov
75bf967279 Merge pull request #1641 from zabbix/dependabot/github_actions/sigstore/cosign-installer-3.8.1
Bump sigstore/cosign-installer from 3.6.0 to 3.8.1
2025-03-06 16:00:08 +09:00
Alexey Pustovalov
a5dfac866c Merge pull request #1644 from zabbix/dependabot/github_actions/actions/upload-artifact-4.6.1
Bump actions/upload-artifact from 4.6.0 to 4.6.1
2025-03-06 16:00:08 +09:00
Alexey Pustovalov
742882ee0b Merge pull request #1645 from zabbix/dependabot/github_actions/ossf/scorecard-action-2.4.1
Bump ossf/scorecard-action from 2.3.1 to 2.4.1
2025-03-06 16:00:08 +09:00
Alexey Pustovalov
c29a5dd8c7 Merge pull request #1646 from zabbix/dependabot/github_actions/github/codeql-action-3.28.10
Bump github/codeql-action from 3.28.1 to 3.28.10
2025-03-06 16:00:08 +09:00
Alexey Pustovalov
b192250023 Added missing directory volume for additional libraries for Zabbix Java Gateway 2025-03-06 15:58:26 +09:00
dependabot[bot]
fcd7fb44ce Bump docker/setup-qemu-action from 3.4.0 to 3.6.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.4.0 to 3.6.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](4574d27a47...29109295f8)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 15:56:21 +09:00
dependabot[bot]
c75787321d Bump actions/cache from 4.2.0 to 4.2.2
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.0 to 4.2.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](1bd1e32a3b...d4323d4df1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 15:54:47 +09:00
dependabot[bot]
9303c172c5 Bump docker/metadata-action from 5.5.1 to 5.7.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.5.1 to 5.7.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](8e5442c4ef...902fa8ec7d)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 15:54:47 +09:00
dependabot[bot]
1f0170cbd0 Bump docker/build-push-action from 6.12.0 to 6.15.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.15.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](67a2d409c0...471d1dc4e0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 15:54:45 +09:00
dependabot[bot]
495eda0bff Bump docker/setup-buildx-action from 3.9.0 to 3.10.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](f7ce87c1d6...b5ca514318)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 15:54:26 +09:00
Alexey Pustovalov
c8820abfe4 Removed arm64 platform for web-service on Oracle Linux 2025-03-05 16:45:12 +09:00
Alexey Pustovalov
cd6a1d92ad Added missing ZBX_STARTSNMPPOLLERS to documentation 2025-02-27 13:15:20 +09:00
Alexey Pustovalov
c61c8c91e5 Fixed images dependencies in PostgreSQL variant compose files 2025-02-26 16:28:18 +09:00
Alexey Pustovalov
1185c4f0a3 Commented missing mount. Cannot build images on Podman 5+ 2025-02-26 13:18:59 +09:00
Alexey Pustovalov
8e26e7250b Updated OpenSSL version to 3.4.1 2025-02-19 14:31:56 +09:00
Alexey Pustovalov
afdac43d7b Updated OpenSSL version to 3.4.1 2025-02-19 14:15:22 +09:00
Alexey Pustovalov
e678ca156f Revert "Updated CentOS 9 to CentOS 10 Stream"
This reverts commit f0feafafc1.
2025-02-18 15:32:19 +09:00
Alexey Pustovalov
f0feafafc1 Updated CentOS 9 to CentOS 10 Stream 2025-02-17 15:11:04 +09:00
Alexey Pustovalov
cb1e3a1240 Fixed clean up error message on Windows 2025-02-16 15:50:35 +09:00
Alexey Pustovalov
2bd88d7f55 Fixed missing prepare_zbx_config function for some Nginx images 2025-02-12 13:51:08 +09:00
Alexey Pustovalov
565c5e0ea7 Fixed compose file variable 2025-01-31 13:43:26 +09:00
Alexey Pustovalov
8000c6b5e3 Removed cache for base images 2025-01-26 16:19:55 +09:00
Alexey Pustovalov
75b7bd8108 Removed cache for base images 2025-01-26 16:17:40 +09:00
Alexey Pustovalov
d2b828e8e1 Removed cache for base images 2025-01-26 16:16:09 +09:00
Alexey Pustovalov
e14e23dbe5 Removed cache for base images 2025-01-26 15:31:33 +09:00
Alexey Pustovalov
5d918e5d59 Removed cache for base images 2025-01-25 16:38:29 +09:00
Alexey Pustovalov
5f1b6289cf Removed cache for base images 2025-01-25 13:21:18 +09:00
Alexey Pustovalov
3976b96c74 Removed cache for base images 2025-01-24 17:22:50 +09:00
Alexey Pustovalov
a3107c7031 Merge pull request #1605 from zabbix/dependabot/github_actions/step-security/harden-runner-2.10.3
Bump step-security/harden-runner from 2.9.1 to 2.10.3
2025-01-17 17:13:22 +09:00
Alexey Pustovalov
590deee1a8 Merge pull request #1609 from zabbix/dependabot/github_actions/github/codeql-action-3.28.1
Bump github/codeql-action from 3.26.1 to 3.28.1
2025-01-17 17:13:22 +09:00
Alexey Pustovalov
e4e72484a5 Merge pull request #1604 from zabbix/dependabot/github_actions/docker/setup-qemu-action-3.3.0
Bump docker/setup-qemu-action from 3.1.0 to 3.3.0
2025-01-17 17:13:22 +09:00
Alexey Pustovalov
aaa83a5873 Merge pull request #1613 from zabbix/dependabot/github_actions/docker/build-push-action-6.12.0
Bump docker/build-push-action from 6.7.0 to 6.12.0
2025-01-17 17:13:22 +09:00
Alexey Pustovalov
ca0d629f17 Merge pull request #1603 from zabbix/dependabot/github_actions/actions/upload-artifact-4.6.0
Bump actions/upload-artifact from 4.3.6 to 4.6.0
2025-01-17 17:13:22 +09:00
Alexey Pustovalov
dfe97fa079 Merge pull request #1583 from zabbix/dependabot/github_actions/actions/cache-4.2.0
Bump actions/cache from 4.0.0 to 4.2.0
2025-01-17 17:13:22 +09:00
Alexey Pustovalov
429f5e7568 Added container scan tool 2025-01-17 16:44:37 +09:00
Alexey Pustovalov
9f8aef76a8 Fixed internal variable on Windows containers 2025-01-17 14:00:53 +09:00
Alexey Pustovalov
a1bcd2aece Added OpenSSL package to server and sqlite3 images. Required to perform rehash of added CA certificates 2025-01-16 13:53:02 +09:00
Alexey Pustovalov
04c3ea7a10 Fixed Nginx configuration dir on Ubuntu 2025-01-16 10:56:49 +09:00
Alexey Pustovalov
69cdfa9ffd Fixed snmptrapd persistent directory 2025-01-15 13:05:48 +09:00
Alexey Pustovalov
980260d273 Fixed snmptrapd persistent directory 2025-01-15 13:02:02 +09:00
Alexey Pustovalov
4f08636f83 Fixed dependency for snmptraps container 2025-01-15 01:53:30 +09:00
Alexey Pustovalov
c12909f78f Migrate to PHP-FPM for all Web images 2025-01-14 15:32:46 +09:00
Alexey Pustovalov
11996bb529 Migrate to PHP-FPM for all Web images 2025-01-14 14:48:23 +09:00
Alexey Pustovalov
fb2f54d2e2 Migrate to PHP-FPM for all Web images 2025-01-14 02:53:25 +09:00
Alexey Pustovalov
b10947d72a Updated build procedure for Windows containers 2025-01-13 19:33:32 +09:00
Alexey Pustovalov
9b2975fddf Fixed sonarcloud project name 2025-01-13 19:30:38 +09:00
Alexey Pustovalov
1ec60a3b3f Fixed secrets reading from ENV for Zabbix agent2 and proxy (sqlite3) 2025-01-13 19:27:23 +09:00
Alexey Pustovalov
f239aec83f Migrate to PHP-FPM for all Web images 2025-01-13 19:24:39 +09:00
Alexey Pustovalov
1be587fab9 Updated build procedure for Windows containers 2025-01-12 01:27:20 +09:00
Alexey Pustovalov
675d34c612 Fixed minor issues with Windows containers 2025-01-11 17:45:05 +09:00
Alexey Pustovalov
99bf0c8a3a Removed deprecated 6.4 version from tag list 2025-01-10 18:14:15 +09:00
Alexey Pustovalov
a33d9ae106 Updated build procedure for Windows containers 2025-01-10 17:42:07 +09:00
Alexey Pustovalov
b0add345eb Fixed param substition in config files 2025-01-10 01:25:38 +09:00
Alexey Pustovalov
ac9cb5cdaa Using env variable for base image on all images 2025-01-08 16:49:55 +09:00
Alexey Pustovalov
9b0b16dab6 Added additional cipher (DHE-RSA-CHACHA20-POLY1305) for all Apache images 2025-01-08 15:52:28 +09:00
Alexey Pustovalov
5c60bb650e Fixed warning message about HTTP/2 on Alpine. Added additional cipher (DHE-RSA-CHACHA20-POLY1305) for all Nginx images 2025-01-08 15:43:20 +09:00
Alexey Pustovalov
fef0b3545f Fixed default CentOS base image 2025-01-08 15:38:45 +09:00
Alexey Pustovalov
3a16fe140e Updated env variables for building process 2025-01-06 17:30:38 +09:00
Alexey Pustovalov
e13c2068ad Updated env variables for building process 2025-01-06 17:29:23 +09:00
Alexey Pustovalov
aae532547e Updated env variables for building process 2025-01-06 17:24:57 +09:00
Alexey Pustovalov
d9b5a9b5e0 Fixed location for item_keys.conf for agent2 2025-01-02 21:50:46 +09:00
Alexey Pustovalov
3efae28ffd Fixed errors related to disabled Persistent buffer file on agent2 2025-01-02 20:58:14 +09:00
Alexey Pustovalov
daa1d4226b Fixed errors related to disabled Persistent buffer file on agent2 2025-01-02 20:55:53 +09:00
Alexey Pustovalov
4a412e608a Moved agent config files to appropriate place 2024-12-31 23:44:59 +09:00
Alexey Pustovalov
7a07971338 Fixed missing ListenPort for Zabbix agent 2 2024-12-31 23:40:49 +09:00
Alexey Pustovalov
3be164b37b Updated dependencies for Windows containers 2024-12-31 20:35:37 +09:00
Alexey Pustovalov
31131f0b5e Updated dependencies for Windows containers 2024-12-31 16:36:27 +09:00
Alexey Pustovalov
b799faec22 Updated dependencies for Windows containers 2024-12-31 14:07:12 +09:00
Alexey Pustovalov
0bd0867baf Updated dependencies for Windows containers 2024-12-31 13:02:42 +09:00
Alexey Pustovalov
44dcf6cfe6 Updated dependencies for Windows containers 2024-12-31 02:36:07 +09:00
Alexey Pustovalov
811ca70689 Fixed Windows containers building 2024-12-30 16:29:20 +00:00
Alexey Pustovalov
e62d67cacf Prepare for env variables in Windows containers 2024-12-30 20:17:45 +09:00
Alexey Pustovalov
ab18a9f39f Fixed Windows containers building 2024-12-30 10:39:43 +00:00
Alexey Pustovalov
6b6efc6f8a Updated Windows containers build process 2024-12-29 11:00:54 +00:00
Alexey Pustovalov
fb151f8cd6 Updated dependencies for Windows containers 2024-12-29 16:20:15 +09:00
Alexey Pustovalov
f0366df138 Prepare for env variable usage on Windows containers 2024-12-27 19:28:40 +09:00
Alexey Pustovalov
91150fde9a Prepare for env variable usage on Windows containers 2024-12-27 19:09:50 +09:00
Alexey Pustovalov
342916d3fc Prepare for env variable usage on Windows containers 2024-12-27 19:06:18 +09:00
Alexey Pustovalov
3295f2808b Prepare for env variable usage on Windows containers 2024-12-27 18:09:47 +09:00
Alexey Pustovalov
ec8a681966 Prepare for env variable usage on Windows containers 2024-12-27 17:59:46 +09:00
Alexey Pustovalov
785274df6d Using ADD instruction instead of PowerShell download 2024-12-27 17:33:12 +09:00
Alexey Pustovalov
f83936f69d Using ADD instruction instead of PowerShell download 2024-12-27 17:27:14 +09:00
Alexey Pustovalov
9fc396072b Using ADD instruction instead of PowerShell download 2024-12-27 17:23:51 +09:00
Alexey Pustovalov
7b8beabbf7 Using ADD instruction instead of PowerShell download 2024-12-27 17:20:00 +09:00
Alexey Pustovalov
3b2243cf15 Using ADD instruction instead of PowerShell download 2024-12-27 17:18:57 +09:00
Alexey Pustovalov
df1ebe9768 Using ADD instruction instead of PowerShell download 2024-12-27 16:46:13 +09:00
Alexey Pustovalov
5ff0e209b5 Using ADD instruction instead of PowerShell download 2024-12-27 16:28:43 +09:00
Alexey Pustovalov
82e7ce4688 Using ADD instruction instead of PowerShell download 2024-12-27 13:30:46 +09:00
Alexey Pustovalov
001f94fac4 Using ADD instruction instead of PowerShell download 2024-12-27 13:24:32 +09:00
Alexey Pustovalov
b428022ff0 Using ADD instruction instead of PowerShell download 2024-12-27 13:19:44 +09:00
Alexey Pustovalov
24e2138762 Using ADD instruction instead of PowerShell download 2024-12-27 13:17:13 +09:00
Alexey Pustovalov
a872962d36 Using ADD instruction instead of PowerShell download 2024-12-27 13:10:56 +09:00
Alexey Pustovalov
79af13df25 Using ADD instruction instead of PowerShell download 2024-12-27 12:49:39 +09:00
Alexey Pustovalov
5aa63e8a4a Added image for Windows Server 2025 2024-12-27 12:10:38 +09:00
Alexey Pustovalov
d9dacc64c8 Added image for Windows Server 2025 2024-12-27 12:09:37 +09:00
Alexey Pustovalov
de410ddf2d Sync bash code with 7.2 version 2024-12-27 01:56:09 +09:00
Alexey Pustovalov
829441dd0c Merge env variables for standard locations 2024-12-26 15:54:22 +09:00
Alexey Pustovalov
e23918cf57 Merge env variables for standard locations 2024-12-26 15:54:20 +09:00
Alexey Pustovalov
fa58f24f6e Fix /zabbix_agentd.d/ location for agent 2 2024-12-26 00:44:04 +09:00
Alexey Pustovalov
2a62353498 Fixed duplicate Include parameters for agent and agent2 images 2024-12-25 14:41:51 +09:00
Alexey Pustovalov
b7cb725fb3 Add verification for binary Zabbix components after installing dependencies 2024-12-25 14:28:21 +09:00
Alexey Pustovalov
397aeefb97 Added support for PostgreSQL database socket volume 2024-12-25 02:14:01 +09:00
Alexey Pustovalov
91825e34a4 Merge various changes with Zabbix 7.2 branch 2024-12-25 01:34:43 +09:00
Alexey Pustovalov
11fbb299b5 Merge various changes with Zabbix 7.2 branch 2024-12-25 01:29:57 +09:00
Alexey Pustovalov
8257994171 Move sources directory and introduce additional build context 2024-12-25 01:22:42 +09:00
Alexey Pustovalov
5730d6c0d2 Move sources directory and introduce additional build context 2024-12-25 01:18:43 +09:00
Alexey Pustovalov
4a9c6eb3c6 Move sources directory and introduce additional build context 2024-12-25 01:17:52 +09:00
Alexey Pustovalov
4840ebfe80 Added support for PostgreSQL database socket volume 2024-12-25 01:05:36 +09:00
Alexey Pustovalov
9ef4ed15bb Added config templates for Zabbix agent (Windows) 2024-12-24 19:03:27 +09:00
Alexey Pustovalov
a75ba3c057 Fix env variable for HeartbeatFrequency parameter 2024-12-24 14:01:13 +09:00
Alexey Pustovalov
d0bcd5d03e Fix default value for RefreshActiveChecks parameter 2024-12-24 13:56:05 +09:00
Alexey Pustovalov
33847a329d Updated compose files configuration for IPv6 2024-12-24 13:51:49 +09:00
Alexey Pustovalov
a556024d4c Fixed build error on server (PostgreSQL, Oracle Linux) 2024-12-24 12:05:57 +09:00
Alexey Pustovalov
b859cdcd98 Added missing parameters to env files 2024-12-24 02:50:47 +09:00
Alexey Pustovalov
63b3efb1c1 Env variables syntax for proxies 2024-12-23 23:19:01 +09:00
Alexey Pustovalov
340ddbdd9f Added missing variables to Web-service env file 2024-12-23 23:11:34 +09:00
Alexey Pustovalov
5c7ed677d2 Added missing Zabbix agent 2 status port 2024-12-23 23:08:35 +09:00
Alexey Pustovalov
7470fef082 Migrated images to use native Zabbix environment variables 2024-12-23 22:01:30 +09:00
Alexey Pustovalov
a01af62dff Migrated images to use native Zabbix environment variables 2024-12-23 21:23:06 +09:00
Alexey Pustovalov
c952d4ef69 Migrated images to use native Zabbix environment variables 2024-12-23 21:22:01 +09:00
Alexey Pustovalov
850cde0309 Added init services for DB schema create only to compose file 2024-12-21 21:19:17 +09:00
Alexey Pustovalov
0cad94f31e Added new plugin NVIDIA GPU 2024-12-21 03:02:58 +09:00
Alexey Pustovalov
527e146761 Fixed warning messages on Alpine (mysql->mariadb) during SQL queries 2024-12-20 18:43:46 +09:00
Alexey Pustovalov
0887b1094e Fixed runtime library on Ubuntu 2024-12-20 17:25:39 +09:00
Alexey Pustovalov
78705b4ab1 Added bash package to all images 2024-12-17 14:36:06 +09:00
Alexey Pustovalov
123d286845 Updated next Zabbix version to 7.4 2024-12-16 14:33:26 +09:00
Alexey Pustovalov
6bb4ef2339 Updated next Zabbix version to 7.4 2024-12-16 13:16:31 +09:00
Alexey Pustovalov
6cdeb7bc47 Prepare for Zabbix 7.2 release 2024-12-11 01:08:14 +09:00
Alexey Pustovalov
d5ef98f9f1 Removed orphaned commands 2024-12-08 02:35:19 +09:00
Alexey Pustovalov
0d46ce028c Added riscv64 arch for Alpine and Ubuntu images. Using openjdk17 for ppc64le on Alpine 2024-12-07 20:32:05 +09:00
Alexey Pustovalov
991a9b38df Updated Go lang on Ubuntu (noble), Nginx on RHEL like OS base images 2024-12-07 16:48:07 +09:00
Alexey Pustovalov
da22cf7a78 Fixed EXPOSE_WEB_SERVER_INFO parameter for Apache on Ubuntu 2024-12-06 22:11:25 +09:00
Alexey Pustovalov
1fd73dce18 Fixed RHEL base image cache 2024-12-06 17:41:18 +09:00
Alexey Pustovalov
cd3ab1a941 Fixed CentOS base image cache 2024-12-06 16:32:29 +09:00
Alexey Pustovalov
90fe04900b Updated PostgreSQL client to 17 version on Alpine 2024-12-06 16:27:48 +09:00
Alexey Pustovalov
380f7e94ea Updated Alpine version from 3.20 to 3.21 2024-12-06 14:20:01 +09:00
Alexey Pustovalov
2a116c3ce1 Removed duplicates for packages 2024-12-05 15:42:52 +09:00
Alexey Pustovalov
0d52aec96d Added firewall rule 2024-12-05 15:39:33 +09:00
dependabot[bot]
3de0455110 Bump actions/attest-build-provenance from 1 to 2
Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) from 1 to 2.
- [Release notes](https://github.com/actions/attest-build-provenance/releases)
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md)
- [Commits](https://github.com/actions/attest-build-provenance/compare/v1...v2)

---
updated-dependencies:
- dependency-name: actions/attest-build-provenance
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-05 15:38:12 +09:00
Alexey Pustovalov
2592041985 Merge pull request #1580 from scottyah/kubernetes-autoscaler-fix
updated API version, parameter structure
2024-12-05 15:38:02 +09:00
Alexey Pustovalov
60c4e210fe Update SECURITY.md 2024-11-22 11:49:53 +09:00
Alexey Pustovalov
4aced036f8 Update SECURITY.md
Signed-off-by: Alexey Pustovalov <alexey.pustovalov@zabbix.com>
2024-11-22 11:49:26 +09:00
Alexey Pustovalov
2c8b85c3e0 Updated RHEL to 9.5 2024-11-14 15:27:37 +09:00
Alexey Pustovalov
8a62be2ac3 Using ENV variable for Buzybox image 2024-10-25 18:25:40 +09:00
Alexey Pustovalov
46d482071a Using ENV variable for Buzybox image 2024-10-25 18:22:40 +09:00
Alexey Pustovalov
a29fe86268 Using ENV variable for Buzybox image 2024-10-25 17:14:02 +09:00
Alexey Pustovalov
18117848d9 Fixed build CentOS base images 2024-10-23 16:55:43 +09:00
Alexey Pustovalov
b8a6510b88 Fixed build on RHEL and OEL 2024-10-23 12:46:57 +09:00
Alexey Pustovalov
eb8bc59778 Updated curl for Windows Zabbix agent 2024-10-23 00:18:32 +09:00
Alexey Pustovalov
987fcdda07 Fixed build on RHEL and OEL 2024-10-23 00:14:13 +09:00
Alexey Pustovalov
113fad9e82 Updated GO Lang for Windows 2024-10-22 14:42:34 +09:00
Alexey Pustovalov
0015128e15 Fixed possible injection of traps in trap receiver 2024-10-02 00:35:21 +09:00
Alexey Pustovalov
e316e552ac Updated OpenSSL to 3.3.2 for Windows 2024-09-27 13:40:15 +09:00
Alexey Pustovalov
2fceec51e8 Fixed PHP error logging 2024-09-24 14:22:58 +09:00
Alexey Pustovalov
c378cdbc2e Removed static user for Zabbix snmptraps image 2024-09-24 14:01:07 +09:00
Alexey Pustovalov
6708993fb2 Using long syntax to expose ports 2024-09-20 01:25:55 +09:00
Alexey Pustovalov
9ff5350de3 Added hostname package for CentOS images 2024-09-18 01:17:42 +09:00
Alexey Pustovalov
2f0b2c44f3 Fixed NotoSansCJKjp fonts URL 2024-08-27 13:56:33 +09:00
Alexey Pustovalov
af3b2aba73 Fixed NotoSansCJKjp fonts URL 2024-08-27 01:02:32 +09:00
Alexey Pustovalov
f169159b53 Added ZBX_TLS variables to specify data without attached volume with encryption files 2024-08-21 20:26:24 +09:00
Alexey Pustovalov
09fc37682b Clear ZBX, DB env variables before starting agent, server, proxy and web-service 2024-08-20 18:09:56 +09:00
Alexey Pustovalov
00c3ad8c3e Added build arg for CFLAGS 2024-08-15 16:48:24 +09:00
Alexey Pustovalov
07fbd9e7d5 Updated cosign version 2024-08-14 17:47:58 +09:00
Alexey Pustovalov
b06ec9b209 Updated cosign version 2024-08-14 17:47:50 +09:00
Alexey Pustovalov
95fefe1bc4 Merge pull request #1489 from DemoYeti/patch-1
chore: use better `alt` for logo
2024-08-14 17:39:36 +09:00
Alexey Pustovalov
b6266b4060 Merge pull request #1485 from zabbix/dependabot/github_actions/actions/upload-artifact-4.3.6
Bump actions/upload-artifact from 4.3.4 to 4.3.6
2024-08-14 17:38:37 +09:00
Alexey Pustovalov
b3781bc08f Merge pull request #1491 from zabbix/dependabot/github_actions/github/codeql-action-3.26.1
Bump github/codeql-action from 3.25.11 to 3.26.1
2024-08-14 17:38:27 +09:00
Alexey Pustovalov
7d352bcfbc Merge pull request #1492 from zabbix/dependabot/github_actions/docker/build-push-action-6.7.0
Bump docker/build-push-action from 6.3.0 to 6.7.0
2024-08-14 17:37:37 +09:00
Alexey Pustovalov
7819ec2df4 Merge pull request #1487 from zabbix/dependabot/github_actions/sigstore/cosign-installer-3.6.0
Bump sigstore/cosign-installer from 3.4.0 to 3.6.0
2024-08-14 17:37:12 +09:00
Alexey Pustovalov
39e9e5a42c Merge pull request #1483 from zabbix/dependabot/github_actions/step-security/harden-runner-2.9.1
Bump step-security/harden-runner from 2.8.1 to 2.9.1
2024-08-14 17:36:35 +09:00
Alexey Pustovalov
b0f30485a1 Added possibility to build images from local source direactory 2024-08-14 16:50:44 +09:00
Alexey Pustovalov
434531ef13 Added possibility to build images from local source direactory 2024-08-14 16:40:30 +09:00
Alexey Pustovalov
622f09af12 Merge pull request #1478 from zabbix/sokurenko/7.0
Fixed build failure with local branch due to missing plugins branch with same name by allowing ZBX_PLUGINS_VERSION argument
2024-07-31 12:22:25 +09:00
Alexey Pustovalov
a09458cecd Fixed missing hostname package for OL 2024-07-29 16:53:04 +09:00
Alexey Pustovalov
d1961d355b Using audit mode to learn new CentOS repo 2024-07-29 15:50:40 +09:00
Alexey Pustovalov
7957d40981 Fixed ZBX_STARTIPMIPOLLERS param name 2024-07-29 14:12:40 +09:00
Alexey Pustovalov
11c33b8007 Removed vulnerability scanner 2024-07-24 18:37:03 +09:00
Alexey Pustovalov
50ebc1abbc Added vulnerability scanner 2024-07-24 18:29:09 +09:00
Alexey Pustovalov
7a9e42a895 Use latest available PHP version (8.2) on EL and derivatives 2024-07-23 18:13:50 +09:00
Alexey Pustovalov
6b1d6cfd96 Fixed usage Vault with non-vault DB credentials 2024-07-22 16:51:42 +09:00
Alexey Pustovalov
3debbfd114 Fixed restart Web Nginx on Ubuntu under root 2024-07-18 21:05:56 +09:00
Pustovalov Alexey
a8136afac4 Updated versions of GitHub actions 2024-07-08 13:31:41 +03:00
Alexey Pustovalov
1648ad9543 Fixed Nginx images running under root 2024-07-05 13:21:12 +09:00
Alexey Pustovalov
2476dd7c17 Fixed warnings for snmtraps image 2024-06-21 13:46:09 +09:00
Alexey Pustovalov
51dfece057 Updated snmptrapd configuration 2024-06-13 13:47:28 +09:00
Alexey Pustovalov
31790a1a21 Updated snmptrapd configuration 2024-06-13 13:44:50 +09:00
Alexey Pustovalov
e7c6db4031 Fixed start MySQL container for PostgreSQL versions 2024-06-12 11:44:35 +09:00
Alexey Pustovalov
dccd98d982 Updated MySQL to 8.4 2024-06-11 18:33:55 +09:00
Alexey Pustovalov
b4998a9d5d Using Selenium Hub to support different browsers 2024-06-10 16:32:50 +09:00
Alexey Pustovalov
6550ed32a3 Removed orphaned commands from ubuntu image 2024-06-04 19:01:50 +09:00
Alexey Pustovalov
9fbb426465 Fixed license copy action for Java Gateway on RHEL 2024-06-04 16:31:08 +09:00
Alexey Pustovalov
189c4efb7d Updated next major master release to 7.2 2024-06-04 15:09:07 +09:00
Alexey Pustovalov
824c95a32e Updated master / trunk versions 2024-06-04 15:00:30 +09:00
Alexey Pustovalov
d658a420f7 Updated buildah-build action 2024-06-02 01:56:21 +09:00
Alexey Pustovalov
9ae4d3d846
Merge pull request #1421 from zabbix/trunk_build_struct
Updated build output structure and fixed Include parameter processing…
2024-06-01 17:44:50 +09:00
Alexey Pustovalov
e97ebf18d6 Updated build output structure and fixed Include parameter processing in Windows agent2 2024-06-01 17:44:03 +09:00
Alexey Pustovalov
bc32214571
Merge pull request #1420 from zabbix/trunk_build_struct
Trunk build struct
2024-06-01 16:16:02 +09:00
Alexey Pustovalov
cb9e13c9a5 Updated build output structure 2024-06-01 16:15:19 +09:00
Alexey Pustovalov
cd08af6629 Updated build output structure 2024-06-01 16:10:03 +09:00
Alexey Pustovalov
bb88423f5f
Merge pull request #1419 from zabbix/trunk_build_struct
Updated build output structure
2024-06-01 15:37:22 +09:00
Alexey Pustovalov
965c374bae Updated build output structure 2024-06-01 15:10:31 +09:00
Alexey Pustovalov
1c3e198e18 Added attest to Windows (revert) 2024-05-30 21:21:04 +09:00
Alexey Pustovalov
4077cf034c Added attest to Windows 2024-05-30 20:36:54 +09:00
Alexey Pustovalov
4218042772 Fixed custom db scripts location 2024-05-29 18:04:14 +09:00
Alexey Pustovalov
aafaf9763b
Merge pull request #1416 from zabbix/trunk_config
Added SMSDevices for server images
2024-05-29 15:55:33 +09:00
Alexey Pustovalov
8d654cc4c9 Added SMSDevices for server images 2024-05-29 15:54:52 +09:00
Alexey Pustovalov
9ef9ef633c
Merge pull request #1415 from zabbix/trunk_compose
Removed project name. Use COMPOSE_PROJECT_NAME env variable
2024-05-28 17:51:36 +09:00
Alexey Pustovalov
10397671d4 Removed project name. Use COMPOSE_PROJECT_NAME env variable 2024-05-28 17:50:48 +09:00
Alexey Pustovalov
44a36fa845
Merge pull request #1414 from zabbix/compose_trunk
Updated compose file. No more version. Added name. Removed prefixes for networks.
2024-05-28 17:12:22 +09:00
Alexey Pustovalov
4541352fbb Updated compose file. No more version. Added name. Removed prefixes for networks. 2024-05-28 17:10:23 +09:00
Alexey Pustovalov
3c596d8e92
Merge pull request #1410 from zabbix/trunk_rhel_version
Updated cache image for RHEL Ubi
2024-05-23 15:22:42 +09:00
Alexey Pustovalov
5b7ea0ba21 Updated cache image for RHEL Ubi 2024-05-23 15:21:46 +09:00
Alexey Pustovalov
2d751cc079
Merge pull request #1409 from zabbix/trunk_alpine
Updated Alpine base image to 3.20
2024-05-23 14:55:49 +09:00
Alexey Pustovalov
5eb35aeadc Updated Alpine base image to 3.20 2024-05-23 14:55:10 +09:00
Alexey Pustovalov
9bd9d598ab
Merge pull request #1403 from zabbix/trunk_windows
Revert multiworkflow implementation for Windows images
2024-05-21 22:12:33 +09:00
Alexey Pustovalov
ebf72efd9e Revert multiworkflow implementation for Windows images 2024-05-21 22:10:46 +09:00
Alexey Pustovalov
78e808c20b
Merge pull request #1401 from zabbix/trunk_web_driver
Trunk web driver
2024-05-21 22:02:40 +09:00
Alexey Pustovalov
2868e7c030 Added support for WebDriver in compose files 2024-05-21 22:02:16 +09:00
Alexey Pustovalov
5ab55ffa66 Added support for WebDriver in compose files 2024-05-21 22:01:10 +09:00
Alexey Pustovalov
612575150c
Merge pull request #1400 from zabbix/trunk_web_driver
Added new parameters for server and proxy
2024-05-21 21:20:22 +09:00
Alexey Pustovalov
31f62e2c61 Added new parameters for server and proxy 2024-05-21 21:19:12 +09:00
Alexey Pustovalov
4762f84020
Merge pull request #1395 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-21 18:18:58 +09:00
Alexey Pustovalov
7dfb676296 Updated build process for Zabbix agent (windows) 2024-05-21 18:18:27 +09:00
Alexey Pustovalov
b023aedca6
Merge pull request #1394 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-21 18:16:33 +09:00
Alexey Pustovalov
445ec3286a Updated build process for Zabbix agent (windows) 2024-05-21 18:16:07 +09:00
Alexey Pustovalov
873a4e3569
Merge pull request #1393 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-21 18:15:01 +09:00
Alexey Pustovalov
e2f6793ee4 Updated build process for Zabbix agent (windows) 2024-05-21 18:14:26 +09:00
Alexey Pustovalov
f3f7b526d3
Merge pull request #1392 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-21 17:43:36 +09:00
Alexey Pustovalov
19dea3a581 Updated build process for Zabbix agent (windows) 2024-05-21 17:43:07 +09:00
Alexey Pustovalov
1ea8715c1e
Merge pull request #1391 from zabbix/trunk_windows
Trunk windows
2024-05-21 17:06:30 +09:00
Alexey Pustovalov
a8754ffc24 Updated build process for Zabbix agent (windows) 2024-05-21 17:05:44 +09:00
Alexey Pustovalov
4ee11fb41d Updated build process for Zabbix agent (windows) 2024-05-21 16:34:23 +09:00
Alexey Pustovalov
1e40c34058
Merge pull request #1390 from zabbix/trunk_windows
Trunk windows
2024-05-21 16:29:14 +09:00
Alexey Pustovalov
633fa47b46 Updated build process for Zabbix agent (windows) 2024-05-21 16:04:51 +09:00
Alexey Pustovalov
1fba05dcc9 Updated build process for Zabbix agent (windows) 2024-05-21 16:02:05 +09:00
Alexey Pustovalov
0741fb6238 Updated build process for Zabbix agent (windows) 2024-05-21 15:58:44 +09:00
Alexey Pustovalov
d63a7732ba Updated build process for Zabbix agent (windows) 2024-05-21 15:45:17 +09:00
Alexey Pustovalov
1aac8bba21 Updated build process for Zabbix agent (windows) 2024-05-21 15:42:15 +09:00
Alexey Pustovalov
e5e9d4b18b Updated build process for Zabbix agent (windows) 2024-05-21 15:31:15 +09:00
Alexey Pustovalov
15dc9767c6 Updated build process for Zabbix agent (windows) 2024-05-21 15:12:43 +09:00
Alexey Pustovalov
d53ff2fabe Updated build process for Zabbix agent (windows) 2024-05-21 14:56:57 +09:00
Alexey Pustovalov
150ecc6f16 Updated build process for Zabbix agent (windows) 2024-05-21 14:42:00 +09:00
Alexey Pustovalov
3d25ce0123 Updated build process for Zabbix agent (windows) 2024-05-21 13:49:50 +09:00
Alexey Pustovalov
c1c08352e7 Updated build process for Zabbix agent (windows) 2024-05-21 03:10:30 +09:00
Alexey Pustovalov
d50d5e01b6 Updated build process for Zabbix agent (windows) 2024-05-21 03:04:52 +09:00
Alexey Pustovalov
663fdc1a04 Updated build process for Zabbix agent (windows) 2024-05-21 02:56:42 +09:00
Alexey Pustovalov
7e4dea7229 Updated build process for Zabbix agent (windows) 2024-05-21 02:49:40 +09:00
Alexey Pustovalov
6e6e67e26b Updated build process for Zabbix agent (windows) 2024-05-21 02:33:58 +09:00
Alexey Pustovalov
a6e79d56e8 Updated build process for Zabbix agent (windows) 2024-05-21 02:28:26 +09:00
Alexey Pustovalov
86350abd5c Updated build process for Zabbix agent (windows) 2024-05-21 02:21:52 +09:00
Alexey Pustovalov
aa8fefb67b Updated build process for Zabbix agent (windows) 2024-05-21 02:18:46 +09:00
Alexey Pustovalov
bb972404fb Updated build process for Zabbix agent (windows) 2024-05-21 02:09:06 +09:00
Alexey Pustovalov
3694c74812 Updated build process for Zabbix agent (windows) 2024-05-21 02:06:44 +09:00
Alexey Pustovalov
db3d19c6f1 Updated build process for Zabbix agent (windows) 2024-05-21 02:04:50 +09:00
Alexey Pustovalov
8e4f073438 Updated build process for Zabbix agent (windows) 2024-05-21 02:00:14 +09:00
Alexey Pustovalov
44e4fd905e Updated build process for Zabbix agent (windows) 2024-05-21 01:50:14 +09:00
Alexey Pustovalov
42761a30bf Updated build process for Zabbix agent (windows) 2024-05-21 01:46:22 +09:00
Alexey Pustovalov
501cffa10a Updated build process for Zabbix agent (windows) 2024-05-21 01:43:05 +09:00
Alexey Pustovalov
e293fd03ad Updated build process for Zabbix agent (windows) 2024-05-21 01:14:29 +09:00
Alexey Pustovalov
f4279e1a41 Updated build process for Zabbix agent (windows) 2024-05-21 01:13:00 +09:00
Alexey Pustovalov
af0bab5bac Updated build process for Zabbix agent (windows) 2024-05-21 00:55:13 +09:00
Alexey Pustovalov
06cdbd2788 Updated build process for Zabbix agent (windows) 2024-05-21 00:47:09 +09:00
Alexey Pustovalov
7c4877fa9b Updated build process for Zabbix agent (windows) 2024-05-21 00:32:26 +09:00
Alexey Pustovalov
4a5e5b285d Updated build process for Zabbix agent (windows) 2024-05-21 00:32:04 +09:00
Alexey Pustovalov
6cd97fc2c4 Updated build process for Zabbix agent (windows) 2024-05-21 00:31:35 +09:00
Alexey Pustovalov
d9fbeff23c Updated build process for Zabbix agent (windows) 2024-05-21 00:29:27 +09:00
Alexey Pustovalov
ba1985f8d9 Updated build process for Zabbix agent (windows) 2024-05-20 23:45:18 +09:00
Alexey Pustovalov
d36ffb2b12 Updated build process for Zabbix agent (windows) 2024-05-20 23:31:35 +09:00
Alexey Pustovalov
f397aad663 Updated build process for Zabbix agent (windows) 2024-05-20 23:26:06 +09:00
Alexey Pustovalov
158c9d4c20 Updated build process for Zabbix agent (windows) 2024-05-20 22:44:51 +09:00
Alexey Pustovalov
a5e1c55d30 Updated build process for Zabbix agent (windows) 2024-05-20 22:31:27 +09:00
Alexey Pustovalov
9263fba4d9 Updated build process for Zabbix agent (windows) 2024-05-20 22:03:03 +09:00
Alexey Pustovalov
d8533ca9dc Updated build process for Zabbix agent (windows) 2024-05-20 21:36:02 +09:00
Alexey Pustovalov
d39c422a25
Merge pull request #1388 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-20 21:35:24 +09:00
Alexey Pustovalov
a207ef54c2 Updated build process for Zabbix agent (windows) 2024-05-20 21:34:41 +09:00
Alexey Pustovalov
5a776c3350
Merge pull request #1387 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-20 21:09:36 +09:00
Alexey Pustovalov
3ba733b607 Updated build process for Zabbix agent (windows) 2024-05-20 21:09:07 +09:00
Alexey Pustovalov
0ecfcb841b
Merge pull request #1386 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-20 20:23:04 +09:00
Alexey Pustovalov
00b02522a2 Updated build process for Zabbix agent (windows) 2024-05-20 20:22:17 +09:00
Alexey Pustovalov
5049cb97d7
Merge pull request #1385 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-20 19:29:22 +09:00
Alexey Pustovalov
f546633dfc Updated build process for Zabbix agent (windows) 2024-05-20 19:28:38 +09:00
Alexey Pustovalov
b5646426e9
Merge pull request #1384 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-20 18:18:33 +09:00
Alexey Pustovalov
c82168931c Updated build process for Zabbix agent (windows) 2024-05-20 18:17:51 +09:00
Alexey Pustovalov
ad95a1f1c7
Merge pull request #1383 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-20 17:29:46 +09:00
Alexey Pustovalov
fcfabb0e3e Updated build process for Zabbix agent (windows) 2024-05-20 17:29:18 +09:00
Alexey Pustovalov
6163ec73b0
Merge pull request #1382 from zabbix/trunk_windows
Trunk windows
2024-05-20 16:41:47 +09:00
Alexey Pustovalov
47f4f62147 Updated build process for Zabbix agent (windows) 2024-05-20 16:41:12 +09:00
Alexey Pustovalov
8faaae8b36 Updated build process for Zabbix agent (windows) 2024-05-20 14:32:40 +09:00
Alexey Pustovalov
8fb143b4fb Updated build process for Zabbix agent (windows) 2024-05-20 14:16:26 +09:00
Alexey Pustovalov
0e1a34b93a
Merge pull request #1381 from zabbix/trunk_windows
Trunk windows
2024-05-20 13:57:40 +09:00
Alexey Pustovalov
f1fa58b5f6 Updated build process for Zabbix agent (windows) 2024-05-20 13:56:59 +09:00
Alexey Pustovalov
fc11e72647 Updated build process for Zabbix agent (windows) 2024-05-20 13:56:47 +09:00
Alexey Pustovalov
85b0370d8b
Merge pull request #1380 from zabbix/trunk_windows
Trunk windows
2024-05-20 13:12:58 +09:00
Alexey Pustovalov
0ff1d7b794 Updated build process for Zabbix agent (windows) 2024-05-20 13:12:24 +09:00
Alexey Pustovalov
ea59fd64d5 Updated build process for Zabbix agent (windows) 2024-05-20 13:11:31 +09:00
Alexey Pustovalov
314ea3f842
Merge pull request #1379 from zabbix/trunk_windows
Updated build process for Zabbix agent (windows)
2024-05-20 11:48:10 +09:00
Alexey Pustovalov
f81b067643 Updated build process for Zabbix agent (windows) 2024-05-20 11:47:41 +09:00
Alexey Pustovalov
2f10a6c719
Merge pull request #1378 from zabbix/trunk_windows
Trunk windows
2024-05-19 23:43:00 +09:00
Alexey Pustovalov
b6da3d7569 Updated build process for Zabbix agent (windows) 2024-05-18 13:55:00 +09:00
Alexey Pustovalov
967b97a602 Updated build process for Zabbix agent (windows) 2024-05-17 13:40:49 +00:00
Alexey Pustovalov
9d6d6d20bf Updated build process for Zabbix agent (windows) 2024-05-17 12:29:05 +00:00
Alexey Pustovalov
7753139d71 Updated build process for Zabbix agent (windows) 2024-05-17 11:05:27 +00:00
Alexey Pustovalov
60ba0fa42b Updated build process for Zabbix agent (windows) 2024-05-16 19:31:01 +00:00
Alexey Pustovalov
5b8a2c5c82 Updated build process for Zabbix agent (windows) 2024-05-16 19:05:20 +00:00
Alexey Pustovalov
6d942a8554 Updated build process for Zabbix agent (windows) 2024-05-16 07:33:42 +00:00
Alexey Pustovalov
c008da801f
Merge pull request #1373 from zabbix/trunk_alpine
Added linux-headers package for Alpine base image
2024-05-14 03:19:40 +09:00
Alexey Pustovalov
3d4488074b Added linux-headers package for Alpine base image 2024-05-14 03:19:07 +09:00
Alexey Pustovalov
641571f959
Merge pull request #1369 from zabbix/trunk_lic
Trunk lic
2024-05-14 02:33:09 +09:00
Alexey Pustovalov
4422dbd39d Updated license from GPL v2 to AGPL v3 2024-05-14 02:31:53 +09:00
Alexey Pustovalov
74979f153d Updated license from GPL v2 to AGPL v3 2024-05-14 02:31:38 +09:00
Alexey Pustovalov
70a70235d1
Merge pull request #1368 from zabbix/trunk_lic
Allowed to use custom branch
2024-05-13 20:07:45 +09:00
Alexey Pustovalov
51f62659d7 Allowed to use custom branch 2024-05-13 20:06:15 +09:00
Alexey Pustovalov
2bf4c3834e
Merge pull request #1367 from zabbix/trunk_arg_branch
Allowed to use custom branch
2024-05-13 19:07:38 +09:00
Alexey Pustovalov
d55a124b1c Allowed to use custom branch 2024-05-13 19:06:52 +09:00
Alexey Pustovalov
db92aeb20d
Merge pull request #1366 from zabbix/trunk_arg_branch
Allowed to use custom branch
2024-05-13 18:24:48 +09:00
Alexey Pustovalov
485a8a3318 Allowed to use custom branch 2024-05-13 18:24:14 +09:00
Alexey Pustovalov
0de5776830
Merge pull request #1365 from zabbix/trunk_arg_branch
Updated Cygwin
2024-05-13 17:30:30 +09:00
Alexey Pustovalov
e95939f508 Updated Cygwin 2024-05-13 17:29:45 +09:00
Alexey Pustovalov
3511de6332
Merge pull request #1364 from zabbix/trunk_arg_branch
Allowed to use custom branch
2024-05-13 15:43:17 +09:00
Alexey Pustovalov
12db020655 Allowed to use custom branch 2024-05-13 15:42:31 +09:00
Alexey Pustovalov
2d8f41c08b
Merge pull request #1362 from zabbix/trunk_packages
Updated PostgreSQL version to 16
2024-05-10 19:25:18 +09:00
Alexey Pustovalov
931413fd1b Updated PostgreSQL version to 16 2024-05-10 19:24:20 +09:00
Alexey Pustovalov
3916d7a617 Added new input param for RHEL build 2024-05-08 16:29:42 +09:00
Alexey Pustovalov
39dad999ae Added new input param for RHEL build 2024-05-08 16:05:28 +09:00
Alexey Pustovalov
431bd5a623
Merge pull request #1356 from zabbix/trunk_rhel_94
Updated RHEL version to 9.4
2024-05-03 18:00:40 +09:00
Alexey Pustovalov
395d5ff1ee Updated RHEL version to 9.4 2024-05-03 18:00:07 +09:00
Alexey Pustovalov
3510e8d5bf
Merge pull request #1342 from zabbix/cygwin_sha
Updated sha256 for cygwin
2024-04-30 14:20:52 +09:00
Alexey Pustovalov
e24668c977 Updated sha256 for cygwin 2024-04-30 14:20:10 +09:00
Alexey Pustovalov
9481ebd41d Updated default value of passive agent forks 2024-04-27 21:33:49 +09:00
Alexey Pustovalov
b8d04f7b80
Merge pull request #1341 from zabbix/trunk_http_auth
Added ZBX_ALLOW_HTTP_AUTH parameter and php-curl package
2024-04-27 21:23:30 +09:00
Alexey Pustovalov
b35ca70fcc Added ZBX_ALLOW_HTTP_AUTH parameter and php-curl package 2024-04-27 21:21:44 +09:00
Alexey Pustovalov
72f60d44dc Allowed more CentOS repo mirrors 2024-04-26 19:08:17 +09:00
Alexey Pustovalov
cd52a48021 Fixed VAULT_CERT_FILE detection 2024-04-26 15:43:18 +09:00
Alexey Pustovalov
25d7215712 Added EnableGlobalScripts parameter for server 2024-04-26 15:13:07 +09:00
Alexey Pustovalov
d7b9a197c6 Updated Ubuntu to 24.04 2024-04-24 21:47:29 +09:00
Alexey Pustovalov
8f4159432a Updated Ubuntu to 24.04 2024-04-24 18:56:11 +09:00
Alexey Pustovalov
83b0bf637f Updated Ubuntu to 24.04 2024-04-24 15:38:35 +09:00
Alexey Pustovalov
599e7ab4b9 Updated Ubuntu to 24.04 2024-04-24 02:18:27 +09:00
Alexey Pustovalov
fac9a4398f
Merge pull request #1321 from zabbix/zlib_trunk
Added zlib and devel packages
2024-03-25 00:19:00 +09:00
Alexey Pustovalov
658b6f811c
Merge branch 'trunk' into zlib_trunk 2024-03-25 00:18:53 +09:00
Alexey Pustovalov
892764dfa0 Added zlib and devel packages 2024-03-25 00:18:27 +09:00
Alexey Pustovalov
3d8c04992f
Merge pull request #1317 from zabbix/zlib_trunk
Added zlib and devel packages
2024-03-24 22:56:32 +09:00
Alexey Pustovalov
b6a46be4b2 Added zlib and devel packages 2024-03-24 22:42:53 +09:00
Alexey Pustovalov
b109b78974
Merge pull request #1314 from zabbix/trunk_security
Security update for curl actions
2024-03-24 20:16:27 +09:00
Alexey Pustovalov
54404a560d Security update for curl actions 2024-03-24 20:15:18 +09:00
Alexey Pustovalov
eb8702215d
Merge pull request #1306 from zabbix/trunk_tzdata
Added tzdata package for most of images
2024-03-22 15:30:44 +09:00
Alexey Pustovalov
09b4ea0c28 Added tzdata package for most of images 2024-03-22 15:27:11 +09:00
Alexey Pustovalov
29f71b2433
Merge pull request #1304 from zabbix/trunk_tzdata
Updated RedHat documentation
2024-03-22 15:24:08 +09:00
Alexey Pustovalov
a060613570 Updated RedHat documentation 2024-03-22 15:23:30 +09:00
Alexey Pustovalov
63f3a5d81f
Merge pull request #1303 from zabbix/trunk_tzdata
Added tzdata package for most of images
2024-03-22 14:53:59 +09:00
Alexey Pustovalov
ba0e04a597 Added tzdata package for most of images 2024-03-22 14:53:18 +09:00
Alexey Pustovalov
9241d313c9
Merge pull request #1284 from zabbix/trunk_win
Fix for Windows build
2024-03-10 16:21:25 +09:00
Alexey Pustovalov
914e99087b Fix for Windows build 2024-03-10 16:20:56 +09:00
Alexey Pustovalov
59ed67c745
Merge pull request #1283 from zabbix/trunk_win
Fix for Windows build
2024-03-09 19:09:25 +09:00
Alexey Pustovalov
38aa306e5a Fix for Windows build 2024-03-09 19:09:00 +09:00
Alexey Pustovalov
280d0fa1d0
Merge pull request #1282 from zabbix/trunk_win
Fix for Windows build
2024-03-09 17:57:17 +09:00
Alexey Pustovalov
bdecd14e03 Fix for Windows build 2024-03-09 17:56:22 +09:00
Alexey Pustovalov
e6de8fcbe3
Merge pull request #1281 from zabbix/trunk_rhel_pgsql
Added PostgreSQL for RHEL
2024-03-09 17:23:02 +09:00
Alexey Pustovalov
b6e27108a8 Added PostgreSQL for RHEL 2024-03-09 17:21:33 +09:00
Alexey Pustovalov
61245ed728
Merge pull request #1273 from zabbix/rhel_clean
Review RHEL images. Removed unnecessary packages / repisotories
2024-03-02 23:52:39 +09:00
Alexey Pustovalov
5366671115 Review RHEL images. Removed unnecessary packages / repisotories 2024-03-02 23:51:27 +09:00
Alexey Pustovalov
99b66b9f41
Merge pull request #1267 from zabbix/trunk_ol
Removed tzdata install / update from OEL images
2024-02-29 02:26:41 +09:00
Alexey Pustovalov
606b54b4ef Removed tzdata install / update from OEL images 2024-02-29 02:24:57 +09:00
Alexey Pustovalov
8987d2e267
Merge pull request #1266 from zabbix/trunk_sbom
Added SBOM for images
2024-02-28 18:13:19 +09:00
Alexey Pustovalov
55e9a68f3a Added SBOM for images 2024-02-28 18:05:16 +09:00
Alexey Pustovalov
6bbdc2d2c3
Merge pull request #1262 from zabbix/modbus_trunk
Modbus trunk
2024-02-26 15:38:56 +09:00
Alexey Pustovalov
b686e63fad Removed orphan package from agent2 2024-02-26 15:38:23 +09:00
Alexey Pustovalov
7ede049f63 Removed orphan package from agent2 2024-02-26 15:35:56 +09:00
Alexey Pustovalov
207941eb7d
Merge pull request #1252 from zabbix/trunk_readme
Updated documentation and prepared documentation for RHEL
2024-02-21 15:39:40 +09:00
Alexey Pustovalov
273604729a Updated documentation and prepared documentation for RHEL 2024-02-21 15:37:42 +09:00
Alexey Pustovalov
0a55b13431
Merge pull request #1248 from zabbix/trunk_readme
Updated documentation and prepared documentation for RHEL
2024-02-21 15:05:01 +09:00
Alexey Pustovalov
1f6a7fe315 Updated documentation and prepared documentation for RHEL 2024-02-21 15:04:26 +09:00
Alexey Pustovalov
0e36d1578f
Merge pull request #1240 from zabbix/rhel_descr_trunk
Prepared RHEL registry descriptions
2024-02-20 18:52:08 +09:00
Alexey Pustovalov
5529aa85a3 Prepared RHEL registry descriptions 2024-02-20 17:58:10 +09:00
Alexey Pustovalov
11938006ab
Merge pull request #1232 from zabbix/trunk_workflow
Updated building images workflow
2024-02-20 16:33:14 +09:00
Alexey Pustovalov
79605b667f Updated building images workflow 2024-02-20 16:32:53 +09:00
Alexey Pustovalov
cc4948b617
Merge pull request #1231 from zabbix/trunk_workflow
[StepSecurity] ci: Harden GitHub Actions
2024-02-20 16:26:57 +09:00
StepSecurity Bot
541d3c69a9 [StepSecurity] ci: Harden GitHub Actions
Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>
2024-02-20 16:26:28 +09:00
Alexey Pustovalov
d86cec1f66
Merge pull request #1229 from zabbix/trunk_workflow
Trunk workflow
2024-02-20 16:04:13 +09:00
Alexey Pustovalov
54e2b7ef84 Added workflow to update Red Hat Container Catalog 2024-02-20 16:03:49 +09:00
Alexey Pustovalov
56d6294594 Added workflow to update Red Hat Container Catalog 2024-02-19 23:13:12 +09:00
Alexey Pustovalov
5b7ff7c4eb
Merge pull request #1213 from zabbix/trunk_workflow
Updated building images workflow
2024-02-19 22:16:38 +09:00
Alexey Pustovalov
a33351fa34 Updated building images workflow 2024-02-19 22:15:38 +09:00
Alexey Pustovalov
e6e040904f
Merge pull request #1210 from zabbix/trunk_workflow
Updated building images workflow
2024-02-19 19:17:36 +09:00
Alexey Pustovalov
d08161d184 Updated building images workflow 2024-02-19 19:16:49 +09:00
Alexey Pustovalov
24f344b596
Merge pull request #1209 from zabbix/trunk_workflow
Updated building images workflow
2024-02-19 18:31:13 +09:00
Alexey Pustovalov
c12f13f6f4 Updated building images workflow 2024-02-19 18:28:42 +09:00
Alexey Pustovalov
6bb889ccf5
Merge pull request #1208 from zabbix/trunk_workflow
Trunk workflow
2024-02-19 16:19:42 +09:00
Alexey Pustovalov
833baae46d Updated building images workflow 2024-02-19 14:57:53 +09:00
Alexey Pustovalov
7f57f52b74 Merge branch 'trunk' into trunk_workflow 2024-02-19 00:04:25 +09:00
Alexey Pustovalov
386720bff3 Updated building images workflow 2024-02-19 00:04:01 +09:00
Alexey Pustovalov
69c17e3075
Merge pull request #1205 from zabbix/impl_cache_trunk
Impl cache trunk
2024-02-18 23:41:30 +09:00
Alexey Pustovalov
f45015f6de Added caching / avoid orphans mechanisms 2024-02-18 23:40:38 +09:00
Alexey Pustovalov
b9bd1f9f28
Merge pull request #1203 from zabbix/centos_trunk
Use Centos 9 minimal instead of full image
2024-02-18 23:30:11 +09:00
Alexey Pustovalov
cdd4904a18 Added caching / avoid orphans mechanisms 2024-02-18 23:27:03 +09:00
Alexey Pustovalov
a8397414f4 Updated building images workflow 2024-02-18 22:45:18 +09:00
Alexey Pustovalov
5f53fffcaf Updated building images workflow 2024-02-18 22:42:23 +09:00
Alexey Pustovalov
b95cb07f9b Added caching / avoid orphans mechanisms 2024-02-18 21:52:23 +09:00
Alexey Pustovalov
d3d07ceb7c Updated building images workflow 2024-02-18 20:56:30 +09:00
Alexey Pustovalov
6d8320203d Use Centos 9 minimal instead of full image 2024-02-18 20:52:36 +09:00
Alexey Pustovalov
bf6472036e Updated building images workflow 2024-02-18 19:09:50 +09:00
Alexey Pustovalov
d77ef59f9d Updated building images workflow 2024-02-18 17:18:22 +09:00
Alexey Pustovalov
970aaa2e57 Updated building images workflow 2024-02-18 16:20:22 +09:00
Alexey Pustovalov
03da059ae2 Updated building images workflow 2024-02-18 16:00:20 +09:00
Alexey Pustovalov
594adfc889 Updated building images workflow 2024-02-18 15:59:40 +09:00
Alexey Pustovalov
cc796dbe39 Updated building images workflow 2024-02-18 15:49:20 +09:00
Alexey Pustovalov
c823a7a3c1 Updated building images workflow 2024-02-18 15:28:59 +09:00
Alexey Pustovalov
b2d05d99a3 Updated building images workflow 2024-02-18 15:19:51 +09:00
Alexey Pustovalov
79e2dbac25 Updated building images workflow 2024-02-18 15:14:50 +09:00
Alexey Pustovalov
3a2cdbe44d Updated building images workflow 2024-02-18 15:11:56 +09:00
Alexey Pustovalov
5f2bd52309 Updated building images workflow 2024-02-18 14:04:05 +09:00
Alexey Pustovalov
f7b248bf5a Updated building images workflow 2024-02-18 13:50:35 +09:00
Alexey Pustovalov
d49452e337 Updated building images workflow 2024-02-18 13:39:39 +09:00
Alexey Pustovalov
8a84b83c69 Updated building images workflow 2024-02-18 13:24:47 +09:00
Alexey Pustovalov
db8bc6b51a Updated building images workflow 2024-02-18 13:12:32 +09:00
Alexey Pustovalov
787f76d118 Updated building images workflow 2024-02-18 12:59:27 +09:00
Alexey Pustovalov
be99dddfef Updated building images workflow 2024-02-18 12:19:37 +09:00
Alexey Pustovalov
677a48f9c7 Updated building images workflow 2024-02-18 12:18:35 +09:00
Alexey Pustovalov
b29bfaef34 Updated building images workflow 2024-02-18 12:12:27 +09:00
Alexey Pustovalov
1e2435cd6c Updated building images workflow 2024-02-18 12:08:08 +09:00
Alexey Pustovalov
4d90c39243 Updated building images workflow 2024-02-18 12:04:17 +09:00
Alexey Pustovalov
50b0adbcb0 Updated building images workflow 2024-02-18 02:37:12 +09:00
Alexey Pustovalov
8b342243ff Updated building images workflow 2024-02-18 02:24:04 +09:00
Alexey Pustovalov
cc572d67fa Updated building images workflow 2024-02-18 02:22:59 +09:00
Alexey Pustovalov
2ca0e27b65 Updated building images workflow 2024-02-18 02:21:22 +09:00
Alexey Pustovalov
17854452e3 Updated building images workflow 2024-02-18 02:08:43 +09:00
Alexey Pustovalov
5794f784ad Updated building images workflow 2024-02-18 02:06:32 +09:00
Alexey Pustovalov
23cde80e68 Updated building images workflow 2024-02-18 02:00:53 +09:00
Alexey Pustovalov
621cf8e8a2 Updated building images workflow 2024-02-18 01:10:57 +09:00
Alexey Pustovalov
70ce39b472 Updated building images workflow 2024-02-18 01:07:11 +09:00
Alexey Pustovalov
a102daae05
Merge pull request #1202 from zabbix/trunk_workflow
Trunk workflow
2024-02-18 00:58:15 +09:00
Alexey Pustovalov
7ee755f4e9 Updated building images workflow 2024-02-17 23:35:23 +09:00
Alexey Pustovalov
2e0215b30c Updated building images workflow 2024-02-17 23:31:11 +09:00
Alexey Pustovalov
e42110fb84 Updated building images workflow 2024-02-17 23:28:27 +09:00
Alexey Pustovalov
994c693c11 Updated building images workflow 2024-02-17 23:24:24 +09:00
Alexey Pustovalov
4b9dc7259d Updated building images workflow 2024-02-17 23:18:54 +09:00
Alexey Pustovalov
c9c276c436 Updated building images workflow 2024-02-17 23:17:57 +09:00
Alexey Pustovalov
180aa32e7e Updated building images workflow 2024-02-17 23:16:25 +09:00
Alexey Pustovalov
7b1ba1fe42 Updated building images workflow 2024-02-17 23:14:54 +09:00
Alexey Pustovalov
018d19062e Updated building images workflow 2024-02-17 23:11:32 +09:00
Alexey Pustovalov
cbb8b77fc6 Updated building images workflow 2024-02-17 23:09:11 +09:00
Alexey Pustovalov
8ff6949ef4 Updated building images workflow 2024-02-17 23:07:14 +09:00
Alexey Pustovalov
5183dc930e Updated building images workflow 2024-02-17 22:55:26 +09:00
Alexey Pustovalov
ac4460b1b2 Updated building images workflow 2024-02-17 22:53:33 +09:00
Alexey Pustovalov
108e43dc27 Updated building images workflow 2024-02-17 22:50:10 +09:00
Alexey Pustovalov
37305c1b3c Updated building images workflow 2024-02-17 22:35:47 +09:00
Alexey Pustovalov
c2e6df02f4 Updated building images workflow 2024-02-17 22:33:16 +09:00
Alexey Pustovalov
6d1b07ef54 Updated building images workflow 2024-02-17 22:29:11 +09:00
Alexey Pustovalov
0fbb448376 Updated building images workflow 2024-02-17 22:20:47 +09:00
Alexey Pustovalov
b42231c45d Updated building images workflow 2024-02-17 22:18:16 +09:00
Alexey Pustovalov
3a4bfbcd12 Updated building images workflow 2024-02-17 22:13:14 +09:00
Alexey Pustovalov
8848114a26 Updated building images workflow 2024-02-17 20:35:11 +09:00
Alexey Pustovalov
c896ebbf3a Updated building images workflow 2024-02-17 20:30:06 +09:00
Alexey Pustovalov
3f0d35cc2a Updated building images workflow 2024-02-17 20:27:41 +09:00
Alexey Pustovalov
858aeb1947 Updated building images workflow 2024-02-17 20:24:58 +09:00
Alexey Pustovalov
549a09aee8
Merge pull request #1200 from zabbix/trunk_workflow
Trunk workflow
2024-02-17 20:12:43 +09:00
Alexey Pustovalov
1303e11230 Updated building images workflow 2024-02-17 20:12:22 +09:00
Alexey Pustovalov
5f096cab2d Updated building images workflow 2024-02-17 20:10:45 +09:00
Alexey Pustovalov
605cfa59e7
Merge pull request #1199 from zabbix/trunk_workflow
Updated building images workflow
2024-02-17 19:46:32 +09:00
Alexey Pustovalov
edcb787809 Updated building images workflow 2024-02-17 19:45:58 +09:00
Alexey Pustovalov
b9d664e1b3
Merge pull request #1198 from zabbix/trunk_workflow
Updated building images workflow
2024-02-17 19:44:12 +09:00
Alexey Pustovalov
13bbcc1cd8 Updated building images workflow 2024-02-17 19:43:45 +09:00
Alexey Pustovalov
ce516ad8d9
Merge pull request #1197 from zabbix/trunk_workflow
Updated building images workflow
2024-02-17 19:42:17 +09:00
Alexey Pustovalov
220eb7f54e Updated building images workflow 2024-02-17 19:41:44 +09:00
Alexey Pustovalov
cf4ba59e59
Merge pull request #1196 from zabbix/trunk_workflow
Updated building images workflow
2024-02-17 19:22:52 +09:00
Alexey Pustovalov
25d35cf870 Updated building images workflow 2024-02-17 19:22:20 +09:00
Alexey Pustovalov
e4a4796908
Merge pull request #1195 from zabbix/trunk_workflow
Updated building images workflow
2024-02-17 19:17:58 +09:00
Alexey Pustovalov
414fd663e2 Updated building images workflow 2024-02-17 19:17:41 +09:00
Alexey Pustovalov
96e8a4755a
Merge pull request #1194 from zabbix/trunk_workflow
Updated building images workflow
2024-02-17 19:11:11 +09:00
Alexey Pustovalov
1eb6f1f06b Updated building images workflow 2024-02-17 19:10:38 +09:00
Alexey Pustovalov
b179c54947
Merge pull request #1193 from zabbix/trunk_workflow
Updated building images workflow
2024-02-17 19:05:51 +09:00
Alexey Pustovalov
7b5f770873 Updated building images workflow 2024-02-17 19:00:48 +09:00
Alexey Pustovalov
3e7353e939 Updated Zabbix web-frontend configuration file 2024-02-16 15:01:18 +09:00
Alexey Pustovalov
098c680d2a
Merge pull request #1183 from zabbix/security_patches
Updated Zabbix web-frontend configuration file
2024-02-16 14:22:44 +09:00
Alexey Pustovalov
3d850f0210 Updated Zabbix web-frontend configuration file 2024-02-16 14:22:03 +09:00
Alexey Pustovalov
c907e9933d
Merge pull request #1182 from zabbix/security_patches
Security patches
2024-02-16 14:19:02 +09:00
Alexey Pustovalov
d7aaa9ac39 Updated Zabbix web-frontend configuration file 2024-02-16 14:17:46 +09:00
Alexey Pustovalov
ae98106761 RHEL build test 2024-02-16 11:11:37 +09:00
Alexey Pustovalov
21db91c397 Fixed style of files 2024-02-16 03:02:37 +09:00
Alexey Pustovalov
9c8473c587 Fixed style of files 2024-02-16 02:39:49 +09:00
Alexey Pustovalov
5dcb3b676a Fixed style of files 2024-02-16 02:38:58 +09:00
Alexey Pustovalov
79ebe242b4 Fixed style of files 2024-02-16 02:34:38 +09:00
Alexey Pustovalov
57b1a39baf Fixed style of files 2024-02-16 02:34:01 +09:00
Alexey Pustovalov
520607bdb2 Merge pull request #1181 from zabbix/dependabot/github_actions/actions/dependency-review-action-4.1.0
Bump actions/dependency-review-action from 4.0.0 to 4.1.0
2024-02-16 02:18:57 +09:00
Alexey Pustovalov
3b7d531b54 RHEL build test 2024-02-16 02:07:02 +09:00
Alexey Pustovalov
5fe496b9b0 RHEL build test 2024-02-16 00:32:23 +09:00
Alexey Pustovalov
973083cfc5 RHEL build test 2024-02-16 00:11:06 +09:00
Alexey Pustovalov
42f0b6a7ba RHEL build test 2024-02-15 23:50:26 +09:00
Alexey Pustovalov
c0b16a83b3 RHEL build test 2024-02-15 23:49:11 +09:00
Alexey Pustovalov
5884fce40c RHEL build test 2024-02-15 23:47:14 +09:00
Alexey Pustovalov
c5efef6f25 RHEL build test 2024-02-15 22:15:47 +09:00
Alexey Pustovalov
d016d951fa RHEL build test 2024-02-15 21:42:58 +09:00
Alexey Pustovalov
c604e197d8 RHEL build test 2024-02-15 21:16:24 +09:00
Alexey Pustovalov
2de2679f03 RHEL build test 2024-02-15 20:44:57 +09:00
Alexey Pustovalov
6b1997f92b RHEL build test 2024-02-15 20:01:59 +09:00
Alexey Pustovalov
2491b30741 RHEL build test 2024-02-15 20:01:02 +09:00
Alexey Pustovalov
290d5740c7 RHEL build test 2024-02-15 19:26:23 +09:00
Alexey Pustovalov
a970d2e93f RHEL build test 2024-02-15 19:03:48 +09:00
Alexey Pustovalov
301dc0f845 RHEL build test 2024-02-15 18:44:40 +09:00
Alexey Pustovalov
7ced09ebe4 RHEL build test 2024-02-15 18:40:07 +09:00
Alexey Pustovalov
779b2b2518 RHEL build test 2024-02-15 18:34:47 +09:00
Alexey Pustovalov
a96d6ac977 RHEL build test 2024-02-15 18:26:43 +09:00
Alexey Pustovalov
3aaaae72fa RHEL build test 2024-02-15 18:25:42 +09:00
Alexey Pustovalov
010787a578 RHEL build test 2024-02-15 18:23:19 +09:00
Alexey Pustovalov
750ef22a76 RHEL build test 2024-02-15 18:04:55 +09:00
Alexey Pustovalov
6d7347beed RHEL build test 2024-02-15 18:00:29 +09:00
Alexey Pustovalov
bbd39880b7 RHEL build test 2024-02-15 17:07:47 +09:00
Alexey Pustovalov
dfc6a4a61d RHEL build test 2024-02-15 05:51:39 +09:00
Alexey Pustovalov
a8898895ec RHEL build test 2024-02-15 05:38:36 +09:00
Alexey Pustovalov
1658727342 RHEL build test 2024-02-15 05:27:38 +09:00
Alexey Pustovalov
672a543919 RHEL build test 2024-02-15 05:20:48 +09:00
Alexey Pustovalov
1905bea214 RHEL build test 2024-02-15 05:19:21 +09:00
Alexey Pustovalov
cb3700fe76 RHEL build test 2024-02-15 05:16:11 +09:00
Alexey Pustovalov
7339406406 RHEL build test 2024-02-15 04:54:44 +09:00
Alexey Pustovalov
332c1d4e71 RHEL build test 2024-02-15 04:00:03 +09:00
Alexey Pustovalov
1aff19e4d6 RHEL build test 2024-02-15 03:39:17 +09:00
Alexey Pustovalov
35e8638b0f RHEL build test 2024-02-15 03:06:48 +09:00
Alexey Pustovalov
776680ee44 RHEL build test 2024-02-15 02:56:59 +09:00
Alexey Pustovalov
c32d8183b8 RHEL build test 2024-02-15 02:56:07 +09:00
Alexey Pustovalov
d0de64aaaa S6506 Using secure protocol to download fonts 2024-02-15 02:39:03 +09:00
Alexey Pustovalov
6de5aa8621 Using secure protocol for Nginx repository 2024-02-15 02:32:41 +09:00
Alexey Pustovalov
c07752372d RHEL build test 2024-02-15 02:23:54 +09:00
Alexey Pustovalov
22ad4512c2 RHEL build test 2024-02-14 22:40:20 +09:00
Alexey Pustovalov
efe0a47126 RHEL build test 2024-02-14 22:08:16 +09:00
Alexey Pustovalov
6d9ee886f4
Merge pull request #1179 from zabbix/rhel_image_trunk
Pinned RHEL 9.3 image version
2024-02-14 21:25:58 +09:00
Alexey Pustovalov
87000e1002 Pinned RHEL 9.3 image version 2024-02-14 21:25:13 +09:00
Alexey Pustovalov
adce1285f8
Merge pull request #1176 from zabbix/fix_style_trunk
Fix style trunk
2024-02-14 20:51:57 +09:00
Alexey Pustovalov
907baa60e2 Fixed style of files 2024-02-14 20:49:39 +09:00
Alexey Pustovalov
dd93275836 Fixed style of files 2024-02-14 20:48:20 +09:00
Alexey Pustovalov
b7d7d8e728 Fixed style of files 2024-02-14 20:33:19 +09:00
Alexey Pustovalov
8377fe5aa5 Removed duplicate entry in Kubernetes config 2024-02-14 20:21:09 +09:00
Alexey Pustovalov
31562d2472
Merge pull request #1175 from zabbix/fix_style_trunk
Updated RHEL workflow
2024-02-14 20:19:36 +09:00
Alexey Pustovalov
56768bb2ae Updated RHEL workflow 2024-02-14 20:18:50 +09:00
Alexey Pustovalov
5c1333e95b
Merge pull request #1174 from zabbix/fix_style_trunk
Bump github/codeql-action from 3.24.0 to 3.24.1
2024-02-14 20:16:36 +09:00
dependabot[bot]
ddb879447a Bump github/codeql-action from 3.24.0 to 3.24.1
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.0 to 3.24.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](e8893c57a1...e675ced7a7)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-14 20:10:35 +09:00
Alexey Pustovalov
7105ee5edc
Merge pull request #1173 from zabbix/rhel_workflow_trunk
Rhel workflow trunk
2024-02-14 19:05:35 +09:00
Alexey Pustovalov
ba68da80f5 Prepare RHEL workflow for secrets 2024-02-14 19:02:56 +09:00
Alexey Pustovalov
6239b52376 Prepare RHEL workflow for secrets 2024-02-14 17:29:59 +09:00
Alexey Pustovalov
da1e4d55cb Prepare RHEL workflow for secrets 2024-02-14 17:25:33 +09:00
Alexey Pustovalov
2362404144
Merge pull request #1160 from zabbix/fix_builder
Fixed Dockerfile instructions
2024-02-14 01:13:40 +09:00
Alexey Pustovalov
ffff416244 Fixed Dockerfile instructions 2024-02-14 01:07:53 +09:00
Alexey Pustovalov
8c1911dd4e Added sonarcloud 2024-02-13 23:38:33 +09:00
Alexey Pustovalov
3c6c264cfe Added sonarcloud 2024-02-13 23:13:48 +09:00
Alexey Pustovalov
a6946dc55e Added sonarcloud 2024-02-13 23:12:48 +09:00
Alexey Pustovalov
67a69dbd4a Updated badges 2024-02-12 20:02:06 +09:00
Alexey Pustovalov
6798df27fb Added CODEOWNERS 2024-02-12 19:44:24 +09:00
Alexey Pustovalov
a6c9533168 Added security information 2024-02-12 19:01:30 +09:00
Alexey Pustovalov
dccaf5e781 Added security information 2024-02-12 18:59:40 +09:00
Alexey Pustovalov
bd832a90dc Prepare universal workflow 2024-02-12 18:05:51 +09:00
Alexey Pustovalov
83c2f6930e Prepare universal workflow 2024-02-12 17:50:59 +09:00
Alexey Pustovalov
a042b5572d Bump actions 2024-02-12 16:24:26 +09:00
Alexey Pustovalov
d39a088280 Bump actions 2024-02-12 16:23:01 +09:00
Alexey Pustovalov
4f43d829b5 Bump actions 2024-02-12 16:21:53 +09:00
Alexey Pustovalov
33108b0e88 Bump ossf/scorecard-action from 2.1.2 to 2.3.1 2024-02-12 16:16:17 +09:00
Alexey Pustovalov
6ffd6b348a Prepare universal workflow 2024-02-12 01:44:17 +09:00
Alexey Pustovalov
49a51e988a Prepare universal workflow 2024-02-12 01:02:38 +09:00
Alexey Pustovalov
2e32644b20 Prepare universal workflow 2024-02-12 00:49:23 +09:00
Alexey Pustovalov
71d6e31e48 Prepare universal workflow 2024-02-12 00:04:56 +09:00
Alexey Pustovalov
8a65ef82f6 Prepare universal workflow 2024-02-11 21:04:33 +09:00
Alexey Pustovalov
28d105ffbc Prepare universal workflow 2024-02-11 18:54:36 +09:00
Alexey Pustovalov
888e9eb9e5 Prepare universal workflow 2024-02-11 18:07:29 +09:00
Alexey Pustovalov
a02f1c7534 Prepare universal workflow 2024-02-11 17:34:54 +09:00
Alexey Pustovalov
42f73b8e46 Prepare universal workflow 2024-02-11 17:30:36 +09:00
Alexey Pustovalov
b2f49153f5 Prepare universal workflow 2024-02-11 17:28:17 +09:00
Alexey Pustovalov
4cf29b76a2 Added modbus support for RHEL like systems 2024-02-11 17:20:14 +09:00
Alexey Pustovalov
df0f6345ab Prepare universal workflow 2024-02-11 17:12:08 +09:00
Alexey Pustovalov
e7366fb0a5 Prepare universal workflow 2024-02-10 23:04:06 +09:00
Alexey Pustovalov
67ae10ebf6 Prepare universal workflow 2024-02-10 22:02:05 +09:00
Alexey Pustovalov
a6900b9f5f Prepare universal workflow 2024-02-10 19:38:27 +09:00
Alexey Pustovalov
58e1c365c0 Prepare universal workflow 2024-02-10 18:44:40 +09:00
Alexey Pustovalov
c7e200a9ff Prepare universal workflow 2024-02-10 17:42:20 +09:00
Alexey Pustovalov
69e6306ddc Prepare universal workflow 2024-02-10 17:37:21 +09:00
Alexey Pustovalov
b018df4502 Prepare universal workflow 2024-02-10 04:41:00 +09:00
Alexey Pustovalov
bbbb81d61e Prepare universal workflow 2024-02-10 03:40:40 +09:00
Alexey Pustovalov
70db1d079d Added modbus support for RHEL like systems 2024-02-10 03:34:39 +09:00
Alexey Pustovalov
9bd9330c52 Prepare universal workflow 2024-02-10 03:32:05 +09:00
Alexey Pustovalov
ab1cb4269b Prepare universal workflow 2024-02-10 02:40:10 +09:00
Alexey Pustovalov
fa647a4e36 Prepare universal workflow 2024-02-10 02:35:41 +09:00
Alexey Pustovalov
1738cd448f Prepare universal workflow 2024-02-10 02:30:02 +09:00
Alexey Pustovalov
f7e7ec4070 Prepare universal workflow 2024-02-10 02:24:50 +09:00
Alexey Pustovalov
a871670c76 Prepare universal workflow 2024-02-10 01:56:31 +09:00
Alexey Pustovalov
3c846d2c9d Prepare universal workflow 2024-02-10 01:18:54 +09:00
Alexey Pustovalov
5ced8d392c Prepare universal workflow 2024-02-10 01:18:00 +09:00
Alexey Pustovalov
ffcff7fe6b Prepare universal workflow 2024-02-10 00:02:06 +09:00
Alexey Pustovalov
4a19042dc8 Prepare universal workflow 2024-02-10 00:00:45 +09:00
Alexey Pustovalov
1fe35722ac Prepare universal workflow 2024-02-09 23:51:00 +09:00
Alexey Pustovalov
19082aad50 Prepare universal workflow 2024-02-09 23:22:07 +09:00
Alexey Pustovalov
46064586c0 Prepare universal workflow 2024-02-09 22:54:29 +09:00
Alexey Pustovalov
7f12722c2d Prepare universal workflow 2024-02-09 22:22:28 +09:00
Alexey Pustovalov
0177353712 Prepare universal workflow 2024-02-09 21:56:56 +09:00
Alexey Pustovalov
eb7d1dc940 Prepare universal workflow 2024-02-09 21:24:15 +09:00
Alexey Pustovalov
fbf583ec2a Prepare universal workflow 2024-02-09 21:00:08 +09:00
Alexey Pustovalov
c402b3720b Prepare universal workflow 2024-02-09 20:49:42 +09:00
Alexey Pustovalov
4ac5097786 Prepare universal workflow 2024-02-09 20:48:01 +09:00
Alexey Pustovalov
7f101e6c78 Prepare universal workflow 2024-02-09 20:40:54 +09:00
Alexey Pustovalov
ea14d4866c Prepare universal workflow 2024-02-09 20:38:22 +09:00
Alexey Pustovalov
37271539bf Prepare universal workflow 2024-02-09 18:23:59 +09:00
Alexey Pustovalov
757e8d9d10 Prepare universal workflow 2024-02-09 17:59:34 +09:00
Alexey Pustovalov
fe8433aba3 Prepare universal workflow 2024-02-09 17:30:45 +09:00
Alexey Pustovalov
3be3d5f3fb Prepare universal workflow 2024-02-09 17:29:09 +09:00
Alexey Pustovalov
85bb6be131 Prepare universal workflow 2024-02-09 17:15:01 +09:00
Alexey Pustovalov
0911433644 Prepare universal workflow 2024-02-09 17:10:35 +09:00
Alexey Pustovalov
64fe8a0e05 Prepare universal workflow 2024-02-09 17:06:09 +09:00
Alexey Pustovalov
722cd46715 Prepare universal workflow 2024-02-09 17:01:33 +09:00
Alexey Pustovalov
97d91e0a02 Prepare universal workflow 2024-02-09 16:58:39 +09:00
Alexey Pustovalov
883770bec3 Prepare universal workflow 2024-02-09 16:55:10 +09:00
Alexey Pustovalov
6ba4240033 Prepare universal workflow 2024-02-09 16:53:16 +09:00
Alexey Pustovalov
15ebe6a697 Prepare universal workflow 2024-02-09 16:52:40 +09:00
Alexey Pustovalov
f9fe5c9a07 Prepare universal workflow 2024-02-09 16:49:19 +09:00
Alexey Pustovalov
769cef7c28 Prepare universal workflow 2024-02-09 16:45:18 +09:00
Alexey Pustovalov
1819193a11 Prepare universal workflow 2024-02-09 16:44:15 +09:00
Alexey Pustovalov
001d591b85 Prepare universal workflow 2024-02-09 16:43:29 +09:00
Alexey Pustovalov
9a3ff60ba5 Prepare universal workflow 2024-02-09 16:18:02 +09:00
Alexey Pustovalov
0f90023382 Prepare universal workflow 2024-02-09 16:14:59 +09:00
Alexey Pustovalov
304f84d754 Prepare universal workflow 2024-02-09 16:13:10 +09:00
Alexey Pustovalov
9517f415e1 Prepare universal workflow 2024-02-09 16:09:26 +09:00
Alexey Pustovalov
4717a0784f Updated cygwin installation binary 2024-02-09 16:02:34 +09:00
Alexey Pustovalov
9dd2039818 Prepare universal workflow 2024-02-09 16:00:10 +09:00
Alexey Pustovalov
5ae78b8226 Prepare universal workflow 2024-02-09 15:54:24 +09:00
Alexey Pustovalov
81795c6b67 Prepare universal workflow 2024-02-09 03:54:04 +09:00
Alexey Pustovalov
9a5c9826e6 Prepare universal workflow 2024-02-09 03:43:56 +09:00
Alexey Pustovalov
ffe8e1fd9f Prepare universal workflow 2024-02-09 03:32:12 +09:00
Alexey Pustovalov
524dc39215 Prepare universal workflow 2024-02-09 03:12:25 +09:00
Alexey Pustovalov
7563ef8f61 Prepare universal workflow 2024-02-09 03:05:30 +09:00
Alexey Pustovalov
9b8d20caee Prepare universal workflow 2024-02-09 02:56:49 +09:00
Alexey Pustovalov
952d135bd2 Prepare universal workflow 2024-02-09 01:59:21 +09:00
Alexey Pustovalov
105708dff3 Prepare universal workflow 2024-02-09 01:16:52 +09:00
Alexey Pustovalov
06249ed306 Prepare universal workflow 2024-02-09 00:45:25 +09:00
Alexey Pustovalov
9c6161c020 Prepare universal workflow 2024-02-09 00:44:14 +09:00
Alexey Pustovalov
f8d96d0795 Prepare universal workflow 2024-02-08 22:30:11 +09:00
Alexey Pustovalov
cf42d62578 Prepare universal workflow 2024-02-08 22:16:52 +09:00
Alexey Pustovalov
b9ac53f9e6 Prepare universal workflow 2024-02-08 22:03:56 +09:00
Alexey Pustovalov
a66c7fa770 Prepare universal workflow 2024-02-08 21:37:15 +09:00
Alexey Pustovalov
f9df998a75 Prepare universal workflow 2024-02-08 20:44:57 +09:00
Alexey Pustovalov
9bd79a4d8a Prepare universal workflow 2024-02-08 20:20:41 +09:00
Alexey Pustovalov
1214579619 Prepare universal workflow 2024-02-08 20:15:58 +09:00
Alexey Pustovalov
7be09cc5b0 Prepare universal workflow 2024-02-08 20:12:39 +09:00
Alexey Pustovalov
3d36e9f063 Prepare universal workflow 2024-02-08 20:09:50 +09:00
Alexey Pustovalov
10de0a45e0 Prepare universal workflow 2024-02-08 18:36:35 +09:00
Alexey Pustovalov
94440de089 Follow docker dependabot 2024-02-08 17:58:02 +09:00
Alexey Pustovalov
923b477066 Prepare universal workflow 2024-02-08 16:55:35 +09:00
Alexey Pustovalov
bd30bbc219 Prepare universal workflow 2024-02-08 16:53:28 +09:00
Alexey Pustovalov
5a75b73ec9 Prepare universal workflow 2024-02-08 16:51:16 +09:00
Alexey Pustovalov
0afb135813 Prepare universal workflow 2024-02-08 16:46:59 +09:00
Alexey Pustovalov
13012d1bc1 Prepare universal workflow 2024-02-08 16:43:43 +09:00
Alexey Pustovalov
15ed500b3e Prepare universal workflow 2024-02-08 16:34:58 +09:00
Alexey Pustovalov
9eca5f3236 Prepare universal workflow 2024-02-08 15:56:34 +09:00
Alexey Pustovalov
993171538e Prepare universal workflow 2024-02-08 13:37:02 +09:00
Alexey Pustovalov
e6c8162ecb Prepare universal workflow 2024-02-08 13:35:09 +09:00
Alexey Pustovalov
b3595fe39d Prepare universal workflow 2024-02-08 13:16:27 +09:00
Alexey Pustovalov
cf724a3d49 Prepare universal workflow 2024-02-08 03:32:12 +09:00
Alexey Pustovalov
ba746e340e Prepare universal workflow 2024-02-08 03:27:53 +09:00
Alexey Pustovalov
6240393eb4 Prepare universal workflow 2024-02-08 03:27:02 +09:00
Alexey Pustovalov
ce62b9b66f Prepare universal workflow 2024-02-08 03:22:30 +09:00
Alexey Pustovalov
ceddc1aca4 Prepare universal workflow 2024-02-08 03:16:56 +09:00
Alexey Pustovalov
ff26c3a539 Prepare universal workflow 2024-02-08 03:15:07 +09:00
Alexey Pustovalov
a94fcbc8d8 Prepare universal workflow 2024-02-08 03:06:49 +09:00
Alexey Pustovalov
0ec3addd5e Prepare universal workflow 2024-02-08 03:01:47 +09:00
Alexey Pustovalov
c0f7ed4d7c Prepare universal workflow 2024-02-08 02:59:23 +09:00
Alexey Pustovalov
3c7334f11d Prepare universal workflow 2024-02-08 02:57:20 +09:00
Alexey Pustovalov
dc95036bfa Prepare universal workflow 2024-02-08 02:56:46 +09:00
Alexey Pustovalov
4b2e55c1eb Prepare universal workflow 2024-02-08 02:53:43 +09:00
Alexey Pustovalov
a7cc51547b Prepare universal workflow 2024-02-08 02:52:40 +09:00
Alexey Pustovalov
f338c6f884 Prepare universal workflow 2024-02-08 02:51:30 +09:00
Alexey Pustovalov
c3c5716c26 Prepare egress policy 2024-02-07 23:45:06 +09:00
Alexey Pustovalov
8442a8fb38 Added EXPOSE_WEB_SERVER_INFO variable to control web server / php versions expose 2024-02-07 19:01:02 +09:00
Alexey Pustovalov
9d98c71dfb Trying use built-in GIT (removed) 2024-02-07 16:34:16 +09:00
Alexey Pustovalov
8ecd1aafb9 Trying use built-in GIT 2024-02-07 15:52:32 +09:00
Alexey Pustovalov
8dc8d284c6 Added EXPOSE_WEB_SERVER_INFO variable to control web server / php versions expose 2024-02-06 17:54:37 +09:00
Alexey Pustovalov
58f68d6494 Fixed circular reference error 2024-02-06 17:19:28 +09:00
Alexey Pustovalov
da6314b7fe Fixed circular reference error 2024-02-06 17:16:51 +09:00
Alexey Pustovalov
56e2f10c3b Updated PHP package on all Alpine images 2024-02-06 16:17:41 +09:00
Alexey Pustovalov
5c6a17cb13 Added Dependabot 2024-02-06 15:56:09 +09:00
Alexey Pustovalov
bce08b7d64 Allow build Java Gateway on PPC64LE arch 2024-02-05 21:20:43 +09:00
Alexey Pustovalov
c9a94d3161 Allow build Java Gateway on PPC64LE arch 2024-02-05 21:19:33 +09:00
Alexey Pustovalov
f4697af90a Updated Go lang to 1.21 for Ubuntu 2024-02-05 15:21:09 +09:00
Alexey Pustovalov
28f330907f Update Github actions 2024-02-05 13:18:10 +09:00
Alexey Pustovalov
5713a77f31 Update Github actions 2024-02-05 13:16:42 +09:00
Alexey Pustovalov
915314340f Fixed index file name for Apache images 2024-02-05 01:24:40 +09:00
Alexey Pustovalov
274a5ac196 Updated Cygwin package 2024-02-03 16:31:03 +09:00
Alexey Pustovalov
c1469fda35 Fixed agent2 compilation on Alpine 2024-02-02 13:18:25 +09:00
Alexey Pustovalov
acacdfbfb7 Fixed agent2 compilation on Alpine 2024-02-02 02:46:21 +09:00
Alexey Pustovalov
42eabe9279 Added gzip package to server / proxy images 2024-02-01 18:02:34 +09:00
Alexey Pustovalov
1f57367409 Updated Windows github workflow 2024-01-29 16:46:29 +09:00
Alexey Pustovalov
62cdca974e Added PPC64LE arch for Alpine images 2024-01-29 16:26:07 +09:00
Alexey Pustovalov
518292df9f Updated date / time format in SNMP traps image according ZBX-21192 2024-01-26 22:14:49 +09:00
Alexey Pustovalov
3c8a2671e8 Updated OpenSSL version to 3.1.4 for Windows Zabbix Agent 2024-01-21 17:21:20 +09:00
Alexey Pustovalov
cd3464b511 Introduced new HTTP_INDEX_FILE variable to control index page 2024-01-20 20:40:13 +09:00
Alexey Pustovalov
4c1b88b379 Fixed scim processing arguments and parameters in URL 2024-01-20 19:25:20 +09:00
Alexey Pustovalov
fbb0f0fad9 Updated PHP to 8.3 on Alpine 2024-01-19 13:37:11 +09:00
Alexey Pustovalov
bb5de25caa Using different way to redirect Nginx messages to stdout / stderr 2024-01-19 13:17:09 +09:00
Alexey Pustovalov
b771cb15d1 Added missing gzip package in OEL 2024-01-19 13:02:01 +09:00
Alexey Pustovalov
075e2f3142 Removed root group for zabbix user in all images. Using nmap without sudo permissions 2024-01-19 02:20:10 +09:00
Alexey Pustovalov
876699b347 Removed MySQL root secret for server and proxy containers 2024-01-19 01:13:10 +09:00
Alexey Pustovalov
76559f6767 Removed root group for zabbix user in all images. Using nmap without sudo permissions 2024-01-19 00:19:02 +09:00
Alexey Pustovalov
232aec3d1b Fixed empty 'volumes'. Not allowed since compose 1.24.0 2024-01-18 21:21:41 +09:00
Alexey Pustovalov
ed66996b02 Added possibility to build from custom branch 2023-12-16 15:39:10 +09:00
Alexey Pustovalov
7dcdf4e1dc Added possibility to build from custom branch 2023-12-15 22:38:54 +09:00
Alexey Pustovalov
3a3e9f68af Updated information about report issues and rootless environments fping usage 2023-12-15 21:56:18 +09:00
Alexey Pustovalov
68a37857a1 Added capabilities and sysctl options for fping in case of rootless containers 2023-12-14 22:12:51 +09:00
Alexey Pustovalov
871b5c49d4 Redesign for compose files 2023-12-14 19:15:38 +09:00
Alexey Pustovalov
a4e0d6a278 Compose files redesign 2023-12-14 18:15:17 +09:00
Alexey Pustovalov
e4bac090ff Redesign for compose files 2023-12-13 19:42:04 +09:00
Alexey Pustovalov
e0f02f3e56 Updated Alpine to 3.19 2023-12-13 14:29:00 +09:00
Alexey Pustovalov
4c547adf37 Fix for pthread_create failed: Operation not permitted 2023-12-01 13:50:35 +09:00
Alexey Pustovalov
5a19bd31e2 Recovered Oracle Linux building 2023-11-21 12:55:54 +09:00
Alexey Pustovalov
bcf0b165f2 Added support for DNS resolving for SNMP traps image 2023-11-11 14:25:11 +09:00
Alexey Pustovalov
7aee917872 Fixed CentOS building process. GOPROXY env variable specified to direct 2023-11-09 14:55:30 +09:00
Alexey Pustovalov
11c92093cd Fixed Timescale SQL files location 2023-10-20 23:10:18 +09:00
Alexey Pustovalov
e5cba7d84d Removed OL from build (temporary) 2023-10-20 16:20:01 +09:00
Alexey Pustovalov
a4eb4f2a1d Updated MySQL startup options and updated PostgreSQL version from 14 to 16 2023-09-28 14:10:25 +09:00
Alexey Pustovalov
6866cc7469 Fixed Office365 authentification. Using libcurl instead of libcurl-minimal 2023-09-28 01:37:16 +09:00
Alexey Pustovalov
8f2a070815 Fixed description for ZBX_SERVER_NAME 2023-09-27 20:14:12 +09:00
Alexey Pustovalov
123f4bc55e Updated source packages for Windows agents 2023-09-20 18:40:04 +09:00
Alexey Pustovalov
1b2b0f5cf6 Removed support ARMv7 support for Alpine 2023-09-20 18:33:00 +09:00
Alexey Pustovalov
468a6f9637 Removed support 38bit Alpine 2023-09-20 18:29:06 +09:00
Alexey Pustovalov
9b843e3054 Updated source packages for Windows agents 2023-09-20 18:23:06 +09:00
Alexey Pustovalov
63ba2e3b19 Updated OpenJDK to 17 version 2023-09-20 18:13:10 +09:00
Alexey Pustovalov
bd05205fb5 Removed tiny. Use docker --init instead 2023-09-13 01:37:06 +09:00
Alexey Pustovalov
c8849540ae Removed tiny. Use docker --init instead 2023-09-13 01:35:24 +09:00
Alexey Pustovalov
d4f6f49465 Fixed missing and incorrect variables 2023-08-16 16:55:59 +09:00
Alexey Pustovalov
18047ca74d Updated variables for next release 2023-08-16 16:45:12 +09:00
Alexey Pustovalov
fcc8bb96a0 Fixed ip_local_port_range port range 2023-08-10 13:31:52 +09:00
Alexey Pustovalov
6c23e379fa Updated cygwin 2023-08-01 18:11:25 +09:00
Alexey Pustovalov
143993fe83 Fixed MySQL socket usage in web-interface image 2023-07-14 14:15:26 +09:00
Alexey Pustovalov
0384443774 Updated Alpine to 3.18 2023-06-19 23:55:50 +09:00
Alexey Pustovalov
2c8617c105 Fixed agent (Alpine 3.17) on ARM7 platform 2023-06-19 15:37:47 +09:00
Alexey Pustovalov
cfeb8cade7 Added more detailed description for SSO variables 2023-05-29 13:06:25 +09:00
Alexey Pustovalov
077bcd45d1 Fixed extension for agent2 plugins 2023-05-29 12:44:35 +09:00
Alexey Pustovalov
74e194a034 Removed duplicate config option 2023-05-21 21:26:18 +09:00
Alexey Pustovalov
507be05fb4 Font permission fix 2023-05-15 12:35:30 +03:00
Alexey Pustovalov
88fae24525 Fixed MySQL socket usage 2023-05-02 15:33:33 +09:00
Alexey Pustovalov
775907f542 Use RHEL workflow only for X64 machine 2023-04-03 15:07:45 +09:00
Alexey Pustovalov
c037afa409 RHEL images prepare for ARM64 builds 2023-04-02 01:00:37 +09:00
Alexey Pustovalov
461fe237c8 Removed depcreated SenderFrequency parameter. Fixed logrotate for SNMP traps 2023-03-20 22:46:41 +09:00
Alexey Pustovalov
93582e53a8 Removed deprecated params, add new params 2023-03-14 22:53:33 +09:00
Alexey Pustovalov
b90e1d427f StartHistoryPollers is not supported for proxy since 6.2 2023-03-14 22:28:35 +09:00
Alexey Pustovalov
405a3aa086 Replaced font for web-interface to support CN, JP, KR 2023-03-14 21:15:10 +09:00
Alexey Pustovalov
12e3d414f2 Updated github action for Windows 2023-03-09 13:39:28 +09:00
Alexey Pustovalov
9ef1ae68b7 Ignoring README changes in RHEL build pipeline 2023-03-08 16:03:49 +09:00
Alexey Pustovalov
dc66c50d66 Fixed Windows build process. Removing symlink during build process 2023-03-08 15:34:38 +09:00
Alexey Pustovalov
ede9f6a7e6 Fixed Redhat and Cygwin checksum 2023-03-08 03:19:40 +09:00
Alexey Pustovalov
795f71a8c3 Changed structure of manual 2023-03-07 17:31:49 +09:00
Alexey Pustovalov
51708075ff Changed structure of manual 2023-03-07 17:27:55 +09:00
Alexey Pustovalov
b1b85d030f Changed structure of manual 2023-03-07 17:15:15 +09:00
Alexey Pustovalov
21d7f8085d Updated trunk to 7.0 2023-03-07 17:07:13 +09:00
Alexey Pustovalov
a3b78fc6c0 Updated trunk to 7.0 2023-03-07 17:03:00 +09:00
Alexey Pustovalov
b84110a871 Added libevent-pthreads package for Ubuntu based images 2023-03-01 13:41:38 +09:00
Alexey Pustovalov
a0d2de1c80 Fixed image tag for Ubuntu 2023-03-01 13:17:09 +09:00
Alexey Pustovalov
f0b4233e4c Update OpenSSL and Go versions for Windows 2023-02-27 18:51:37 +09:00
Alexey Pustovalov
f87a52efea Update OpenSSL and Go versions for Windows 2023-02-27 18:26:11 +09:00
Alexey Pustovalov
7b33e91f07 Updated docker to podman 2023-02-20 15:15:01 +09:00
Alexey Pustovalov
8e1e5c633e
Updated Readme, added information about compose 2023-02-17 00:49:46 +09:00
Alexey Pustovalov
72b25292d2 Updated Github workflow 2023-02-08 17:43:28 +09:00
Alexey Pustovalov
71f02eb511 Updated Github workflow 2023-02-08 17:41:04 +09:00
Alexey Pustovalov
a7ba05ce0c Added release for RHEL images 2023-02-06 16:05:48 +09:00
Alexey Pustovalov
e83b11e907 Updated RHEL action for trunk 2023-02-06 15:35:26 +09:00
Alexey Pustovalov
1cc4ba6f73 Fixed detect release for RHEL 2023-02-05 17:17:09 +09:00
Alexey Pustovalov
aca77d7aea Fixed detect release for RHEL 2023-02-05 15:49:43 +09:00
Alexey Pustovalov
8dd6140056 Added workflow for RHEL builds 2023-02-03 15:05:11 +09:00
Alexey Pustovalov
37b0a24dc5 Updated windows workflow according new github recommendations 2023-02-03 14:48:11 +09:00
Alexey Pustovalov
afb491ab67 Updated windows workflow according new github recommendations 2023-02-03 14:19:19 +09:00
Alexey Pustovalov
81700c17b5 Updated windows workflow according new github recommendations 2023-02-03 14:17:20 +09:00
Alexey Pustovalov
945bddcd39 Updated windows workflow according new github recommendations 2023-02-03 14:09:50 +09:00
Alexey Pustovalov
949ff0ea1c Updated CentOS from stream8 to stream9 2023-02-01 15:32:40 +09:00
Alexey Pustovalov
9d1218115c Updated CentOS from stream8 to stream9 2023-02-01 15:20:30 +09:00
Alexey Pustovalov
b40f47f7f7 Removed unused EPEL repo config 2023-02-01 15:19:29 +09:00
Alexey Pustovalov
59b52adb86 Updated OL from 8 to 9 version 2023-01-31 18:12:38 +09:00
Alexey Pustovalov
9871581d86 Updated RHEL base image to 9 version 2023-01-30 05:29:52 -05:00
Alexey Pustovalov
77b9579de7 Fixed SSO cert env variables 2023-01-22 17:17:38 +09:00
Alexey Pustovalov
700558ecd7 Added CyberArk vault 2023-01-22 17:11:51 +09:00
Alexey Pustovalov
2d2ef681c2 Added agent2 plugins to PostgreSQL and SQLite3 base images 2023-01-20 16:47:40 +09:00
Alexey Pustovalov
52c904eb0b Fixed web-service image. No more sandbox requirement 2023-01-20 16:30:08 +09:00
Alexey Pustovalov
ebc45dbc0a Removed Vault config from proxy SQLite3 2023-01-18 15:02:18 +09:00
Alexey Pustovalov
ee16635787 Added missing parameter HeartbeatFrequency for agent and agent2 2023-01-18 14:26:02 +09:00
Alexey Pustovalov
a706601495 Automatic db file name for SQLite3 base proxy 2023-01-16 17:01:06 +09:00
Alexey Pustovalov
eac4a90f46 Removed orphaed MaxLinesPerSecond 2023-01-10 13:58:34 +09:00
Alexey Pustovalov
0733f6464b Removed deprecated LogRemoteCommands 2023-01-10 12:56:07 +09:00
Alexey Pustovalov
9c7058176b Disallow access to vendor directory on Nginx 2023-01-06 13:28:45 +09:00
Alexey Pustovalov
ee5cd982c0 Limited seccomp permissions for web-service 2022-12-30 13:03:15 +09:00
Alexey Pustovalov
7616584e2b Add option for execute only DB scripts on proxy and server 2022-12-29 23:56:38 +09:00
Alexey Pustovalov
b515a9b697 Update license information for Agent 2 image 2022-12-19 16:52:55 +09:00
Alexey Pustovalov
769368bf28 Added sudo package for nmap processing 2022-12-16 16:23:51 +09:00
Alexey Pustovalov
5e0fb5d0bb Removed Go build cache 2022-12-15 13:54:48 +09:00
dotneft
d83d9b3b41 Added MongoDB and PostgreSQL plugins for Windows agent 2 2022-12-15 13:37:39 +09:00
Alexey Pustovalov
7dd6612411 Added PosgreSQL and MongoDB plugins to agent 2 image 2022-12-14 16:33:01 +09:00
Alexey Pustovalov
9cded2a83c Removed Go build cache 2022-12-14 03:01:46 +09:00
Alexey Pustovalov
b35dcf8e68 Fixed link 2022-12-05 19:10:10 +09:00
Alexey Pustovalov
72e6065036 Note about depcreated variable 2022-12-05 18:56:51 +09:00
Alexey Pustovalov
adc78ca04a Removed orphaned var 2022-12-05 18:52:40 +09:00
Alexey Pustovalov
13644b4a69 Fixed base image for Web nginx 2022-12-05 17:02:25 +09:00
Alexey Pustovalov
47a1e593b2 Fixed reepo names for RHEL 2022-12-05 02:03:38 -05:00
Alexey Pustovalov
6db3338725 Updated Cygwin 2022-11-30 15:13:07 +09:00
Alexey Pustovalov
9e3f4427c0 Updated Alpine to 3.17 2022-11-23 19:05:59 +09:00
Alexey Pustovalov
2aff00cb59 Updated Cygwin 2022-11-21 15:20:52 +09:00
Alexey Pustovalov
bbb297cb31 Updated OpenSSL and Go lang versions for Windows agent 2022-11-18 14:47:32 +09:00
Alexey Pustovalov
d9555a81d3 Using PostgreSQL 13 instead of 10 version on OL 2022-10-06 11:06:29 +03:00
Alexey Pustovalov
728e9eca0a Using PostgreSQL 13 instead of 10 version on OL 2022-10-06 11:02:18 +03:00
Alexey Pustovalov
ccc754ec69 Fixed secure LDAP on Ubuntu images 2022-09-08 17:08:45 +03:00
Alexey Pustovalov
afb2857d03 Added posibility for custom SQL scripts during DB init 2022-08-27 21:47:27 +03:00
Alexey Pustovalov
6803f0a8bd Updated PostgreSQL version to 14 2022-08-27 21:43:16 +03:00
Alexey Pustovalov
8b52ff7f44 Added posibility for custom SQL scripts during DB init 2022-08-27 21:40:18 +03:00
dotneft
d0311c4387 Fixed password expiration on Windows based images 2022-08-17 12:41:22 +03:00
Alexey Pustovalov
9acf660f21 Added PHP status and ping pages processing 2022-08-15 17:35:34 +03:00
Alexey Pustovalov
da2f2f073a Optimized build.sh 2022-08-05 10:42:15 +03:00
Alexey Pustovalov
b0e477fd13 Increased build base images building time 2022-07-21 21:30:10 +03:00
Alexey Pustovalov
35b4f93c46 Increased build base images building time 2022-07-21 18:47:22 +03:00
Alexey Pustovalov
8d75c4bc0a Removed ARMv6 from available platforms 2022-07-21 18:46:14 +03:00
Alexey Pustovalov
9ca1cdda01 Added security / optimization compilation flags 2022-07-21 12:09:53 +03:00
Alexey Pustovalov
12e20b7110 Fixed IPv6 listen for Nginx based images 2022-07-20 21:53:46 +03:00
Alexey Pustovalov
27ae669014 Added nmap and traceroute utilities to server / proxy images 2022-07-20 17:37:00 +03:00
Alexey Pustovalov
ea74f7bb72 Added security / optimization compilation flags 2022-07-20 16:24:09 +03:00
Alexey Pustovalov
060021fe06 Added security / optimization compilation flags 2022-07-20 15:33:17 +03:00
Alexey Pustovalov
59a8c993ac Removed fping6 parameter for Ubuntu 2022-07-20 12:19:52 +03:00
Alexey Pustovalov
f890972aaa Updated trunk version to 6.4 2022-07-05 17:46:20 +05:00
Alexey Pustovalov
c5664c504f Using Go package instead of binaries on RHEL and OL 2022-07-05 17:33:38 +05:00
Alexey Pustovalov
e409564b05 Prepare branch for 6.2 release 2022-07-05 12:11:26 +05:00
Alexey Pustovalov
735742faaf Removed unnecessary libraries from agent and agent2 images 2022-06-16 17:27:43 +03:00
Alexey Pustovalov
386a14e974 Removed Zabbix appliance 2022-06-13 11:24:08 -04:00
Alexey Pustovalov
1c740ad322 Fix MIBDIRS var for Ubuntu 22.04 Jammy 2022-06-08 22:49:35 +03:00
Alexey Pustovalov
ea75039b8c Fixed apt-key deprecation warnings for Ubuntu web-service image 2022-06-02 09:25:28 +03:00
Alexey Pustovalov
438f30e62c Fixed apt-key deprecation warnings for Ubuntu web images 2022-06-02 01:14:48 +03:00
Alexey Pustovalov
f2d61c731a Updated PHP for Alpine and Oracle Linux 2022-05-31 22:29:54 +03:00
Alexey Pustovalov
5f35f580e1 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2022-05-31 12:12:20 -04:00
Alexey Pustovalov
341eee1fd0 Updated PHP and Nginx for RHEL web image 2022-05-31 12:11:50 -04:00
Alexey Pustovalov
3de2a40b49 Updated Alpine to 3.16 2022-05-31 18:38:40 +03:00
Alexey Pustovalov
e9dc21eb40 Using chromium-headless package on RHEL like systems instead of full chromium 2022-05-31 17:27:59 +03:00
Alexey Pustovalov
68d62bc30b Fixed Apache images on Ubuntu base 2022-05-31 16:49:49 +03:00
Alexey Pustovalov
e2f4516697 Updated repository for Web-service on Ubuntu 2022-05-30 16:34:35 +03:00
Alexey Pustovalov
859920ff9e Removed ServerPort parameter from Zabix proxy images 2022-05-29 02:51:20 +03:00
Alexey Pustovalov
b3daf4585c Using different MySQL image to provide support ARM arch 2022-05-29 02:35:23 +03:00
Alexey Pustovalov
6b13b3a897 Fixed SSL mode option for PostgreSQL 2022-05-25 01:49:10 +03:00
Alexey Pustovalov
de11a16eb0 Using PHP8 in Alpine based images 2022-05-11 18:08:04 +03:00
Alexey Pustovalov
a0930b9733 Fixed agent2 compilation on CentOS Stream 8 2022-05-11 00:05:21 +03:00
Alexey Pustovalov
ab9c6a1720 Agent include directory restriction with *.conf files only 2022-05-10 19:37:02 +03:00
Alexey Pustovalov
7cfc492ba1 Removed 5.4 branch from actions 2022-05-10 19:28:33 +03:00
Alexey Pustovalov
8af4d22658 Updated Nginx and PHP versions on CentOS based images 2022-05-10 19:27:04 +03:00
Alexey Pustovalov
5e0caae42c Updated Nginx and PHP versions on CentOS based images 2022-05-10 19:25:47 +03:00
Alexey Pustovalov
bbc394363d Using official Go package on CentOS 2022-05-10 19:25:07 +03:00
Alexey Pustovalov
adf6f8e87c Updated base images usage information 2022-05-10 17:30:53 +03:00
Alexey Pustovalov
48a031f15e Recovered CentOS 8 build using stream image 2022-05-10 17:30:21 +03:00
dotneft
66b81a35f7 Removed unused VS components for Agent2 on Windows 2022-05-09 15:21:19 +03:00
dotneft
44b880eb75 Fixed OpenSSL compilation for Agent2 on Windows 2022-05-09 14:19:26 +03:00
dotneft
b2ba56547d Using OpenSSL 3.0 for agents on Windows 2022-05-08 23:51:37 +03:00
Alexey Pustovalov
fe6ea1794f Ubuntu images use Ubuntu 22.04 version 2022-05-08 22:28:05 +03:00
Alexey Pustovalov
78e322a405 Fixed building base image for RHEL 2022-05-04 21:36:19 +03:00
Alexey Pustovalov
e1f459a248 Fixed TZ data for RHEL images 2022-05-04 21:26:27 +03:00
Alexey Pustovalov
d104a9f9ac Added IgnoreURLCertErrors parameter for web-service 2022-04-20 20:39:43 +03:00
Alexey Pustovalov
37991418c0 Added plugins directory /etc/zabbix/zabbix_agent2.d/plugins.d/ for Agent 2 2022-04-20 17:18:46 +03:00
Alexey Pustovalov
8ed57cc330 Fixed snmp traps volume mount options 2022-04-20 13:47:41 +03:00
Alexey Pustovalov
8dc0c4a33b Added StartODBCPollers parameter for proxy and server 2022-04-15 16:51:26 +03:00
Alexey Pustovalov
ebe2f99525 Fixed compilation on Ubuntu. Updated go version for Ubuntu to 1.17 2022-04-11 15:11:28 +03:00
Alexey Pustovalov
c439d5f595 Fixed compilation on Ubuntu. Updated go version for Ubuntu to 1.17 2022-04-11 12:59:06 +03:00
dotneft
eb88dcece6 Updated 7zip package 2022-04-05 13:44:27 +03:00
Alexey Pustovalov
af40aed66e Updated 7zip package 2022-04-05 00:59:58 +03:00
Alexey Pustovalov
597f18b26d Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2022-03-18 10:32:40 +02:00
Alexey Pustovalov
1085a07c7a Added missing hostname for RHEL based images 2022-03-18 10:32:29 +02:00
Alexey Pustovalov
e3a90b1da4 Updated openssl version to avoid CVE-2022-0778 2022-03-16 14:25:30 +02:00
Alexey Pustovalov
db4affeec7 Fixed MYSQL_ROOT_USER env file path in docker-compose_v3_alpine_pgsql 2022-03-11 16:50:30 +01:00
Alexey Pustovalov
14b9ed502b Using libmodbus 3.1.7 version instead of master branch 2022-03-02 12:37:08 +02:00
Alexey Pustovalov
b32fe7a6d0 Added variable for root user. Removed DB root from web images 2022-02-27 21:12:19 +02:00
Alexey Pustovalov
ed0f3fd04e Updated trunk version to 6.2 2022-02-27 15:57:35 +02:00
Alexey Pustovalov
52cd3fdab7 Added some options for PHP-FPM configuration 2022-02-26 23:28:25 +02:00
Alexey Pustovalov
9dc4c5f4ed Fixed SHA256 for cygwin 2022-02-26 21:35:31 +02:00
Alexey Pustovalov
585593e8a8 Added variable for root user. Removed DB root from web images 2022-02-26 21:16:20 +02:00
Alexey Pustovalov
7e626287a9 Added HostInterface* variables for Agent2 2022-02-15 13:07:20 +02:00
Alexey Pustovalov
6830aab7ff Zabbix 6.0 release prepare 2022-02-15 12:03:28 +02:00
Alexey Pustovalov
e47ae41164 Zabbix 6.0 release prepare 2022-02-15 11:57:22 +02:00
Alexey Pustovalov
acba8cc7c5 Fixed charset for MySQL on Alpine 2022-02-10 03:05:27 +05:00
Alexey Pustovalov
65f1fd4fc9 Fixed schema and initial data client charset for MySQL based images 2022-02-09 19:05:29 +05:00
Alexey Pustovalov
7d8b42149c CentOS 8 base image is currently broken 2022-02-01 12:34:53 +05:00
Alexey Pustovalov
1b4a8dafe3 Fixed SHA256 for Cygwin 2022-01-28 15:09:41 +05:00
Alexey Pustovalov
9b3826910e Use pcre2 lib instead of old pcre 2022-01-22 17:44:37 +05:00
Alexey Pustovalov
edd6d8fd46 Fixed compilation warnings on Windows 2022-01-22 17:35:18 +05:00
dotneft
f6340c05b5 Updated Windows agents for PCRE2 library 2022-01-22 01:56:51 +05:00
Alexey Pustovalov
3b6368f7c9 Updated OpenSSL version 2022-01-13 01:28:37 +02:00
Alexey Pustovalov
a3097fa708 Fixed SHA256 sum for Cygwin and updated Go to 1.17.6 2022-01-13 00:45:58 +02:00
Alexey Pustovalov
907b0d29f3 Fixed SHA256 sum for Cygwin 2022-01-07 09:42:28 +02:00
Alexey Pustovalov
aee978c650 Updated Alpine Linux to 3.15 version 2021-11-29 16:08:26 +02:00
Alexey Pustovalov
8bed89afce Possible specify PSK key using full path to file 2021-11-22 15:32:57 +02:00
Alexey Pustovalov
c75d58aeda Added missing variables to server env file 2021-11-17 14:20:26 +01:00
Alexey Pustovalov
42718d0e2c Added ZBX_LISTENPORT to allowed variable list. Fixed env variable in Agent2 Windows image 2021-11-17 10:00:39 +01:00
Alexey Pustovalov
5a5bf88bc2 Added support for Zabbix HA 2021-11-17 09:31:10 +01:00
Alexey Pustovalov
1ca8cb2a9e Removed duplicated default values for Zabbix server port in web images 2021-11-17 01:45:24 +01:00
Alexey Pustovalov
96b02e7c5f Updated MySQL from utf8 to utf8mb4 2021-11-17 01:37:07 +01:00
Alexey Pustovalov
0702033093 Description for new params 2021-11-17 01:05:26 +01:00
Alexey Pustovalov
bf72796bdd Added ListenBacklog and TrendFunctionCacheSize params 2021-11-17 00:43:47 +01:00
Alexey Pustovalov
4943610f0b Removed smartmontools for checking SMART values with agent2 on Windows images 2021-11-13 18:42:56 +01:00
Alexey Pustovalov
3b33880cb0 Removed smartmontools for checking SMART values with agent2 on Windows images 2021-11-13 18:41:16 +01:00
Alexey Pustovalov
4aa30899d4 Added smartmontools for checking SMART values with agent2 2021-11-13 16:41:45 +01:00
Alexey Pustovalov
eb042481ef Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-11-13 16:09:40 +01:00
Alexey Pustovalov
5b839ca2bd Added smartmontools for checking SMART values with agent2 2021-11-13 16:09:15 +01:00
Alexey Pustovalov
7310cb02c3 Changed base Windows image for build 2021-11-13 02:27:21 +02:00
Alexey Pustovalov
b625d8c7eb Fixed PCRE library link 2021-11-05 13:27:06 +02:00
Alexey Pustovalov
ba660eeefe Fixed PCRE library link 2021-11-05 12:56:03 +02:00
Alexey Pustovalov
609b0ce86c Fixed issue with VAULT_TOKEN variable 2021-11-04 15:42:05 +02:00
Alexey Pustovalov
f63ebbdef8 Added s390x for Alpine 2021-10-29 19:11:31 +03:00
Alexey Pustovalov
1fa91212a2 Added s390x for Alpine 2021-10-29 04:16:24 +03:00
Alexey Pustovalov
f215087bd5 Added s390x for Alpine 2021-10-28 13:58:15 +03:00
Alexey Pustovalov
52c2f424e2 Added s390x for Alpine 2021-10-28 12:10:47 +03:00
Alexey Pustovalov
7cd186e10e Added ppc64le platform 2021-10-28 03:05:53 +03:00
Alexey Pustovalov
c762d9a3a1 Added ppc64le platform 2021-10-28 03:03:52 +03:00
Alexey Pustovalov
a6b6c1a7e8 Added s390x for Ubuntu 2021-10-28 01:45:54 +03:00
Alexey Pustovalov
6aedc739a0 Added ppc64le platform 2021-10-27 22:28:54 +03:00
Alexey Pustovalov
b7ec6f24d2 Added ppc64le platform 2021-10-27 22:28:33 +03:00
Alexey Pustovalov
79a0b16fb8 Fixed tag generation for releases 2021-10-19 02:29:17 +03:00
Alexey Pustovalov
fda3ea30e8 Fixed tag generation for releases 2021-10-18 19:16:58 +03:00
Alexey Pustovalov
789b0e5103 Fixed tag generation for releases 2021-10-18 19:16:02 +03:00
Alexey Pustovalov
ba21728b5e Fixed tag generation for releases 2021-10-18 19:14:55 +03:00
Alexey Pustovalov
2b95ec607c Fixed tag generation for releases 2021-10-18 19:12:43 +03:00
Alexey Pustovalov
221a078cbb Fixed tag generation for releases 2021-10-18 18:19:40 +03:00
Alexey Pustovalov
66022716b3 Minor design changes 2021-10-17 03:08:42 +03:00
Alexey Pustovalov
4ce42a7d6b Minor design changes 2021-10-17 02:42:29 +03:00
Alexey Pustovalov
4d13676760 Minor design changes 2021-10-17 00:15:15 +03:00
Alexey Pustovalov
5f443844fd Minor design changes 2021-10-16 12:18:04 -04:00
Alexey Pustovalov
93cbd3d826 Minor design changes 2021-10-16 11:49:19 -04:00
Alexey Pustovalov
f263d49f01 Description for build base image 2021-10-15 18:23:17 -04:00
Alexey Pustovalov
213cbcba2e Description for build base image 2021-10-15 18:13:09 -04:00
Alexey Pustovalov
36c1c0d51a Description for build base image 2021-10-15 18:11:57 -04:00
Alexey Pustovalov
c179b43f53 Description for build base image 2021-10-15 18:08:47 -04:00
Alexey Pustovalov
9f684786a2 New build procedure for RHEL based images 2021-10-15 15:55:46 -04:00
Alexey Pustovalov
cc8d44639d Refactoring 2021-10-14 23:27:40 +02:00
Alexey Pustovalov
40a13b98a1 Ensure enable timescale command is executed on application database 2021-10-14 15:11:50 +02:00
Alexey Pustovalov
c9f95fda05 Cosmetic changes 2021-10-12 16:50:58 +02:00
Alexey Pustovalov
5a7219b854 Cosmetic changes 2021-10-12 16:08:21 +02:00
Alexey Pustovalov
c08e3e5427 Cosmetic changes 2021-10-12 15:56:07 +02:00
Alexey Pustovalov
651b3c72f6 Fixed TLS encryption files location for PGSQL on Alpine 2021-10-12 15:16:56 +02:00
dotneft
dec1806df0 Updated Go lang version to 1.17.2 2021-10-12 03:49:14 +03:00
Alexey Pustovalov
6df01f148a Updated build process 2021-10-12 02:08:40 +02:00
Alexey Pustovalov
09dbb306ef Updated build script 2021-10-10 00:48:50 +02:00
Alexey Pustovalov
452ab0b4eb Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-10-10 00:43:57 +02:00
Alexey Pustovalov
131728aa06 Updated build script 2021-10-10 00:43:37 +02:00
Alexey Pustovalov
5eaeac8b9b
Added missing variable 2021-10-10 01:39:32 +03:00
Alexey Pustovalov
f1375b0d1e Updated build script 2021-10-09 13:02:03 +02:00
Alexey Pustovalov
16dfc08103 Updated build script 2021-10-09 11:51:37 +02:00
Alexey Pustovalov
200f739366 Updated build script 2021-10-09 11:41:32 +02:00
Alexey Pustovalov
c263edeb79 Updated build script 2021-10-09 11:35:31 +02:00
Alexey Pustovalov
5781665dd1 Updated build script 2021-10-09 10:19:44 +02:00
Alexey Pustovalov
4e00f429a3 Updated build script 2021-10-09 10:17:10 +02:00
Alexey Pustovalov
e208124b28 Updated build script 2021-10-09 10:14:15 +02:00
Alexey Pustovalov
46f528ee08 Updated build script 2021-10-09 10:12:42 +02:00
Alexey Pustovalov
59c4acf189 Updated build script 2021-10-09 10:12:02 +02:00
Alexey Pustovalov
9534df088a Updated build script 2021-10-09 09:06:48 +02:00
Alexey Pustovalov
f2eaf0fb26 Updated build script 2021-10-09 09:03:23 +02:00
Alexey Pustovalov
1e598415e0 Updated build script 2021-10-09 08:53:59 +02:00
Alexey Pustovalov
103ea5e099 Updated build script 2021-10-09 08:15:11 +02:00
Alexey Pustovalov
dcc36e745e Updated build script 2021-10-09 07:53:22 +02:00
Alexey Pustovalov
5434f4371c Updated build script 2021-10-09 07:40:18 +02:00
Alexey Pustovalov
576c31306f Updated build script 2021-10-09 07:36:35 +02:00
Alexey Pustovalov
f6714f00d9 Updated build script 2021-10-09 07:33:57 +02:00
Alexey Pustovalov
470f06072b Updated build script 2021-10-09 05:50:03 +02:00
Alexey Pustovalov
a4de106c91 Updated build script 2021-10-09 01:43:01 +02:00
Alexey Pustovalov
c07d2b55e5 Updated build script 2021-10-09 01:37:06 +02:00
Alexey Pustovalov
bc5d2d5089 Updated build script 2021-10-09 00:50:45 +02:00
Alexey Pustovalov
3a6fecf3bc Updated build script 2021-10-09 00:00:45 +02:00
Alexey Pustovalov
d49dc149d5 Updated build script 2021-10-08 23:27:11 +02:00
Alexey Pustovalov
68b4cdf5e4 Updated build script 2021-10-08 23:13:14 +02:00
Alexey Pustovalov
c402ce0ca3 Updated build script 2021-10-08 22:27:30 +02:00
Alexey Pustovalov
f5490e2be5 Updated build script 2021-10-08 21:25:22 +02:00
Alexey Pustovalov
d384bbb935 Updated build script 2021-10-08 20:50:24 +02:00
Alexey Pustovalov
cbc35af605 Updated build script 2021-10-08 19:51:53 +02:00
Alexey Pustovalov
5d84a982db Updated build script 2021-10-08 19:16:47 +02:00
Alexey Pustovalov
2d0414f5cb Updated build script 2021-10-08 18:46:04 +02:00
Alexey Pustovalov
21742c7d73 Updated build script 2021-10-08 18:16:41 +02:00
Alexey Pustovalov
291aaf7bf6 Updated build script 2021-10-08 17:25:53 +02:00
Alexey Pustovalov
07bc4333c7 Updated build script 2021-10-08 17:10:08 +02:00
Alexey Pustovalov
ea0698786f Updated build script 2021-10-08 17:08:55 +02:00
Alexey Pustovalov
c5cc9be0ba Updated build script 2021-10-08 16:58:11 +02:00
Alexey Pustovalov
64c484ab3d Updated build script 2021-10-08 16:18:42 +02:00
Alexey Pustovalov
4b4e488737 Updated build script 2021-10-08 16:09:18 +02:00
Alexey Pustovalov
ab21113d69 Updated build script 2021-10-08 15:57:08 +02:00
Alexey Pustovalov
8ff4032b2f Updated build script 2021-10-08 15:56:05 +02:00
Alexey Pustovalov
d8f7b20b4a Updated build script 2021-10-08 15:50:41 +02:00
Alexey Pustovalov
13fb0de4a3 Updated build script 2021-10-08 15:48:47 +02:00
Alexey Pustovalov
724269eafb Updated build script 2021-10-08 15:45:12 +02:00
Alexey Pustovalov
07d18b8dd9 Updated build script 2021-10-08 15:43:13 +02:00
Alexey Pustovalov
521bf35c9e Updated build script 2021-10-08 15:42:43 +02:00
Alexey Pustovalov
7324b217bf Updated build script 2021-10-08 15:33:19 +02:00
Alexey Pustovalov
bf59a55cd5 Updated build script 2021-10-08 15:30:12 +02:00
Alexey Pustovalov
dd1e4dd5d8 Updated build script 2021-10-08 15:24:52 +02:00
Alexey Pustovalov
44b4bc16de Updated build script 2021-10-08 15:23:28 +02:00
Alexey Pustovalov
0d2a096061 Updated build script 2021-10-08 15:14:40 +02:00
Alexey Pustovalov
5d339f2f6e Updated build script 2021-10-08 15:12:05 +02:00
Alexey Pustovalov
3ea8fb7c42 Updated build script 2021-10-08 14:52:53 +02:00
Alexey Pustovalov
1f8d491215 Updated build script 2021-10-08 14:39:58 +02:00
Alexey Pustovalov
ee3a0537d1 Updated build script 2021-10-08 14:37:57 +02:00
Alexey Pustovalov
f87562ca69 Updated build script 2021-10-08 14:34:44 +02:00
Alexey Pustovalov
922ea12f6c Updated build script 2021-10-08 13:41:53 +02:00
Alexey Pustovalov
7919b0886f Updated build script 2021-10-08 13:14:20 +02:00
Alexey Pustovalov
4c274f0d66 New build design 2021-10-08 13:11:17 +02:00
Alexey Pustovalov
e20026a8ae New build design 2021-10-08 12:53:30 +02:00
Alexey Pustovalov
549a36c631 New build design 2021-10-08 12:45:31 +02:00
Alexey Pustovalov
7fb4f629c3 New build design 2021-10-08 12:31:16 +02:00
Alexey Pustovalov
18e1207070 New build design 2021-10-08 12:30:24 +02:00
Alexey Pustovalov
891e70aa43 New build design 2021-10-08 12:27:10 +02:00
Alexey Pustovalov
3e2becb70d New build design 2021-10-08 12:23:51 +02:00
Alexey Pustovalov
a388663b9f New build design 2021-10-08 12:16:50 +02:00
Alexey Pustovalov
c2acaa0049 New build design 2021-10-08 00:13:22 +02:00
Alexey Pustovalov
1f68d44d7b Implemented build for CentOS 2021-10-06 23:55:37 +02:00
Alexey Pustovalov
b634276b44 Implemented build for CentOS 2021-10-06 22:51:47 +02:00
Alexey Pustovalov
3e0864f704 Implemented build for CentOS 2021-10-06 22:41:16 +02:00
Alexey Pustovalov
a285e26e08 Implemented build for CentOS 2021-10-06 22:39:49 +02:00
Alexey Pustovalov
b746d9cf31 Fixed path to env variables 2021-10-06 17:42:20 +02:00
dotneft
29cf8e4078 Fixed kubernetes YAML 2021-09-27 19:09:07 +05:00
Alexey Pustovalov
317a3d36a8 Use volumes for snmptraps and Zabbix proxy Sqlite3 DB 2021-09-25 04:18:27 +05:00
dotneft
9eac8ecc77 Added verbose information to Windows images 2021-09-25 01:55:53 +05:00
Alexey Pustovalov
706a021f5e Updated kubernetes YAML 2021-09-23 19:14:51 +05:00
dotneft
0904331e8a Fix building Zabbix agent on Windows 2021-09-18 04:08:26 +03:00
dotneft
52f179fd46 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-09-17 23:36:08 +03:00
dotneft
cb2d65a8b2 Prepared build base images for Zabbix agents on Windows 2021-09-17 23:35:50 +03:00
Alexey Pustovalov
f7f3f5ded4 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-09-17 19:53:10 +02:00
Alexey Pustovalov
76ea396d29 Removed libmodbus library from proxy and server images 2021-09-17 19:51:09 +02:00
dotneft
ab60fdaabd Windows Docker files 2021-09-17 02:47:46 +03:00
dotneft
675b3ee1e0 Updated Zabbix agent 2 for Windows 2021-09-17 02:19:15 +03:00
dotneft
98ab8d4d69 Updated Zabbix agent 2 for Windows 2021-09-17 00:14:49 +03:00
dotneft
24d47aab16 Updated Zabbix agent 2 for Windows 2021-09-17 00:11:04 +03:00
dotneft
e64f758109 Updated Zabbix agent 2 for Windows 2021-09-17 00:07:08 +03:00
dotneft
2c6d639255 Updated Windows Dockerfiles 2021-09-16 04:15:22 +03:00
Alexey Pustovalov
25ebe1883f New Dockerfiles and environment variables structure 2021-09-15 22:49:38 +02:00
Alexey Pustovalov
626acdb323 New Dockerfiles and environment variables structure 2021-09-15 22:48:50 +02:00
Alexey Pustovalov
80af5cb76b New Dockerfiles and environment variables structure 2021-09-15 22:32:35 +02:00
Alexey Pustovalov
b6f869575f New Dockerfiles and environment variables structure 2021-09-15 22:31:18 +02:00
Alexey Pustovalov
630d9cb5ac New Dockerfiles and environment variables structure 2021-09-15 21:19:29 +02:00
Alexey Pustovalov
e41876db2d Test 2021-09-15 16:48:48 +02:00
Alexey Pustovalov
b00da1c4f9 Test 2021-09-15 15:29:12 +02:00
Alexey Pustovalov
8aaf6590a4 Test 2021-09-15 14:21:33 +02:00
Alexey Pustovalov
de84862c74 Test 2021-09-15 14:15:05 +02:00
Alexey Pustovalov
632daf9386 Test 2021-09-15 13:31:56 +02:00
Alexey Pustovalov
fd2da0a361 Test 2021-09-14 17:37:31 +02:00
Alexey Pustovalov
da71721516 Test 2021-09-14 16:15:32 +02:00
Alexey Pustovalov
98c7b39287 Test 2021-09-14 16:14:38 +02:00
Alexey Pustovalov
8a39fcf7b4 Test 2021-09-14 15:22:13 +02:00
Alexey Pustovalov
e43c79dffd Test 2021-09-14 15:02:34 +02:00
Alexey Pustovalov
2d47b2c52e Test 2021-09-14 14:49:54 +02:00
Alexey Pustovalov
8d2e46895d Test 2021-09-14 14:36:19 +02:00
Alexey Pustovalov
ddadbdf822 Test 2021-09-14 14:15:57 +02:00
Alexey Pustovalov
18b2858b97 Test 2021-09-14 14:14:02 +02:00
Alexey Pustovalov
33830b7983 Updated Go lang to 1.17.1 version 2021-09-14 14:05:14 +02:00
Alexey Pustovalov
d5673842d7 Updated Go lang to 1.17.1 version 2021-09-14 14:02:44 +02:00
Alexey Pustovalov
d0683d44f0 Updated Go lang to 1.17.1 version 2021-09-14 14:00:09 +02:00
Alexey Pustovalov
830c084048 Updated Go lang to 1.17.1 version 2021-09-14 13:58:32 +02:00
Alexey Pustovalov
fe97fa79bf Updated Go lang to 1.17.1 version 2021-09-14 12:36:08 +02:00
Alexey Pustovalov
4acb3dd810 Updated Go lang to 1.17.1 version 2021-09-14 12:35:54 +02:00
Alexey Pustovalov
968e70e576 Updated Go lang to 1.17.1 version 2021-09-14 12:33:46 +02:00
Alexey Pustovalov
1d64aceb30 Updated Go lang to 1.17.1 version 2021-09-14 12:32:43 +02:00
Alexey Pustovalov
aeca02b9ab Updated Go lang to 1.17.1 version 2021-09-14 12:32:06 +02:00
Alexey Pustovalov
1d74db337f Updated Go lang to 1.17.1 version 2021-09-14 11:41:09 +02:00
Alexey Pustovalov
244158f375 Updated Go lang to 1.17.1 version 2021-09-14 08:34:51 +02:00
Alexey Pustovalov
9a2b6b3c8e Updated Go lang to 1.17.1 version 2021-09-14 07:21:16 +02:00
Alexey Pustovalov
239115bbba Updated Go lang to 1.17.1 version 2021-09-14 04:55:24 +02:00
Alexey Pustovalov
0d6b1823fb Updated Go lang to 1.17.1 version 2021-09-14 03:39:50 +02:00
Alexey Pustovalov
2f6ea9a0dc Updated Go lang to 1.17.1 version 2021-09-14 03:27:47 +02:00
Alexey Pustovalov
3298678099 Updated Go lang to 1.17.1 version 2021-09-14 03:10:41 +02:00
Alexey Pustovalov
0e1f2a11fd Updated Go lang to 1.17.1 version 2021-09-14 02:49:22 +02:00
Alexey Pustovalov
c00e9dbfb0 Updated Go lang to 1.17.1 version 2021-09-14 02:19:36 +02:00
Alexey Pustovalov
551e805f50 Updated Go lang to 1.17.1 version 2021-09-14 02:18:47 +02:00
Alexey Pustovalov
43f519778e Updated Go lang to 1.17.1 version 2021-09-14 02:17:14 +02:00
Alexey Pustovalov
dec682ea45 Updated Go lang to 1.17.1 version 2021-09-14 01:18:41 +02:00
Alexey Pustovalov
94d064dac7 Updated Go lang to 1.17.1 version 2021-09-14 00:47:23 +02:00
Alexey Pustovalov
78c1ccacec Updated Go lang to 1.17.1 version 2021-09-14 00:31:35 +02:00
Alexey Pustovalov
5c1977ea86 Updated Go lang to 1.17.1 version 2021-09-14 00:12:27 +02:00
Alexey Pustovalov
8c900d49f8 Preparation for multistage builds 2021-09-13 23:11:03 +02:00
Alexey Pustovalov
98f7636c6f Preparation for multistage builds 2021-09-13 23:06:45 +02:00
Alexey Pustovalov
dfca6ccb96 Preparation for multistage builds 2021-09-13 22:14:34 +02:00
Alexey Pustovalov
6bdbd2f704 Preparation for multistage builds 2021-09-13 22:01:07 +02:00
Alexey Pustovalov
7f4617b2b7 Preparation for multistage builds 2021-09-13 22:00:00 +02:00
Alexey Pustovalov
476a34acad Preparation for multistage builds 2021-09-13 21:50:20 +02:00
Alexey Pustovalov
fb845599d4 Preparation for multistage builds 2021-09-13 21:40:08 +02:00
Alexey Pustovalov
eb293c1ebf Preparation for multistage builds 2021-09-13 21:26:49 +02:00
Alexey Pustovalov
1de5bcf429 Preparation for multistage builds 2021-09-13 21:17:54 +02:00
Alexey Pustovalov
43628f0e2f Preparation for multistage builds 2021-09-13 21:04:05 +02:00
Alexey Pustovalov
59097eb7dc Preparation for multistage builds 2021-09-13 19:42:05 +02:00
Alexey Pustovalov
3497c2d7d6 Preparation for multistage builds 2021-09-13 19:36:12 +02:00
Alexey Pustovalov
6e9b89982a Optimized Java Gateway build process. Removed unsupported Appliance images 2021-09-13 18:07:45 +02:00
Alexey Pustovalov
97108f2e28 Optimized Java Gateway build process. Removed unsupported Appliance images 2021-09-13 18:01:21 +02:00
Alexey Pustovalov
72ddd79a58 Optimized Java Gateway build process 2021-09-13 17:56:09 +02:00
Alexey Pustovalov
e7971dcf4a Optimized Java Gateway build process 2021-09-13 17:53:32 +02:00
Alexey Pustovalov
963745363d Optimized Java Gateway build process 2021-09-13 17:44:52 +02:00
Alexey Pustovalov
1b3bdda93a Orphaned code. Package manager microdnf already fixed the issue 2021-09-13 17:10:21 +02:00
Alexey Pustovalov
fbc3710beb Fix typo 2021-09-13 16:51:01 +02:00
Alexey Pustovalov
2b7d26b4ca Dedicated build environment for Oracle Linux based images 2021-09-13 03:35:17 +02:00
Alexey Pustovalov
9b847d6ff6 Dedicated build environment for Alpine and Ubuntu based images 2021-09-13 00:07:21 +02:00
Alexey Pustovalov
18184f650e Dedicated build environment for Alpine and Ubuntu based images 2021-09-13 00:06:51 +02:00
Alexey Pustovalov
9734874434 Fixed Agent2 compilation on RHEL 2021-09-12 10:30:43 -04:00
Alexey Pustovalov
069b6631a0 Fixed Agent2 compilation on OEL 2021-09-12 15:59:05 +02:00
Alexey Pustovalov
f043ef99e8 Remove orphaned args 2021-09-12 08:49:37 +02:00
Alexey Pustovalov
8d96c39083 Using EPEL to install tini package on RHEL based images 2021-09-12 09:00:33 -04:00
Alexey Pustovalov
2e0ee131fc Updated Alpine base image to 3.14 and build Agent with modbus support 2021-09-12 08:45:51 +02:00
Alexey Pustovalov
9a2e0c9a0d Using EPEL to install tini package on OEL based images 2021-09-12 08:39:47 +02:00
dotneft
498f3d02ee Fixed Ubuntu based Agent2 image building. Go lang min version 1.16 2021-09-11 23:36:06 +03:00
dotneft
f58ff1d69e Windows docker images for Agent and Agent2 components 2021-09-04 23:57:40 +03:00
dotneft
db3b3ecf04 Windows docker images for Agent and Agent2 components 2021-09-04 18:49:04 +03:00
dotneft
8f1283523e Windows docker images for Agent and Agent2 components 2021-09-04 05:05:08 +03:00
dotneft
f6af8350ae Windows docker images for Agent and Agent 2 components 2021-09-03 23:46:24 +03:00
dotneft
8241dc034c Windows docker images for Agent and Agent2 components 2021-09-03 23:46:01 +03:00
root
31fc0008e5 Review RHEL repositories 2021-09-03 15:53:20 -04:00
dotneft
0dc7a1c327 Added Azure registry build action 2021-08-25 16:06:16 +03:00
dotneft
ad72c2f334 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-08-25 16:05:24 +03:00
dotneft
ba1197a9df Added Azure registry build action 2021-08-25 16:05:17 +03:00
Alexey Pustovalov
f9d45a586c Fixed persistent storage location for agent2 2021-08-25 15:00:35 +02:00
dotneft
5b17d2c0d3 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-08-25 15:13:21 +03:00
dotneft
230c326a1a Added Azure registry build action 2021-08-25 15:13:11 +03:00
Alexey Pustovalov
b69d746993 Add option to use implicit search path in postgres 2021-08-05 18:43:04 +02:00
Alexey Pustovalov
930e66b9f7 Add option to use implicit search path in postgres 2021-08-05 17:59:45 +02:00
Alexey Pustovalov
c1b7ee2ac9 Allow custom DB name for Proxy SQLite3 variant 2021-08-04 17:47:46 +02:00
Alexey Pustovalov
419072041c Merge branch 'master' into trunk 2021-08-04 17:44:05 +02:00
Alexey Pustovalov
5f79463fcf Allow custom DB name for Proxy SQLite3 variant 2021-08-04 17:43:49 +02:00
Alexey Pustovalov
821bfec19e Allow custom DB name for Proxy SQLite3 variant 2021-08-04 17:40:37 +02:00
Alexey Pustovalov
6e1cadf424 Fixed ZBX_TRAPPERTIMEOUT variable name 2021-08-04 14:58:14 +02:00
Alexey Pustovalov
7bf89628db Fixed ZBX_TRAPPERTIMEOUT variable name 2021-08-04 13:37:59 +02:00
Alexey Pustovalov
76edafeb24 Fixed Nginx configuration on Alpine 3.14 2021-07-01 04:25:15 -04:00
Alexey Pustovalov
ea6fe8fbab Updated Alpine version to 3.14 2021-06-25 08:05:40 -04:00
Alexey Pustovalov
d72fd9ecbe Fixed ZBX_SSO_SETTINGS in PostgreSQL / Nginx images 2021-06-16 22:01:51 +03:00
root
ddc58091eb Added RHEL images for trunk 2021-06-11 17:07:45 -04:00
Alexey Pustovalov
73c0e3ce07 Added recommended version for PostgreSQL 2021-06-10 17:52:34 -04:00
Alexey Pustovalov
4fcbe2a817 Added Oracle Linux 8 images instead of CentOS 8 2021-06-10 17:39:00 -04:00
Alexey Pustovalov
cf78fb842e Merge branch 'master' into trunk 2021-06-10 17:35:51 -04:00
Alexey Pustovalov
600c69975b Added Oracle Linux 8 images instead of CentOS 8 2021-06-10 17:35:33 -04:00
Alexey Pustovalov
82dc4598ab Added Oracle Linux 8 images instead of CentOS 8 2021-06-10 16:39:04 -04:00
Alexey Pustovalov
29d5009bbc Added Oracle Linux 8 images instead of CentOS 8 2021-06-10 13:56:15 -04:00
Alexey Pustovalov
71a1311be5
Removed CentOS and added Oracle Linux 2021-06-10 02:26:14 +03:00
Alexey Pustovalov
8d6e473b9c
Removed CentOS and added Oracle Linux 2021-06-10 02:19:56 +03:00
Alexey Pustovalov
2b4d250ebd Fixed Ubuntu based web dockerfile 2021-06-09 19:08:54 +03:00
Alexey Pustovalov
432436c7f1 Optimizations for Nginx/Apache configs 2021-06-08 19:48:27 -04:00
Alexey Pustovalov
d8eef085c7 Optimizations for Nginx/Apache configs 2021-06-08 19:10:03 -04:00
Alexey Pustovalov
ec9e888ea2 Optimizations for Nginx configs 2021-06-08 18:09:00 -04:00
Alexey Pustovalov
fe0fbaeda6 Optimizations for Nginx configs 2021-06-08 17:57:17 -04:00
Alexey Pustovalov
245da10a26 Merge branch 'master' into trunk 2021-06-08 17:56:45 -04:00
Alexey Pustovalov
957029b5b5 Optimizations for Nginx configs 2021-06-07 13:52:40 -04:00
Alexey Pustovalov
792bad9015 Removed orphaned files 2021-06-07 12:35:20 -04:00
Alexey Pustovalov
508dc26fa2 Merge branch 'master' into trunk 2021-06-07 12:35:00 -04:00
Alexey Pustovalov
a36ff2f2e0 Removed orphaned files 2021-06-07 12:20:27 -04:00
Alexey Pustovalov
6dcae158f5 Fixed SSL warnings 2021-06-07 09:51:38 -04:00
Alexey Pustovalov
5a3d4e950f Merge branch 'master' into trunk 2021-06-07 09:50:09 -04:00
Alexey Pustovalov
335d575c70 Fixed SSL warnings 2021-06-07 09:44:31 -04:00
Alexey Pustovalov
ce2857a0a9 Fixed warnings with file linkage 2021-06-07 08:53:07 -04:00
Alexey Pustovalov
fbc9aa336c Fixed warnings with file linkage 2021-06-07 08:41:33 -04:00
Alexey Pustovalov
0465d2befc Fixed permissions to vendor directory 2021-06-07 07:24:08 -04:00
Alexey Pustovalov
84a0cc3227 Prepare for Zabbix 5.4 release 2021-05-17 15:04:07 +05:00
Alexey Pustovalov
cbf06bb6de Prepare for Zabbix 5.4 release 2021-05-17 14:37:01 +05:00
Alexey Pustovalov
5c74f7c99a Prepare for Zabbix 5.4 release 2021-05-17 14:32:25 +05:00
Alexey Pustovalov
bd169b9ec9 Prepare for Zabbix 5.4 release 2021-05-17 14:22:56 +05:00
Alexey Pustovalov
1beb35eb96 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-05-17 14:20:09 +05:00
Alexey Pustovalov
461c6113dc Prepare for Zabbix 5.4 release 2021-05-17 14:19:58 +05:00
Alexey Pustovalov
f19681cd5f Merge branch 'master' into trunk 2021-05-17 14:18:32 +05:00
Alexey Pustovalov
f2ef2c3c1e Prepare for Zabbix 5.4 release 2021-05-17 14:17:56 +05:00
Alexey Pustovalov
867202beb4 Added Zabbix web service image 2021-04-27 23:56:40 -04:00
Alexey Pustovalov
78719d212f Added Zabbix web service image 2021-04-27 18:56:12 -04:00
Alexey Pustovalov
629d107e91 Added web service parameters and exporttype parameter 2021-04-27 17:48:49 -04:00
Alexey Pustovalov
2aa8589ea4 Merge branch 'master' into trunk 2021-04-27 17:43:14 -04:00
Alexey Pustovalov
4836dd7b6f Using openjdk-8-jdk-headless instead of openjdk-8-jdk 2021-04-28 02:23:13 +05:00
Alexey Pustovalov
6c33275e83 Added web service parameters and exporttype parameter 2021-04-27 17:20:38 -04:00
Alexey Pustovalov
1bbe37282f Added Zabbix web service image 2021-04-27 17:10:15 -04:00
Alexey Pustovalov
d6e4e6d576 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-04-28 02:03:18 +05:00
Alexey Pustovalov
dadf0fbb01 Merge branch 'master' into trunk 2021-04-28 02:01:56 +05:00
Alexey Pustovalov
30f833b8c3 Added Zabbix web service image (centos, ubuntu) 2021-04-28 02:01:30 +05:00
Alexey Pustovalov
4f5b47d35c Use g++ package instead of gcc 2021-04-27 16:47:11 -04:00
Alexey Pustovalov
e00b78e4f8 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-04-27 16:43:57 -04:00
Alexey Pustovalov
d67206ebc3 Added Zabbix web service image 2021-04-27 16:43:44 -04:00
Alexey Pustovalov
f2cfce5801 Merge branch 'master' into trunk 2021-04-28 01:30:17 +05:00
Alexey Pustovalov
02b57f851d Added Zabbix web service image (centos, ubuntu) 2021-04-28 01:29:45 +05:00
Alexey Pustovalov
5655cff50a Added Zabbix web service image 2021-04-27 16:27:37 -04:00
Alexey Pustovalov
da87d10b4e Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2021-04-27 20:15:26 +05:00
Alexey Pustovalov
091a95a485 Merge branch 'master' into trunk 2021-04-27 20:15:17 +05:00
Alexey Pustovalov
7636492524 Added actions for Zabbix web service image 2021-04-27 20:14:53 +05:00
Alexey Pustovalov
8c84de20ea Added Zabbix web service image 2021-04-27 10:30:54 -04:00
Alexey Pustovalov
e793bcfa2d Added Zabbix web service image 2021-04-27 10:28:03 -04:00
Alexey Pustovalov
e9efde3ee5 Added Zabbix web service image 2021-04-27 10:27:20 -04:00
Alexey Pustovalov
c5b795ad09 Merge branch 'master' into trunk 2021-04-27 19:24:49 +05:00
Alexey Pustovalov
bbf7a03137 Added actions for Zabbix web service image 2021-04-27 19:24:18 +05:00
Alexey Pustovalov
04264fdf5b Added link to wiki 2021-04-23 14:00:41 +05:00
Alexey Pustovalov
94e26abcce Merge branch 'master' into trunk 2021-04-23 01:23:34 +05:00
Alexey Pustovalov
401a8d208d Added new parameter history pollers for server and proxies 2021-04-23 01:23:22 +05:00
Alexey Pustovalov
f6f9ea625c Added new parameter history pollers for server and proxies 2021-04-23 01:19:41 +05:00
Alexey Pustovalov
de926905d2 Added Issue template 2021-04-23 01:04:55 +05:00
Alexey Pustovalov
44540aa31a Added note about official documentation examples 2021-04-13 08:32:29 -04:00
Alexey Pustovalov
d2db348009 Ignore case for boolean vars 2021-04-13 08:16:43 -04:00
Alexey Pustovalov
0d524b9c29 Merge branch 'master' into trunk 2021-04-13 08:13:54 -04:00
Alexey Pustovalov
c603bce188 Ignore case for boolean vars 2021-04-13 07:50:17 -04:00
Alexey Pustovalov
39f2bc347a Ignore case for boolean vars 2021-04-13 07:34:31 -04:00
Alexey Pustovalov
8160056240 Ignore case for boolean vars 2021-04-13 07:09:40 -04:00
Alexey Pustovalov
d4bae351e8 Ignore case for boolean vars 2021-04-11 21:43:41 -04:00
Alexey Pustovalov
fe57f5c5e0 Added Zabbix agent 2 Ubuntu image 2021-04-10 06:39:18 -04:00
Alexey Pustovalov
d316c8f6d8 Added Zabbix agent 2 Ubuntu image 2021-04-10 06:38:02 -04:00
Alexey Pustovalov
0176c8b573 Added modbus support for Zabbix agent Ubuntu image 2021-04-10 06:30:30 -04:00
Alexey Pustovalov
aa83b38894 Updated unsupported releases. Zabbix 3.0 2021-04-10 00:02:09 -04:00
Alexey Pustovalov
d5ca467297 Updated unsupported releases. Zabbix 3.0 2021-04-09 23:57:54 -04:00
Alexey Pustovalov
e35176c476 Merge branch 'master' into trunk 2021-04-09 23:55:50 -04:00
Alexey Pustovalov
50a9acc00e Updated unsupported releases. Zabbix 3.0 2021-04-09 23:54:33 -04:00
Alexey Pustovalov
2ff2ddc628 Added profiles for compose files: default, full, all 2021-04-09 23:40:19 -04:00
Alexey Pustovalov
e52a5083a7 Added profiles for compose files: default, full, all 2021-04-09 23:39:00 -04:00
Alexey Pustovalov
b3a50fe081 Added profiles for compose files: default, full, all 2021-04-09 10:26:36 -04:00
Alexey Pustovalov
bef77c521b Added profiles for compose files: default, full, all 2021-04-09 10:26:17 -04:00
Alexey Pustovalov
eccdda07a9
Update CI.yml 2021-03-29 13:17:28 +05:00
Alexey Pustovalov
8ea9e1a724
Update CI.yml 2021-03-17 21:05:27 +05:00
Alexey Pustovalov
3337cbdf9f Review Java Gateway startup script 2021-02-18 13:17:06 -05:00
Alexey Pustovalov
108b975632 Review Java Gateway startup script 2021-02-18 08:45:05 -05:00
Alexey Pustovalov
788be933e1 Review Java Gateway startup script 2021-02-18 08:43:23 -05:00
Alexey Pustovalov
9f9c193e45 Review Java Gateway startup script 2021-02-18 08:42:10 -05:00
Alexey Pustovalov
07418f614f Review Java Gateway startup script 2021-02-18 08:26:58 -05:00
Alexey Pustovalov
f70f2a1e44 Added ListenIP for Proxy and Server 2021-02-18 08:22:15 -05:00
Alexey Pustovalov
b0ac73dc56 Fixed path variable to www-root dir 2021-02-17 08:37:07 -05:00
Alexey Pustovalov
7369af8e67 Merge branch 'master' of https://github.com/zabbix/zabbix-docker 2021-02-17 07:32:25 -05:00
Alexey Pustovalov
de576d4055 Fixed path variable to www-root dir 2021-02-17 07:31:44 -05:00
Alexey Pustovalov
16f7726e41 Added additional tag format 2021-02-16 15:57:28 +02:00
Alexey Pustovalov
2f553c9a2e Updated Alpine base image from 3.12 to 3.13 2021-02-15 11:36:46 -05:00
Alexey Pustovalov
a8b10ab069 Added GitHub Action to update repository description 2021-02-15 17:22:27 +02:00
Alexey Pustovalov
bcdf7aee41 Added GitHub Action to update repository description 2021-02-15 17:20:51 +02:00
Alexey Pustovalov
b48b9cbdaa Added GitHub Action to update repository description 2021-02-15 17:20:31 +02:00
Alexey Pustovalov
30858245af Added GitHub Action to update repository description 2021-02-15 17:19:26 +02:00
Alexey Pustovalov
233666281c Added GitHub Action to update repository description 2021-02-15 17:18:59 +02:00
Alexey Pustovalov
e83a865166 Added GitHub Action to update repository description 2021-02-15 17:14:19 +02:00
Alexey Pustovalov
4bdbe4c9be Added GitHub Action to update repository description 2021-02-15 17:06:24 +02:00
Alexey Pustovalov
a549c5037c Added GitHub Action to update repository description 2021-02-15 16:56:45 +02:00
Alexey Pustovalov
64ec173cae Added GitHub Action to update repository description 2021-02-15 16:54:07 +02:00
Alexey Pustovalov
e157425aa3 Added GitHub Action to update repository description 2021-02-15 16:48:34 +02:00
Alexey Pustovalov
4a415790d0 Added GitHub Action to update repository description 2021-02-15 16:37:41 +02:00
Alexey Pustovalov
9d5c28525a Updated snmptraps image. Fixed source IP handling and trap format 2021-02-15 04:51:35 -05:00
Alexey Pustovalov
e9dfd43784 Merge branch 'master' into trunk 2021-02-12 09:47:56 -05:00
Alexey Pustovalov
c1a435b6c7 Updated snmptraps image. Fixed source IP handling and trap format 2021-02-12 08:24:37 -05:00
Alexey Pustovalov
528876cc8c Updated snmptraps image. Fixed source IP handling and trap format 2021-02-12 08:14:16 -05:00
Alexey Pustovalov
3a099e7b9b Zabbix Appliance has been decommissioned 2021-02-08 20:11:50 -05:00
Alexey Pustovalov
fe91d5d3fb Updated snmptraps image. Fixed source IP handling and trap format 2021-02-08 20:02:15 -05:00
Alexey Pustovalov
f1c3e71e91 Merge branch 'master' into trunk 2021-02-08 19:59:01 -05:00
Alexey Pustovalov
d1ce7b21a6 Updated snmptraps image. Fixed source IP handling and trap format 2021-02-08 19:58:31 -05:00
Alexey Pustovalov
e260796f29 PostgreSQL image is Alpine based now 2020-12-31 14:44:50 +02:00
Alexey Pustovalov
2e7616866b PostgreSQL image is Alpine based now 2020-12-31 14:35:22 +02:00
Alexey Pustovalov
2f252a67ad Fixed ARM on CentOS and Ubuntu images 2020-12-31 01:49:45 +02:00
Alexey Pustovalov
faf7ec641d Fixed incorrect package name 2020-12-31 01:21:47 +02:00
Alexey Pustovalov
bd5257315a Fixed ARM on CentOS and Ubuntu images 2020-12-31 00:46:56 +02:00
Alexey Pustovalov
740b6294dc Fixed ARM on CentOS and Ubuntu images 2020-12-31 00:25:38 +02:00
Alexey Pustovalov
45fadc852a Fixed ARM on CentOS and Ubuntu images 2020-12-30 23:57:53 +02:00
Alexey Pustovalov
fe7c1440fd Review zabbix user and group configuration 2020-12-19 12:25:51 -05:00
Alexey Pustovalov
62aa810a87 Review zabbix user and group configuration 2020-12-19 12:21:15 -05:00
Alexey Pustovalov
5349b862dc Updated base image versions 2020-12-19 12:20:40 -05:00
Alexey Pustovalov
8f2bcc4518 Review zabbix user and group configuration 2020-12-19 19:03:29 +02:00
Alexey Pustovalov
872a5a75c4 Review zabbix user and group configuration 2020-12-19 18:59:37 +02:00
Alexey Pustovalov
4e13e98344 Review zabbix user and group configuration 2020-12-19 18:42:48 +02:00
Alexey Pustovalov
4545f8720c Using snmptrapd only instead of external handler 2020-12-18 15:25:32 -05:00
Alexey Pustovalov
44c6d1dc46 Using snmptrapd only instead of external handler 2020-12-18 15:21:28 -05:00
Alexey Pustovalov
71f833b2d7 CentOS image fix. New name for PowerTools repo file 2020-12-18 07:20:46 -05:00
Alexey Pustovalov
e082e564e2 Merge branch 'master' of https://github.com/zabbix/zabbix-docker 2020-12-18 07:13:48 -05:00
Alexey Pustovalov
26a2b53f57 Using snmptrapd only instead of external handler 2020-12-18 07:13:28 -05:00
Alexey Pustovalov
c7f6555a78
Fixed description for web-nginx-pgsql/alpine image 2020-11-12 14:12:08 +02:00
Alexey Pustovalov
5e0f939e51 Zabbix 5.2 release prepare 2020-10-27 17:53:28 -04:00
Alexey Pustovalov
2bb18ef072 Merge branch 'master' into trunk 2020-10-27 17:41:09 -04:00
Alexey Pustovalov
06bd90aaec Zabbix 5.4 release update 2020-10-27 17:40:47 -04:00
Alexey Pustovalov
6bcac0f348 Zabbix 5.2 release prepare 2020-10-27 17:39:11 -04:00
Alexey Pustovalov
0cfcd347c6 Zabbix 5.2 release prepare 2020-10-27 17:39:03 -04:00
Alexey Pustovalov
31e063ebc7 Zabbix 5.2 release prepare 2020-10-27 04:02:00 -04:00
Alexey Pustovalov
44df33fb8f Fixed fastcgi_read_timeout value 2020-10-14 09:05:03 -04:00
Alexey Pustovalov
92e9489dce Fixed fastcgi_read_timeout value 2020-10-14 08:49:48 -04:00
Alexey Pustovalov
d0035f417a Proper PHP errors logging 2020-10-14 07:33:54 -04:00
Alexey Pustovalov
a1f2dd8390 Merge branch 'master' into trunk 2020-10-14 07:33:08 -04:00
Alexey Pustovalov
c1980de853 Proper PHP errors logging 2020-10-14 07:29:45 -04:00
Alexey Pustovalov
bd1a223379 Merge branch 'master' into trunk 2020-10-08 09:32:45 -04:00
Alexey Pustovalov
1064e9bac1 Use system timezone by default 2020-10-08 09:32:14 -04:00
Alexey Pustovalov
cc060568db Use system timezone by default 2020-10-08 09:29:10 -04:00
Alexey Pustovalov
b0daef4f5a Added Vault feature support 2020-10-08 05:26:16 -04:00
Alexey Pustovalov
3d7aa54a61 Added Vault feature support 2020-10-08 05:22:47 -04:00
Alexey Pustovalov
4f52bab33e Added Vault feature support 2020-10-08 05:11:55 -04:00
Alexey Pustovalov
629747b954 Added Vault feature support 2020-10-08 05:05:12 -04:00
Alexey Pustovalov
8953ac2f7c Fixed image build on CentOS 2020-10-06 06:11:53 -04:00
Alexey Pustovalov
819f97b06c Fixed SSO key and cert 2020-10-06 05:08:16 -04:00
Alexey Pustovalov
4273d28352 Removed duplicated package from agent alpine 2020-09-25 12:25:27 +03:00
Alexey Pustovalov
b931f68574 Strip for Zabbix agent 2 2020-09-25 12:24:18 +03:00
Alexey Pustovalov
784739070c Use assoc array instead of object 2020-09-12 15:15:07 +03:00
Alexey Pustovalov
c190f324cc Use env variables in Zabbix web images 2020-09-12 02:27:11 +03:00
Alexey Pustovalov
e232cad1de
Update CI.yml 2020-09-12 00:18:20 +03:00
Alexey Pustovalov
5d7570ad4c
Update CI.yml 2020-09-12 00:15:29 +03:00
Alexey Pustovalov
ca012425a4
Update CI.yml 2020-09-12 00:12:58 +03:00
Alexey Pustovalov
688cd4e8d6 Zabbix web-interface maintenance mode support (docs) 2020-09-11 10:59:04 -04:00
Alexey Pustovalov
36290aa92c Zabbix web-interface maintenance mode support (docs) 2020-09-11 10:25:00 -04:00
Alexey Pustovalov
c26d84348f Zabbix web-interface maintenance mode support 2020-09-11 10:19:33 -04:00
Alexey Pustovalov
8f3092b493 Zabbix web-interface maintenance mode support 2020-09-11 05:01:22 -04:00
Alexey Pustovalov
448c247ae3 Use env variables in Zabbix web images 2020-09-11 03:39:21 -04:00
Alexey Pustovalov
434dcc7866 Added badge to control github actions 2020-09-11 03:17:37 -04:00
Alexey Pustovalov
91d14226b8 Documentation about ZBX_SSO_SETTINGS and /etc/zabbix/web/certs 2020-09-11 03:14:11 -04:00
Alexey Pustovalov
f926119e0a Use env variables in Zabbix web images 2020-09-10 21:07:00 +03:00
Alexey Pustovalov
92553eb838 Use env variables in Zabbix web images 2020-09-10 08:05:17 -04:00
Alexey Pustovalov
ef0532587c Removed nightly build from trunk branch 2020-09-08 19:03:07 -04:00
Alexey Pustovalov
6179e2c825
Update nightly_build.yml 2020-09-09 01:46:15 +03:00
Alexey Pustovalov
2a80090f37
Create nightly_build.yml 2020-09-09 01:37:13 +03:00
Alexey Pustovalov
0d9c30f10c Improved password usage in MySQL tools 2020-09-08 17:41:01 -04:00
Alexey Pustovalov
9af188f2f6 Improved password usage in MySQL tools 2020-09-08 15:40:14 -04:00
Alexey Pustovalov
a61356ea43 Updated CI action 2020-09-08 15:01:39 -04:00
Alexey Pustovalov
8cb5cb6d8e Fixed Ubuntu web based images 2020-09-08 13:38:19 -04:00
Alexey Pustovalov
c3ecd898b1
Update CI.yml 2020-09-08 15:22:39 +03:00
Alexey Pustovalov
d5e3ef6974
Update CI.yml 2020-09-08 15:15:44 +03:00
Alexey Pustovalov
21b6355e87 Merge branch 'trunk' of https://github.com/zabbix/zabbix-docker into trunk 2020-09-07 19:41:01 -04:00
Alexey Pustovalov
31f8d10a56 Replaced MariaDB library to MySQL 8 2020-09-07 19:40:45 -04:00
Alexey Pustovalov
af24546723
Update CI.yml 2020-09-08 00:49:43 +03:00
Alexey Pustovalov
295c9c2fbf Fixed image building on CentOS 2020-09-07 17:46:03 -04:00
Alexey Pustovalov
b35e963c39
Use EPEL to install fping instead of custom package (CentOS) 2020-09-08 00:38:50 +03:00
Alexey Pustovalov
3120ba0d98 Use EPEL to install fping instead of custom package (CentOS) 2020-09-08 00:27:03 +03:00
Alexey Pustovalov
c6e5835f88 Use EPEL to install fping instead of custom package (CentOS) 2020-09-08 00:25:28 +03:00
Alexey Pustovalov
1fdd3c98d9 Use EPEL to install fping instead of custom package (CentOS) 2020-09-08 00:22:24 +03:00
Alexey Pustovalov
0d972361c2 Autobuild initial test 2020-09-08 00:16:26 +03:00
Alexey Pustovalov
055fed9352
Update CI.yml 2020-09-07 23:12:42 +03:00
Alexey Pustovalov
ee48ff08eb
Update CI.yml 2020-09-07 22:46:19 +03:00
Alexey Pustovalov
5ebca7a176
Update CI.yml 2020-09-07 22:37:18 +03:00
Alexey Pustovalov
2fabe6078d
Update CI.yml 2020-09-07 22:36:52 +03:00
Alexey Pustovalov
92a53fdef0
Update CI.yml 2020-09-07 22:30:39 +03:00
Alexey Pustovalov
a7adff05b8
Update CI.yml 2020-09-07 22:27:23 +03:00
Alexey Pustovalov
8225704027
Update CI.yml 2020-09-07 22:25:42 +03:00
Alexey Pustovalov
f1db34b744
Update CI.yml 2020-09-07 22:18:38 +03:00
Alexey Pustovalov
026b7a7779
Update CI.yml 2020-09-07 22:17:28 +03:00
Alexey Pustovalov
5ffd08f665
Update CI.yml 2020-09-07 22:12:42 +03:00
Alexey Pustovalov
f7bd28e47f
Update CI.yml 2020-09-07 21:42:50 +03:00
Alexey Pustovalov
4ae75eb8f1
Update CI.yml 2020-09-07 21:41:39 +03:00
Alexey Pustovalov
eeb1677c9b
Update CI.yml 2020-09-07 19:56:55 +03:00
Alexey Pustovalov
ee4d55eca4 Merge branch 'master' into trunk 2020-09-07 19:55:56 +03:00
Alexey Pustovalov
133cb556ab Autobuild initial test 2020-09-07 19:54:40 +03:00
Alexey Pustovalov
5c48e39085 Fixed missing permissions to defines.inc.php and created ext_lib directory by default 2020-09-05 17:29:55 +03:00
Alexey Pustovalov
1773a1ae1b Fixed missing permissions to defines.inc.php and created ext_lib directory by default 2020-09-05 17:11:43 +03:00
Alexey Pustovalov
d630970f02 Fixed image building on CentOS 2020-08-29 05:23:51 -04:00
Alexey Pustovalov
c0ecb52340 Added tzdata package to Zabbix components 2020-08-29 05:20:45 -04:00
Alexey Pustovalov
110dd1a267 Added tzdata package to Zabbix components 2020-08-28 12:50:40 -04:00
Alexey Pustovalov
a5615f74f9 Fixed image building on CentOS 2020-08-27 15:19:48 -04:00
Alexey Pustovalov
99bb977661 Updated trunk version to 5.2 2020-08-27 14:07:49 -04:00
Alexey Pustovalov
f6a70ac9d6 More flexible DB TLS params usage 2020-08-27 14:05:12 -04:00
Alexey Pustovalov
add779496a add selector for Zabbix agent DaemonSet 2020-08-27 13:01:12 -04:00
Alexey Pustovalov
d5ed6498dd More flexible DB TLS params usage 2020-08-27 12:58:54 -04:00
Alexey Pustovalov
4cb8a75def Fixed params for Zabbix server PostgreSQL (CentOS) 2020-08-26 22:11:29 +03:00
Alexey Pustovalov
853ac73c05 Fixed MySQL SSL options parsing for MySQL 8.0 client 2020-08-25 07:38:13 -04:00
Alexey Pustovalov
85c4458f75 Fixed escaping for DB certs in web images 2020-08-24 16:52:32 -04:00
Alexey Pustovalov
59749e683c Fixed escaping for DB certs in web images 2020-08-24 16:51:46 -04:00
Alexey Pustovalov
a02ebfc680 Correct sentence about SSL for Nginx 2020-08-24 16:12:32 -04:00
Alexey Pustovalov
bb5cee87f0 Fixed params for Zabbix agent 2 2020-08-24 16:08:18 -04:00
Alexey Pustovalov
a23386310f All images updated to latest stable base images Alpine 3.12, Ubuntu 20 (focal), CentOS 8 2020-08-10 08:12:46 -04:00
Alexey Pustovalov
e59d2aabee Use libssh instead of libssh 2020-08-07 08:13:35 -04:00
Alexey Pustovalov
009c55d34f All images updated to latest stable base images Alpine 3.12, Ubuntu 20 (focal), CentOS 8 2020-08-06 16:22:01 -04:00
Alexey Pustovalov
a349fc645a Added information about Web and DB encryption 2020-08-05 17:44:48 -04:00
Alexey Pustovalov
2c9656a679 Updated Zabbix agent2 information and allowed params 2020-08-05 17:28:01 -04:00
Alexey Pustovalov
461d07fa5a Updated Zabbix agent2 information and allowed params 2020-08-05 17:21:01 -04:00
Alexey Pustovalov
743b4512c7 Added new params for many Zabbix components 2020-08-05 16:58:07 -04:00
Alexey Pustovalov
e3269b15b7 Merge branch 'master' into trunk 2020-08-05 16:57:38 -04:00
Alexey Pustovalov
adfa89f670 Added new params for many Zabbix components 2020-08-05 16:50:28 -04:00
Alexey Pustovalov
9dd7ffe335 Fixed errors with PostgreSQL when DB (not) exists 2020-08-05 15:49:12 -04:00
Alexey Pustovalov
ba21f87b10 Fixed errors with PostgreSQL when DB (not) exists 2020-08-05 15:05:50 -04:00
Alexey Pustovalov
2900350602 Fixed errors with PostgreSQL when DB (not) exists 2020-08-04 14:18:48 -04:00
Alexey Pustovalov
36a5b68e5d Fixed errors with PostgreSQL when DB (not) exists 2020-08-04 14:18:33 -04:00
Alexey Pustovalov
ada968b67a Unsupported Zabbix 4.4 2020-07-30 11:13:32 -04:00
Alexey Pustovalov
84924fa93e Incorrect location for TimescaleDB env var 2020-07-30 11:00:57 -04:00
Alexey Pustovalov
c1a7395c8a Fixed PostgreSQL availability check 2020-07-29 23:23:19 -04:00
Alexey Pustovalov
17451c107f Fixed PostgreSQL availability check 2020-07-29 23:10:48 -04:00
Alexey Pustovalov
bc51597b66 Using env variables for certs 2020-07-29 23:02:51 -04:00
Alexey Pustovalov
7da2e16ff2 Allow PHP-FPM under root and add PHP openssl package in Alpine images 2020-07-23 11:35:09 -04:00
Alexey Pustovalov
7436513ee1 Fixed issue with GPG keys on CentOS and Ubuntu 2020-07-14 02:22:33 +03:00
Alexey Pustovalov
ff23a484ae Removed obsolete VOLUME statements 2020-07-14 01:22:07 +03:00
Alexey Pustovalov
cdfac6414b Removed obsolete VOLUME statements 2020-07-14 00:43:32 +03:00
Alexey Pustovalov
b47cf1fa90 Added ZBX_ALLOWKEY and ZBX_DENYKEY variables processing 2020-07-14 00:35:19 +03:00
Alexey Pustovalov
aa51ecd73d Added ZBX_ALLOWKEY and ZBX_DENYKEY variables processing 2020-07-14 00:34:25 +03:00
Alexey Pustovalov
3846f40090 Zabbix Docker Appliance image has been decommissioned note 2020-07-13 22:31:34 +03:00
Alexey Pustovalov
d511a1003a Zabbix Docker Appliance image has been decommissioned note 2020-07-13 22:28:40 +03:00
Alexey Pustovalov
d569092bb5 Merge branch 'master' into trunk 2020-07-09 01:50:20 +03:00
Alexey Pustovalov
c5234558bf Do not apply HSTS of the site's subdomains 2020-07-09 01:47:53 +03:00
Alexey Pustovalov
925ed5b5bc Changed php-fpm config argument from -c to -y. Removed appliances for Alpine, Ubuntu, CentOS 2020-07-09 01:10:27 +03:00
Alexey Pustovalov
ea8832cf3a Changed php-fpm config argument from -c to -y. Removed appliances for Alpine, Ubuntu, CentOS 2020-07-09 01:09:33 +03:00
Alexey Pustovalov
f924c9be21 Merge branch 'master' into trunk 2020-07-09 01:08:29 +03:00
Alexey Pustovalov
d4f776b41d Changed php-fpm config argument from -c to -y 2020-07-09 01:02:56 +03:00
Alexey Pustovalov
265bd08f0e Merge branch 'master' into trunk 2020-06-28 21:45:15 +03:00
Alexey Pustovalov
7015de498b Fixed permissions for snmptraps volume 2020-06-28 21:43:34 +03:00
Alexey Pustovalov
f3f8ffcdda Merge branch 'master' into trunk 2020-06-28 20:47:23 +03:00
Alexey Pustovalov
48046c6253 Added posibility to disable Access log for web-interface containers 2020-06-28 20:46:10 +03:00
Alexey Pustovalov
c6d63a2863 Added posibility to disable Access log for web-interface containers 2020-06-28 20:40:16 +03:00
Alexey Pustovalov
97bd863323 Added posibility to disable Access log for web-interface containers 2020-06-28 18:54:33 +03:00
Alexey Pustovalov
00b193ea1e MySQL -> PostgreSQL in web images 2020-06-23 17:01:42 +03:00
Alexey Pustovalov
293d2192ef Added masking for secure params 2020-06-23 16:28:09 +03:00
Alexey Pustovalov
c1fd2e544a Merge branch 'master' into trunk 2020-06-23 16:27:57 +03:00
Alexey Pustovalov
99d09363f8 Added masking for secure params 2020-06-23 16:24:49 +03:00
Alexey Pustovalov
6e4dc64be8 Added masking for secure params 2020-06-23 16:24:22 +03:00
Alexey Pustovalov
8226d6ab29 Merge branch 'master' into trunk 2020-06-23 15:43:58 +03:00
Alexey Pustovalov
4dc844ab91 Added masking for secure params 2020-06-23 15:42:13 +03:00
Alexey Pustovalov
d104df203b Merge branch 'master' into trunk 2020-06-23 15:29:09 +03:00
Alexey Pustovalov
94872ffa07 Added DOUBLE_IEEE754 varaiable 2020-06-23 15:28:34 +03:00
Alexey Pustovalov
e99ce25b46 Added DOUBLE_IEEE754 varaiable 2020-06-23 15:24:49 +03:00
Alexey Pustovalov
1ff52ba030 Merge branch 'master' into trunk 2020-06-23 14:56:36 +03:00
Alexey Pustovalov
f9f9953103 Fixed SNMP trap port number in Ubuntu compose files 2020-06-23 14:54:52 +03:00
Alexey Pustovalov
a9505cf3bd Fixed PostgreSQL availability command 2020-06-23 14:50:27 +03:00
Alexey Pustovalov
e1abf0b307 Fixed PostgreSQL availability command 2020-06-22 20:58:17 +03:00
Alexey Pustovalov
489e3e10e5 Removed timezone mount for Ubuntu dockercompose files 2020-06-22 16:32:32 +03:00
Alexey Pustovalov
7a866eef96 Fixed SNMPTRAPS in compose files and Kubernetes 2020-05-28 18:35:24 +03:00
Alexey Pustovalov
8bff463034 Fixed SNMPTRAPS in compose files and Kubernetes 2020-05-28 18:31:14 +03:00
Alexey Pustovalov
e7395f4fa1 Bump API version for DaemonSet in kubernetes.yaml 2020-05-28 18:24:13 +03:00
Alexey Pustovalov
06e0def526 Fix encryption for agent2 image 2020-05-28 17:43:49 +03:00
Alexey Pustovalov
0084323b7e Allow to run Nginx based images under root user 2020-05-28 17:28:51 +03:00
Alexey Pustovalov
3aa23d47a2 Allow to run Nginx based images under root user 2020-05-28 17:16:06 +03:00
Alexey Pustovalov
e901367ac2 Removed orphaned code 2020-05-14 00:14:13 +03:00
Alexey Pustovalov
4b0b504bbc Removed orphaned code 2020-05-14 00:12:56 +03:00
Alexey Pustovalov
6bf717a4fa PSK config 2020-05-13 00:41:26 +03:00
Alexey Pustovalov
1bccee4563 Merge branch 'master' into trunk 2020-05-12 21:09:57 +03:00
Alexey Pustovalov
8d8d987f59 Fixed PHP-FPM pool config on Ubuntu (PostgreSQL) 2020-05-12 21:08:23 +03:00
Alexey Pustovalov
fc84075c92 Fixed PHP-FPM pool config on Ubuntu (PostgreSQL) 2020-05-12 21:08:08 +03:00
Alexey Pustovalov
b0d25cffc2 Fixed Fping location on Ubuntu and reverted PSK settings 2020-05-12 17:39:31 +03:00
Alexey Pustovalov
4989b854ac Fixed Fping location on Ubuntu 2020-05-12 16:55:49 +03:00
Alexey Pustovalov
f872bdee5f Zabbix 5.0 information 2020-05-12 10:11:14 +03:00
Alexey Pustovalov
3935406665 Updated frontend directory 2020-05-03 23:44:19 +03:00
Alexey Pustovalov
7b2c0fc98f Updated permissions 2020-05-01 21:15:15 +03:00
Alexey Pustovalov
750941c70e Updated permissions 2020-05-01 19:33:55 +03:00
Alexey Pustovalov
a533d0a3e7 Updated permissions 2020-05-01 19:14:42 +03:00
Alexey Pustovalov
65fcf10f2d Updated permissions 2020-05-01 19:06:35 +03:00
Alexey Pustovalov
e944dde8de DB encryption support 2020-04-30 15:27:49 +03:00
Alexey Pustovalov
3c612e46d2 Remove orphaned packages on CentOS 2020-04-30 15:25:48 +03:00
root
9fff3ed893 Updated snmptraps Ubuntu 2020-04-29 20:28:06 -04:00
Alexey Pustovalov
a160c5c364 DB encryption support 2020-04-29 02:40:07 +03:00
Alexey Pustovalov
8408cef289 Updated Ubuntu images 2020-04-29 00:46:13 +03:00
Alexey Pustovalov
96110f0531 Updated compose syntax 2020-04-29 00:45:21 +03:00
Alexey Pustovalov
b3e11ebd38 Updated compose syntax 2020-04-29 00:36:46 +03:00
Alexey Pustovalov
69b3d72f3c Updated Ubuntu images 2020-04-29 00:30:08 +03:00
Alexey Pustovalov
e0e20286ae Updated Ubuntu images 2020-04-29 00:29:25 +03:00
Alexey Pustovalov
b822f9ba49 Updated Ubuntu images 2020-04-28 23:17:34 +03:00
Alexey Pustovalov
10ab9dba2d Updated Ubuntu images 2020-04-28 22:35:51 +03:00
Alexey Pustovalov
9a5a4f289c Updated Ubuntu images 2020-04-28 22:28:18 +03:00
Alexey Pustovalov
8f2cbd3948 Updated Ubuntu images 2020-04-28 22:16:47 +03:00
Alexey Pustovalov
81be9d6ae5 Updated Ubuntu images 2020-04-28 21:22:44 +03:00
Alexey Pustovalov
48921eb897 Updated Ubuntu images 2020-04-28 19:41:49 +03:00
Alexey Pustovalov
3df12e8961 Merge branch 'master' of https://github.com/zabbix/zabbix-docker 2020-04-28 19:39:56 +03:00
Alexey Pustovalov
2d5fcdc98f Updated Ubuntu images 2020-04-28 19:39:39 +03:00
Alexey Pustovalov
3f1cd26716 DB encryption support 2020-04-28 17:21:46 +03:00
Alexey Pustovalov
1d0ece6d4e Updated Alpine images 2020-04-28 04:21:13 +03:00
Alexey Pustovalov
acbd134c44 Prepare to new Web configuration params support 2020-04-28 01:47:41 +03:00
Alexey Pustovalov
e3c8d6c3fa Merge branch 'master' into trunk 2020-04-28 01:22:42 +03:00
Alexey Pustovalov
f2bffb12b3 Updated CentOS images 2020-04-28 00:59:09 +03:00
Alexey Pustovalov
44e15bf042 Updated Alpine images 2020-04-28 00:44:51 +03:00
Alexey Pustovalov
8522b0b926 Updated CentOS images 2020-04-28 00:31:42 +03:00
Alexey Pustovalov
220c8610ff Updated CentOS images 2020-04-27 23:34:52 +03:00
Alexey Pustovalov
dfd0c44c6b Updated Alpine images 2020-04-27 23:19:42 +03:00
Alexey Pustovalov
8664b78375 Prepare to new Web configuration params support 2020-04-27 22:46:25 +03:00
Alexey Pustovalov
b0fbbe56fa Prepare to new Web configuration params support 2020-04-27 22:44:44 +03:00
Alexey Pustovalov
a0307d1af9 Prepare to new Web configuration params support 2020-04-27 22:00:50 +03:00
Alexey Pustovalov
6890f74ae3 Updated CentOS images 2020-04-27 18:32:56 +03:00
Alexey Pustovalov
aae41ac7b7 Updated CentOS images 2020-04-27 18:27:35 +03:00
Alexey Pustovalov
f75da019c1 Updated CentOS images 2020-04-27 18:24:57 +03:00
Alexey Pustovalov
e8c5ecf335 Updated CentOS images 2020-04-27 18:19:48 +03:00
Alexey Pustovalov
6a5a00d1ea Updated CentOS images 2020-04-27 18:08:26 +03:00
Alexey Pustovalov
24a6ffd1a2 Updated CentOS images 2020-04-27 17:05:27 +03:00
Alexey Pustovalov
1a7b80c462 Updated CentOS images 2020-04-27 16:28:35 +03:00
Alexey Pustovalov
c5ad75791a Updated CentOS images 2020-04-26 22:55:36 +03:00
Alexey Pustovalov
b9a560ad40 Updated CentOS images 2020-04-26 22:17:26 +03:00
Alexey Pustovalov
096f71f4d7 Updated CentOS images 2020-04-26 21:54:12 +03:00
Alexey Pustovalov
cd0773fba3 Updated CentOS images 2020-04-26 21:36:05 +03:00
Alexey Pustovalov
04c4ae6606 Updated CentOS images 2020-04-26 19:45:42 +03:00
Alexey Pustovalov
52106b9d5d Updated Alpine images 2020-04-26 00:33:13 +03:00
Alexey Pustovalov
24cec21273 Updated Alpine images 2020-04-26 00:28:38 +03:00
Alexey Pustovalov
819956b44e Updated Alpine images 2020-04-26 00:24:16 +03:00
Alexey Pustovalov
61a831cacf Updated Alpine images 2020-04-26 00:23:08 +03:00
Alexey Pustovalov
0c6b2f0d48 Updated Alpine images 2020-04-26 00:15:19 +03:00
Alexey Pustovalov
d152b047b6 Updated Alpine images 2020-04-26 00:01:40 +03:00
Alexey Pustovalov
9896a43ae5 Updated Alpine images 2020-04-25 23:24:26 +03:00
Alexey Pustovalov
ab2a7ab304 Updated Alpine images 2020-04-25 22:34:09 +03:00
Alexey Pustovalov
c4b8ddfbe2 Updated Alpine images 2020-04-25 22:01:21 +03:00
Alexey Pustovalov
f2644247bd Updated Alpine images 2020-04-25 22:01:11 +03:00
Alexey Pustovalov
4c277961c7 Updated Alpine images 2020-04-25 20:31:44 +03:00
Alexey Pustovalov
132a33a760 Merge branch 'master' into trunk 2020-04-06 16:25:34 +03:00
Alexey Pustovalov
4391ef7e9e
Merge pull request #571 from kernbug/master
Permission denied when setting ZBX_EXPORTFILESIZE in Zabbix docker containers
2020-04-06 16:18:07 +03:00
kernbug
6de4274716
Update Dockerfile 2020-04-06 15:45:54 +03:00
kernbug
0c71768402
Update Dockerfile 2020-04-06 15:45:37 +03:00
kernbug
5d7afb8013
Update Dockerfile 2020-04-06 15:45:17 +03:00
kernbug
f69e7f54ec
Update Dockerfile 2020-04-06 15:44:47 +03:00
kernbug
5e100f5034
Update Dockerfile 2020-04-06 15:44:31 +03:00
kernbug
527e9e61d3
Update Dockerfile 2020-04-06 15:44:03 +03:00
Alexey Pustovalov
183aeb08f0 Fixed ExportFileSize parameter 2020-03-04 11:39:34 +02:00
Alexey Pustovalov
c1ea672145 Added missing params to .env_agent environment file 2020-02-20 19:15:55 +02:00
Alexey Pustovalov
ede27ff164 Merge branch 'master' into trunk 2020-02-20 18:24:58 +02:00
Alexey Pustovalov
d8bdab1404 Updated Alpine version to 3.11 2020-02-20 18:22:58 +02:00
Alexey Pustovalov
96f84ddba4 Added missing StatsAllowedIP to Alpine images for proxies and servers 2020-02-20 17:36:01 +02:00
Alexey Pustovalov
1b72023799 Added missing HistoryStorageDateIndex parameter for Zabbix server images 2020-02-20 17:08:44 +02:00
Alexey Pustovalov
8c7668cee6 Fixed path for Zabbix agent 2 2020-02-20 16:39:23 +02:00
Alexey Pustovalov
b3b29f4238 Fixed Zabbix agent 2 (go) version file location 2019-11-28 14:39:21 +09:00
Alexey Pustovalov
e12f729b96 Added missing parameters for Zabbix Agent 2019-11-22 15:10:17 +09:00
Alexey Pustovalov
b212ce5351 Merge branch 'master' into trunk 2019-11-22 15:09:48 +09:00
Alexey Pustovalov
8e4e3c6b8d Added missing parameters for Zabbix Agent 2019-11-22 15:07:27 +09:00
Alexey Pustovalov
b38b77454e Added missing parameters for Zabbix Proxy images 2019-11-22 14:53:14 +09:00
Alexey Pustovalov
b9b17484f8 Merge branch 'master' into trunk 2019-11-22 14:34:11 +09:00
Alexey Pustovalov
d11cfb8bd7 Added missing parameters for Zabbix Proxy images 2019-11-22 14:32:31 +09:00
Alexey Pustovalov
a41a95a1d2 Merge branch 'master' into trunk 2019-11-22 14:08:45 +09:00
Alexey Pustovalov
e55c0974e8 Added missing parameters for Zabbix Server image 2019-11-22 14:05:29 +09:00
Alexey Pustovalov
840b51d25c Added missing parameters for Zabbix Server image 2019-11-22 14:01:14 +09:00
Alexey Pustovalov
50be975e4a Merge branch 'master' into trunk 2019-11-22 13:20:10 +09:00
Alexey Pustovalov
0d03e921e4 Optimized Fping parameter 2019-11-22 13:14:01 +09:00
Alexey Pustovalov
7d0e45382b Merge branch 'master' into trunk 2019-11-22 12:34:58 +09:00
Alexey Pustovalov
5d626820f8 Removed unused code 2019-11-22 12:32:39 +09:00
Alexey Pustovalov
0b4646c29a Zabbix agent 2 added 2019-11-14 15:13:58 +09:00
Alexey Pustovalov
e899d61d28 Zabbix agent 2 added 2019-11-14 14:28:37 +09:00
Alexey Pustovalov
942bc9a2ab Merge branch 'master' into trunk 2019-11-05 16:49:31 +02:00
Alexey Pustovalov
697c3b1915 Do not create Zabbix user if root user is not specified for MySQL 2019-11-05 15:32:23 +02:00
Alexey Pustovalov
9a973f6986 Merge branch 'master' into trunk 2019-11-01 15:38:08 +02:00
Alexey Pustovalov
1b86155696 Remove unused functions in Alpine-based images 2019-11-01 15:37:17 +02:00
Alexey Pustovalov
45f9fa03d8 Merge branch 'master' into trunk 2019-11-01 02:01:29 +02:00
Alexey Pustovalov
406f32db80 Remove default Nginx configuration on image building stage 2019-11-01 01:57:01 +02:00
Alexey Pustovalov
b31cd586a8 Merge branch 'master' into trunk 2019-11-01 01:44:47 +02:00
Alexey Pustovalov
fa68313fb4 Description for *_FILE environment variables. Thanks to rockaut! 2019-11-01 01:43:21 +02:00
Alexey Pustovalov
e243864c9f Merge branch 'master' into trunk 2019-11-01 00:46:10 +02:00
Alexey Pustovalov
3261fee3f7 Zabbix 4.4 release documenation 2019-11-01 00:44:33 +02:00
Alexey Pustovalov
eddb926fbe Merge branch 'master' into trunk 2019-11-01 00:21:52 +02:00
Alexey Pustovalov
e4f4798fb6 Hide DB passwords by default 2019-11-01 00:17:26 +02:00
Alexey Pustovalov
cce0e59c89 Added missing StartLLDProcessors 2019-10-31 23:43:22 +02:00
Alexey Pustovalov
24dc245515 Preparing for Official relases 2019-10-31 23:31:19 +02:00
Alexey Pustovalov
44d0bed0d6 Preparing for Official relases 2019-10-31 23:29:17 +02:00
Alexey Pustovalov
1a6bcf1193 Fixed proxy with SQLite3 image 2019-10-31 22:10:08 +02:00
Alexey Pustovalov
6a05eba50b Fix default proxy name in SQLite3 image 2019-10-31 20:20:27 +02:00
Alexey Pustovalov
7b5b22da8f Allow to start Zabbix processes under root and other users 2019-10-03 20:52:14 +03:00
Alexey Pustovalov
7fb5abe44f Fixed docker entrypoint command execution 2019-10-03 18:16:08 +03:00
Alexey Pustovalov
df44f84b89 Reviewed docker entrypoint files for Alpine images 2019-10-03 17:43:32 +03:00
Alexey Pustovalov
d4246a2708 Reviewed docker entrypoint files for Alpine images and introduced CMD 2019-10-03 17:08:57 +03:00
Alexey Pustovalov
c593d36151 Removed unnecessary arguments and redesigned docker files for Alpine images 2019-10-03 15:39:55 +03:00
Alexey Pustovalov
5e9a363267 Fixed issue with user profile page in frontend 2019-09-06 14:02:09 +03:00
Alexey Pustovalov
08be351164 Removed unnecessary code from Alpine images 2019-09-05 20:04:42 +03:00
Alexey Pustovalov
c42510941a Added --no-network flag for build packages purge operation in Alpine images 2019-08-13 23:16:04 +03:00
Alexey Pustovalov
ce302a1322 Added --no-network flag for build packages purge operation in Alpine images 2019-08-13 23:10:24 +03:00
Alexey Pustovalov
e45dbaa026 Added generate-stackbrew-library script for Docker official images 2019-08-13 19:54:40 +03:00
Alexey Pustovalov
66bfaabe51 Changed default variables in compose files 2019-07-18 15:38:17 +03:00
Alexey Pustovalov
bf349ff085 Fixed HTTPs checks in Zabbix agent 2019-07-18 15:27:39 +03:00
Alexey Pustovalov
79cfd3cbed Fixed HTTPs checks in Zabbix agent 2019-07-18 15:25:12 +03:00
Alexey Pustovalov
846e0abe8f Merge branch 'master' into trunk 2019-07-14 00:52:20 +03:00
Alexey Pustovalov
20cfe04184 Added secrets for Zabbix images 2019-07-14 00:50:22 +03:00
Alexey Pustovalov
26c3a5c79b Merge branch 'master' into trunk 2019-07-13 18:03:05 +03:00
Alexey Pustovalov
be195c5861 Zabbix Appliance: Updated Alpine to 3.10 2019-07-13 18:01:41 +03:00
Alexey Pustovalov
3a17397ee2 Zabbix Appliance: Updated Alpine to 3.10 2019-07-13 17:38:21 +03:00
Alexey Pustovalov
7c9a3e4b81 Merge branch 'master' into trunk 2019-07-13 16:56:15 +03:00
Alexey Pustovalov
0a3b83743c Updated Alpine images to 3.10 2019-07-13 16:53:27 +03:00
Alexey Pustovalov
0231258f53 Remove orphaned information about SVN 2019-07-13 03:54:05 +03:00
Alexey Pustovalov
1852d8f2b7 Remove orphaned information about SVN 2019-07-13 03:51:59 +03:00
Alexey Pustovalov
8428599845 Remove orphaned information about SVN 2019-07-13 03:47:30 +03:00
Alexey Pustovalov
8ef14e6cdd Merge branch 'master' into trunk 2019-07-13 03:20:20 +03:00
Alexey Pustovalov
891565ee0f Zabbix Appliance - Migrate to Alpine 3.8 2019-07-13 03:18:33 +03:00
Alexey Pustovalov
78b5e251cf Merge branch 'master' into trunk 2019-07-13 01:18:41 +03:00
Alexey Pustovalov
c7c771e541 Removed multistage building from Alpine images 2019-07-13 01:17:10 +03:00
Alexey Pustovalov
baa58c8d49 Removed multistage building from Alpine images 2019-07-13 01:09:06 +03:00
Alexey Pustovalov
33a4e5c4d3 Removed multistage building from Alpine images 2019-07-13 00:46:32 +03:00
Alexey Pustovalov
9ad19841cb Removed multistage building from Alpine images 2019-07-13 00:28:39 +03:00
Alexey Pustovalov
55f384bf59 Removed multistage building from Alpine images 2019-07-12 23:48:32 +03:00
Alexey Pustovalov
5dbed74bae Merge branch 'master' into trunk 2019-07-08 22:33:22 +03:00
Alexey Pustovalov
9cdf315f66 Fixed missing ca-certificactes on Ubuntu 2019-07-08 22:30:44 +03:00
Alexey Pustovalov
c67fb1152e Merge branch 'master' into trunk 2019-06-12 18:01:47 +03:00
Alexey Pustovalov
a6fe60b47a Fixed SVN -> GIT 2019-06-12 18:00:18 +03:00
Alexey Pustovalov
1b75131e9e Fixed SVN -> GIT 2019-06-12 17:58:45 +03:00
root
e2fb98e070 Fixed Zabbix appliance building for Alpine Linux 2019-06-04 22:03:49 +05:00
root
4dd638b37f Merge branch 'master' into trunk 2019-05-31 16:19:47 +03:00
root
0b34ed3fa7 Updated link to Zabbix documentation 2019-05-31 16:14:51 +03:00
root
3985f7f073 Added logging of executed commands 2019-05-30 21:40:44 +03:00
root
044fb85c2a Added logging of executed commands 2019-05-30 21:21:16 +03:00
root
3d64a13d87 Merge branch 'master' into trunk 2019-05-30 16:20:06 +03:00
root
2116d3c2f3 Using ENTRYPOINT only with tini 2019-05-30 16:18:29 +03:00
root
6cef547817 Fixed assets directory permissions 2019-05-29 14:19:56 +03:00
root
cf651a2e5d Removed font processing. Using default font 2019-05-29 13:24:06 +03:00
root
c88a184a0d Merge branch 'master' into trunk 2019-05-29 12:20:58 +03:00
root
bc9b88be63 Using static NGINX_GPGKEY value 2019-05-29 12:19:18 +03:00
root
0a9acf2f95 Using DEBIAN_FRONTEND as noninteractive only during build process 2019-05-29 01:10:56 +03:00
root
66a0cac464 Using DEBIAN_FRONTEND as noninteractive only during build process 2019-05-29 00:41:52 +03:00
root
83f7f1f988 Merge branch 'master' into trunk 2019-05-20 18:13:32 +03:00
root
bf65f07135 Added ping and traceroute to Appliances 2019-05-20 18:09:47 +03:00
root
4d1f9b850b Fixed package name iptuils->iputils 2019-05-20 18:07:22 +03:00
root
524c7ea6cd Merge branch 'master' into trunk 2019-05-20 16:05:51 +03:00
root
f7cf25bb62 Fixed SSL on Apache (Ubuntu) 2019-05-20 16:04:02 +03:00
root
b11dfd6b14 Migrastion to GIT 2019-05-14 11:06:13 +03:00
root
1697eff619 Migrate to GIT 2019-05-10 17:11:07 +03:00
root
a224bb5b2b Merge branch 'master' into trunk 2019-04-19 00:00:50 +03:00
root
92470364ab Fixed PostgreSQL dependencies 2019-04-18 23:59:15 +03:00
root
cd9745fa8f Merge branch 'master' into trunk 2019-04-18 23:55:15 +03:00
root
3f03e7abbf Fixed duplicated SNMP traps 2019-04-18 23:53:46 +03:00
root
2bbec00f2a Merge branch 'master' into trunk 2019-04-18 23:20:26 +03:00
root
d609f64f5b Fixed Ubuntu snmptraps image 2019-04-18 23:18:57 +03:00
root
eaa51ad166 Added new variable ZBX_STATSALLOWEDIP 2019-04-16 01:11:30 +03:00
root
24c49074b0 Merge branch 'master' into trunk 2019-04-12 13:27:17 +03:00
root
3dde5de638 Fixed PostgreSQL schema detection 2019-04-12 13:25:32 +03:00
root
c747a44303 Added timescale support 2019-04-12 13:22:41 +03:00
root
8681a5e08b Merge branch 'master' into trunk 2019-04-12 12:36:15 +03:00
root
3e8d001b93 Fixed CA certificates packages in Ubuntu images 2019-04-12 12:34:39 +03:00
root
205c0ee3c9 Merge branch 'master' into trunk 2019-04-11 19:43:23 +03:00
root
6e61391684 Fixed PostgreSQL custom schema usage 2019-04-11 19:41:44 +03:00
root
d4f0b7c352 Merge branch 'master' into trunk 2019-04-11 17:09:16 +03:00
root
fb123b4a89 Added ListenPort to Server and Proxy 2019-04-11 17:02:48 +03:00
root
15b06e644b Prepare for MySQL 8.0 2019-04-10 02:08:12 +03:00
root
5acf383ef6 Merge branch 'master' into trunk 2019-04-10 01:21:47 +03:00
root
991baeb54e Prepare for MySQL 8.0 2019-04-10 01:21:23 +03:00
root
53ed0193b5 Removed docker compose v2 example files 2019-04-10 00:00:01 +03:00
root
43949b1272 Removed docker compose v2 example files 2019-04-09 23:57:10 +03:00
root
618bedf26f Merge branch 'master' into trunk 2019-04-09 23:36:25 +03:00
root
6e189303f7 Updated Alpine image to 3.9 2019-04-09 23:31:33 +03:00
root
ec52185af3 Fixed issue with init (PID 1) 2019-04-09 22:43:56 +03:00
root
73c8b2222c Zabbix 4.2.0 release 2019-04-01 17:19:00 +03:00
root
c844b5c09d Zabbix 4.2.0 release 2019-04-01 17:15:24 +03:00
root
3b127057fb Added ZBX_SESSION_NAME for Zabbix frontend 2019-01-21 23:53:47 +02:00
root
5138f7519e Added ZBX_SESSION_NAME for Zabbix frontend 2019-01-18 19:03:55 +02:00
root
0bbfe0add5 Added ZBX_SESSION_NAME for Zabbix frontend 2019-01-14 00:54:13 +02:00
root
55eb398387 Added ZBX_SESSION_NAME for Zabbix frontend 2019-01-14 00:44:13 +02:00
root
c8421dd575 Merge branch 'master' into trunk 2019-01-14 00:24:51 +02:00
root
47fccd88bc MIB path fix 2019-01-14 00:23:44 +02:00
root
0703f72f05 Merge branch 'master' into trunk 2019-01-14 00:13:03 +02:00
root
03a0139f1d MIB path fix 2019-01-14 00:11:40 +02:00
root
37beb4904e Merge branch 'master' into trunk 2019-01-13 03:23:09 +02:00
root
31340521c7 Added possibility to modify Zabbix Agent port number 2019-01-13 03:20:50 +02:00
root
da784b5db4 Added possibility to include additional JAR files for Zabbix Java Gateway 2019-01-13 03:11:11 +02:00
root
6465a70acc Merge branch 'master' into trunk 2019-01-13 02:22:21 +02:00
root
91a8d57873 Fixed multilang support on CentOS based images 2019-01-13 02:20:45 +02:00
root
3f30022956 Fixed multilang support on CentOS based images 2019-01-13 01:46:08 +02:00
root
782babee91 Merge branch 'master' into trunk 2019-01-13 01:16:19 +02:00
root
7cc5a15c92 Added curl to Appliance images 2019-01-13 01:14:00 +02:00
root
2bde2d04ad Merge branch 'master' into trunk 2019-01-13 00:50:33 +02:00
root
dd5b3a6174 Fixed PHP5 -> PHP7 2019-01-13 00:49:04 +02:00
root
fe900067cc Merge branch 'master' into trunk 2019-01-13 00:46:43 +02:00
root
1c814ad1f9 Fixed PHP5 -> PHP7 2019-01-13 00:45:11 +02:00
root
ef11ec0694 Merge branch 'master' into trunk 2019-01-13 00:26:01 +02:00
root
5c495624b3 Improve Appliance images. Possible to mount datadir 2019-01-13 00:22:49 +02:00
root
baddcb523c Improve Appliance images. Possible to mount datadir 2019-01-13 00:12:54 +02:00
root
5f7117097b Merge branch 'master' into trunk 2019-01-12 23:45:37 +02:00
root
854af68e9e Fix typos in docker-entrypoint.sh 2019-01-12 23:34:02 +02:00
root
f6cb17d97d Merge branch 'master' into trunk 2019-01-12 23:22:51 +02:00
root
5795897a3e Updated README information 2019-01-12 23:07:44 +02:00
root
07bd770154 Missing headers module for Apache on Ubuntu 2018-10-02 22:43:00 +05:00
Alexey Pustovalov
dd893c514c
Merge pull request #384 from zabbix/master
Master
2018-09-28 14:19:07 +03:00
root
805f1d294f Merge branch 'master' of https://github.com/zabbix/zabbix-docker 2018-09-28 14:17:52 +03:00
root
d813c8e3ba Updated Ubuntu SNMP MIBs directory 2018-09-28 14:17:05 +03:00
Alexey Pustovalov
3c4d6fb11c
Merge pull request #381 from zabbix/master
Master
2018-09-28 14:03:01 +03:00
Alexey Pustovalov
9721f5c9d5
Merge pull request #372 from v-zhuravlev/master
Added ping and traceroute to centos/ubuntu version of server
2018-09-28 14:02:06 +03:00
Alexey Pustovalov
8bbd31f16d
Merge pull request #378 from zabbix/master
Updated Apache config for non-SSL connections
2018-09-28 14:00:09 +03:00
root
9ab47299c1 Updated Apache config for non-SSL connections 2018-09-28 13:58:15 +03:00
Alexey Pustovalov
b31fd15e6d
Merge pull request #375 from zabbix/master
Fixed HTTPS on CentOS
2018-09-28 13:46:52 +03:00
root
ae8cd145b9 Fixed HTTPS on CentOS 2018-09-28 13:44:57 +03:00
v-zhuravlev
4cc23086fa removed redundant installation of fping/iksemel 2018-09-28 01:40:24 +03:00
v-zhuravlev
8a4defcf67 added ping and traceroute to centos/ubuntu version of server 2018-09-28 01:39:41 +03:00
Alexey Pustovalov
3b96a97391
Merge pull request #357 from zabbix/master
Fixed Apache SSL on CentOS
2018-08-15 12:26:02 +09:00
root
faee6eebe8 Fixed Apache SSL on CentOS 2018-08-15 12:24:39 +09:00
root
89e8995554 Fixed Zabbix agent on Ubuntu (bionic) 2018-08-14 11:03:02 +09:00
root
4c5fdc1b1b Fixed Zabbix agent on Ubuntu (bionic) 2018-08-14 11:01:00 +09:00
Alexey Pustovalov
25a917cee3
Merge pull request #349 from zabbix/master
Added max_input_vars param for PHP
2018-07-30 12:34:06 +09:00
root
67a750dcb0 Added max_input_vars param for PHP 2018-07-30 12:32:30 +09:00
Alexey Pustovalov
28f35b4a26
Merge pull request #346 from zabbix/master
Fixed issue with php-fpm sessions directory
2018-07-24 22:42:40 +09:00
Alexey Pustovalov
25ec7d9056 Fixed issue with php-fpm sessions directory 2018-07-24 22:40:31 +09:00
root
f0351b9444 Merge branch 'master' into trunk 2018-07-20 13:56:40 +09:00
root
0634b35a72 Fixed missing iksemel-dev in Epel repository 2018-07-20 13:55:20 +09:00
root
f4bb271f1c Updated Ubuntu to 18.04 (bionic) release 2018-07-20 12:56:36 +09:00
root
666242082d Updated Ubuntu to 18.04 (bionic) release 2018-07-20 12:52:59 +09:00
root
a8d3e59401 Updated Ubuntu to 18.04 (bionic) release 2018-07-20 12:16:54 +09:00
root
a37653be47 Updated Ubuntu to 18.04 (bionic) release 2018-07-20 11:23:08 +09:00
root
90b9592c94 Updated Ubuntu to 18.04 (bionic) release 2018-07-20 11:19:33 +09:00
root
e3a3f68138 Updated Ubuntu to 18.04 (bionic) release 2018-07-19 19:37:11 +09:00
Alexey Pustovalov
0bd48d17bb
Merge pull request #342 from zabbix/master
Fixed fonts in zabbix-appliance:alpine and fping in proxy on CentOS
2018-07-19 14:49:47 +09:00
root
f6b2cafdf2 Fixed fonts in zabbix-appliance:alpine and fping in proxy on CentOS 2018-07-19 14:47:54 +09:00
Alexey Pustovalov
39ad9461fc
Merge pull request #333 from zabbix/master
Fixed health check in docker compose files
2018-07-06 15:55:28 +09:00
root
59f14d89cb Fixed health check in docker compose files 2018-07-06 15:54:10 +09:00
Alexey Pustovalov
9ae94fb777
Merge pull request #327 from zabbix/master
Fixed PostgreSQL schema name. Fixed graph legends on CentOS
2018-06-28 15:52:52 +09:00
root
8ad66c8639 Fixed PostgreSQL schema name. Fixed graph legends on CentOS 2018-06-28 15:48:31 +09:00
root
074bfc2fc7 Updated build script 2018-06-06 20:55:17 -07:00
root
c32237360d Updated build script 2018-06-06 20:47:07 -07:00
root
2a24013fda Solved issue with Elastisearch parameters 2018-06-05 20:05:48 -07:00
root
3b84f57857 Merge remote-tracking branch 'origin/master' into trunk 2018-06-01 02:06:43 -07:00
root
c8a86b92ee Added Elasticsearch feature 2018-06-01 02:05:57 -07:00
root
4355caab21 Added Elasticsearch feature 2018-06-01 02:02:20 -07:00
root
e5b94d728b Merge remote-tracking branch 'origin/master' into trunk 2018-05-31 20:37:14 -07:00
root
0a8d38b8ac Merge remote-tracking branch 'origin/master' into trunk 2018-05-31 20:09:12 -07:00
root
8b5cf58ce8 Updated all Dockerfiles to make consistency 2018-05-31 20:08:56 -07:00
root
f06c11f91a Updated all Dockerfiles to make consistency 2018-05-31 19:02:46 -07:00
root
73859060cc Fixed Apache image on Alpine. Also using PHP7 2018-05-30 00:57:30 -07:00
root
124242cf92 Fixed Apache image on Alpine. Also using PHP7 2018-05-29 22:44:48 -07:00
root
a3fb960b3e Using multistage dockerfile for centos-based images + Zabbix agent images 2018-05-28 23:58:42 -07:00
Alexey Pustovalov
143d565927
Merge pull request #312 from zabbix/master
Fixed php-fpm7 on Alpine images
2018-05-24 15:32:54 +08:00
Alexey Pustovalov
bc48e4fe40
Merge pull request #307 from zabbix/master
Fixed php-fpm7 on Alpine images
2018-05-11 23:55:29 +03:00
Alexey Pustovalov
e9867a0d11
Merge pull request #303 from zabbix/master
Fixed php-fpm7 on Alpine images
2018-05-11 23:22:47 +03:00
root
56e2b2eeff Zabbix trunk for snmptraps image 2018-05-10 17:03:31 -07:00
root
9cbee91a1c Merge master 2018-05-10 16:38:07 -07:00
Alexey Pustovalov
51dfb8125c
Merge pull request #297 from zabbix/master
Updated README for RHEL
2018-05-09 15:59:59 +03:00
Alexey Pustovalov
b2c3b0270a
Merge pull request #291 from zabbix/master
Fixed run command example for RHEL
2018-05-09 15:48:33 +03:00
Alexey Pustovalov
dceefc8fcf
Merge pull request #288 from zabbix/master
Added Zabbix Appliance for RHEL 7
2018-05-09 00:27:24 +03:00
root
15ffcfc51e Fixed font config for trunk web-interface 2018-04-12 01:28:04 +03:00
Alexey Pustovalov
73c67df695
Merge pull request #274 from zabbix/master
Fixed small issues. Preparation for Appliance
2018-03-31 00:10:14 +03:00
Alexey Pustovalov
c4937b52fd
Merge pull request #270 from zabbix/master
Fixed small issues. Preparation for Appliance
2018-03-31 00:06:48 +03:00
root
7bedb58dce Fixed small issues. Preparation for Appliance 2018-03-30 05:37:54 -07:00
root
305b77fe7f Fixed small issues. Preparation for Appliance 2018-03-30 05:36:16 -07:00
Alexey Pustovalov
f6e90789a9
Merge pull request #260 from zabbix/master
Fixed small issues. Preparation for Appliance
2018-03-29 16:54:52 +03:00
root
26ba6ae137 Merge remote-tracking branch 'origin/master' into trunk 2018-02-23 13:49:47 -08:00
root
fc85c2c687 Merge remote-tracking branch 'origin/master' into trunk 2018-02-22 14:38:27 -08:00
root
8603e1b2e5 Merge remote-tracking branch 'origin/master' into trunk 2018-02-22 13:31:28 -08:00
root
637a44ebc1 Merge remote-tracking branch 'origin/master' into trunk 2018-02-22 12:55:42 -08:00
root
ea3cbb7c8d Merge remote-tracking branch 'origin/master' into trunk 2018-02-22 12:39:42 -08:00
root
2dbef36163 Removed supervisord from single application images 2018-02-22 12:31:38 -08:00
Alexey Pustovalov
d9ffdc0937
Merge pull request #237 from zabbix/master
Fixed issue in ubuntu image
2018-02-22 13:04:06 +02:00
Alexey Pustovalov
d6677fabf9
Merge pull request #232 from zabbix/master
Fixed issue with config params undef
2018-02-21 03:02:52 +02:00
root
bef37e5715 Updated docker compose variables 2018-02-20 06:50:59 -08:00
root
8af278c2cc Added v3 compose files 2018-02-20 06:44:19 -08:00
Alexey Pustovalov
cd441102d4
Merge pull request #228 from zabbix/master
Added v3 compose files
2018-02-21 01:01:46 +02:00
root
08e0021858 New config parameters since Zabbix 3.4 2018-02-18 02:11:27 -08:00
root
4190605b57 Updated agent alpine 2018-02-17 23:32:01 -08:00
root
fbd7807667 Fixed issue with agent image 2018-02-17 18:03:28 -08:00
Alexey Pustovalov
d72c40b3d1
Merge pull request #224 from zabbix/master
Fixed issue with web-nginx-mysql image
2018-02-19 13:07:27 +02:00
root
0b7127d2f3 Fixed issue with proxy-mysql image 2018-02-17 16:20:18 -08:00
Alexey Pustovalov
c8669d269b
Merge pull request #218 from zabbix/master
Master
2018-02-19 12:13:47 +02:00
Alexey Pustovalov
53b81cb9a0
Merge pull request #211 from zabbix/revert-210-master
Revert "Fixed issue with proxy-mysql image"
2018-02-19 11:28:44 +02:00
Alexey Pustovalov
793cb4ca26
Revert "Fixed issue with proxy-mysql image" 2018-02-19 11:28:32 +02:00
Alexey Pustovalov
6c59923fe8
Merge pull request #210 from zabbix/master
Fixed issue with proxy-mysql image
2018-02-19 11:26:59 +02:00
1132 changed files with 69022 additions and 64827 deletions

107
.env Normal file
View File

@ -0,0 +1,107 @@
# Zabbix images
ZABBIX_ALPINE_IMAGE_TAG=alpine-7.4
ZABBIX_CENTOS_IMAGE_TAG=centos-7.4
ZABBIX_OL_IMAGE_TAG=ol-7.4
ZABBIX_UBUNTU_IMAGE_TAG=ubuntu-7.4
ZABBIX_RHEL_IMAGE_TAG=rhel-7.4
ZABBIX_IMAGE_TAG_POSTFIX=-latest
ZABBIX_LOCAL_IMAGE_TAG_POSTFIX=-local
ZABBIX_SERVER_MYSQL_IMAGE=zabbix/zabbix-server-mysql
ZABBIX_SERVER_PGSQL_IMAGE=zabbix/zabbix-server-pgsql
ZABBIX_PROXY_MYSQL_IMAGE=zabbix/zabbix-proxy-mysql
ZABBIX_PROXY_SQLITE3_IMAGE=zabbix/zabbix-proxy-sqlite3
ZABBIX_WEB_NGINX_MYSQL_IMAGE=zabbix/zabbix-web-nginx-mysql
ZABBIX_WEB_APACHE_MYSQL_IMAGE=zabbix/zabbix-web-apache-mysql
ZABBIX_WEB_NGINX_PGSQL_IMAGE=zabbix/zabbix-web-nginx-pgsql
ZABBIX_WEB_APACHE_PGSQL_IMAGE=zabbix/zabbix-web-apache-pgsql
ZABBIX_AGENT_IMAGE=zabbix/zabbix-agent
ZABBIX_AGENT2_IMAGE=zabbix/zabbix-agent2
ZABBIX_JAVA_GATEWAY_IMAGE=zabbix/zabbix-java-gateway
ZABBIX_SNMPTRAPS_IMAGE=zabbix/zabbix-snmptraps
ZABBIX_WEB_SERVICE_IMAGE=zabbix/zabbix-web-service
# Database images
MYSQL_IMAGE=mysql
MYSQL_IMAGE_TAG=8.4-oracle
POSTGRESQL_IMAGE=postgres
POSTGRESQL_IMAGE_TAG=17-alpine
#POSTGRESQL_IMAGE=timescale/timescaledb
#POSTGRESQL_IMAGE_TAG=2.18.1-pg17
BUSYBOX_IMAGE=busybox
BUSYBOX_IMAGE_TAG=latest
ELASTICSEARCH_IMAGE=elasticsearch
ELASTICSEARCH_IMAGE_TAG=latest
WEBDRIVER_IMAGE=selenium/hub
WEBDRIVER_IMAGE_TAG=4.21.0
WEBDRIVER_CHROME_IMAGE=selenium/node-chrome
WEBDRIVER_CHROME_IMAGE_TAG=125.0
WEBDRIVER_FIREFOX_IMAGE=selenium/node-firefox
WEBDRIVER_FIREFOX_IMAGE_TAG=126.0
# Expose ports per service
ZABBIX_SERVER_PORT=10051
ZABBIX_PROXY_MYSQL_PORT=10071
ZABBIX_PROXY_SQLITE3_PORT=10061
ZABBIX_WEB_NGINX_HTTP_PORT=80
ZABBIX_WEB_NGINX_HTTPS_PORT=443
ZABBIX_WEB_APACHE_HTTP_PORT=8081
ZABBIX_WEB_APACHE_HTTPS_PORT=8443
ZABBIX_AGENT_PORT=10050
ZABBIX_AGENT2_PORT=10060
ZABBIX_AGENT2_STATUS_PORT=31999
ZABBIX_JAVA_GATEWAY_PORT=10052
ZABBIX_SNMPTRAPS_PORT=162
ZABBIX_WEB_SERVICE_PORT=10053
# Network IP ranges
FRONTEND_NETWORK_DRIVER=default
FRONTEND_SUBNET=172.16.238.0/24
FRONTEND_ENABLE_IPV6=false
BACKEND_NETWORK_DRIVER=default
BACKEND_SUBNET=172.16.239.0/24
BACKEND_ENABLE_IPV6=false
DATABASE_NETWORK_ENABLE_IPV6=false
DATABASE_NETWORK_DRIVER=default
ADD_TOOLS_NETWORK_DRIVER=default
ADD_TOOLS_SUBNET=172.16.240.0/24
ADD_TOOLS_ENABLE_IPV6=false
# Locations
DATA_DIRECTORY=./zbx_env
ENV_VARS_DIRECTORY=./env_vars
# Options
RESTART_POLICY=unless-stopped
# Cache base images
ALPINE_BASE_IMAGE=alpine:3.23
CENTOS_BASE_IMAGE=quay.io/centos/centos:stream10-minimal
OL_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim
UBUNTU_BASE_IMAGE=ubuntu:noble
RHEL_BASE_IMAGE=registry.access.redhat.com/ubi10/ubi-minimal:10.1
# Base images
BUILD_BASE_IMAGE=zabbix-build-base
BUILD_BASE_MYSQL_IMAGE=zabbix-build-mysql
BUILD_BASE_PGSQL_IMAGE=zabbix-build-pgsql
BUILD_BASE_SQLITE3_IMAGE=zabbix-build-sqlite3
# Operating System tags
ALPINE_OS_TAG=Alpine
ALPINE_OS_TAG_SHORT=alpine
CENTOS_OS_TAG=CentOS
CENTOS_OS_TAG_SHORT=centos
OL_OS_TAG=Oracle Linux
OL_OS_TAG_SHORT=ol
UBUNTU_OS_TAG=Ubuntu
UBUNTU_OS_TAG_SHORT=ubuntu
RHEL_OS_TAG=Red Hat
RHEL_OS_TAG_SHORT=rhel

View File

@ -1,9 +0,0 @@
# DB_SERVER_HOST=postgres-server
# DB_SERVER_PORT=5432
# POSTGRES_USER=zabbix
POSTGRES_USER=zabbix
# POSTGRES_PASSWORD=zabbix
POSTGRES_PASSWORD=zabbix
# POSTGRES_DB=zabbix
POSTGRES_DB=zabbix
# ZBX_DBSCHEMA=public

View File

@ -1,52 +0,0 @@
# ZBX_PROXYMODE=0
# ZBX_SERVER_HOST=zabbix-server
# ZBX_SERVER_PORT=10051
# ZBX_HOSTNAME=zabbix-proxy-$db_type
# ZBX_HOSTNAMEITEM=system.hostname
# ZBX_SOURCEIP=
# ZBX_DEBUGLEVEL=3
# ZBX_PROXYLOCALBUFFER=0
# ZBX_PROXYOFFLINEBUFFER=1
# ZBX_PROXYHEARTBEATFREQUENCY=60
# ZBX_CONFIGFREQUENCY=3600
# ZBX_DATASENDERFREQUENCY=1
# ZBX_STARTPOLLERS=5
# ZBX_IPMIPOLLERS=0
# ZBX_STARTPOLLERSUNREACHABLE=1
# ZBX_STARTTRAPPERS=5
# ZBX_STARTPINGERS=1
# ZBX_STARTDISCOVERERS=1
# ZBX_STARTHTTPPOLLERS=1
# ZBX_JAVAGATEWAY_ENABLE=false
# ZBX_JAVAGATEWAY=zabbix-java-gateway
# ZBX_JAVAGATEWAYPORT=10052
# ZBX_STARTJAVAPOLLERS=0
# ZBX_STARTVMWARECOLLECTORS=0
# ZBX_VMWAREFREQUENCY=60
# ZBX_VMWAREPERFFREQUENCY=60
# ZBX_VMWARECACHESIZE=8M
# ZBX_VMWARETIMEOUT=10
# ZBX_ENABLE_SNMP_TRAPS=false
# ZBX_LISTENIP=
# ZBX_HOUSEKEEPINGFREQUENCY=1
# ZBX_CACHESIZE=8M
# ZBX_STARTDBSYNCERS=4
# ZBX_HISTORYCACHESIZE=16M
# ZBX_HISTORYINDEXCACHESIZE=4M
# ZBX_TIMEOUT=4
# ZBX_TRAPPERIMEOUT=300
# ZBX_UNREACHABLEPERIOD=45
# ZBX_UNAVAILABLEDELAY=60
# ZBX_UNREACHABLEDELAY=15
# ZBX_LOGSLOWQUERIES=3000
# ZBX_LOADMODULE="dummy1.so,dummy2.so,dummy10.so"
# ZBX_TLSCONNECT=unencrypted
# ZBX_TLSACCEPT=unencrypted
# ZBX_TLSCAFILE=
# ZBX_TLSCRLFILE=
# ZBX_TLSSERVERCERTISSUER=
# ZBX_TLSSERVERCERTSUBJECT=
# ZBX_TLSCERTFILE=
# ZBX_TLSKEYFILE=
# ZBX_TLSPSKIDENTITY=
# ZBX_TLSPSKFILE=

View File

@ -1 +0,0 @@
# ZBX_HOSTNAME=zabbix-proxy-mysql

View File

@ -1,46 +0,0 @@
# ZBX_LISTENIP=
# ZBX_DEBUGLEVEL=3
# ZBX_STARTPOLLERS=5
# ZBX_IPMIPOLLERS=0
# ZBX_STARTPOLLERSUNREACHABLE=1
# ZBX_STARTTRAPPERS=5
# ZBX_STARTPINGERS=1
# ZBX_STARTDISCOVERERS=1
# ZBX_STARTHTTPPOLLERS=1
# ZBX_STARTTIMERS=1
# ZBX_STARTESCALATORS=1
ZBX_JAVAGATEWAY_ENABLE=true
# ZBX_JAVAGATEWAY=zabbix-java-gateway
# ZBX_JAVAGATEWAYPORT=10052
ZBX_STARTJAVAPOLLERS=5
# ZBX_STARTVMWARECOLLECTORS=0
# ZBX_VMWAREFREQUENCY=60
# ZBX_VMWAREPERFFREQUENCY=60
# ZBX_VMWARECACHESIZE=8M
# ZBX_VMWARETIMEOUT=10
ZBX_ENABLE_SNMP_TRAPS=true
# ZBX_SOURCEIP=
# ZBX_HOUSEKEEPINGFREQUENCY=1
# ZBX_MAXHOUSEKEEPERDELETE=5000
# ZBX_SENDERFREQUENCY=30
# ZBX_CACHESIZE=8M
# ZBX_CACHEUPDATEFREQUENCY=60
# ZBX_STARTDBSYNCERS=4
# ZBX_HISTORYCACHESIZE=16M
# ZBX_HISTORYINDEXCACHESIZE=4M
# ZBX_TRENDCACHESIZE=4M
# ZBX_VALUECACHESIZE=8M
# ZBX_TIMEOUT=4
# ZBX_TRAPPERIMEOUT=300
# ZBX_UNREACHABLEPERIOD=45
# ZBX_UNAVAILABLEDELAY=60
# ZBX_UNREACHABLEDELAY=15
# ZBX_LOGSLOWQUERIES=3000
# ZBX_STARTPROXYPOLLERS=1
# ZBX_PROXYCONFIGFREQUENCY=3600
# ZBX_PROXYDATAFREQUENCY=1
# ZBX_LOADMODULE="dummy1.so,dummy2.so,dummy10.so"
# ZBX_TLSCAFILE=
# ZBX_TLSCRLFILE=
# ZBX_TLSCERTFILE=
# ZBX_TLSKEYFILE=

View File

@ -1,10 +0,0 @@
# ZBX_SERVER_HOST=zabbix-server
# ZBX_SERVER_PORT=10051
ZBX_SERVER_NAME=Composed installation
# ZBX_MAXEXECUTIONTIME=600
# ZBX_MEMORYLIMIT=128M
# ZBX_POSTMAXSIZE=16M
# ZBX_UPLOADMAXFILESIZE=2M
# ZBX_MAXINPUTTIME=300
# Timezone one of: http://php.net/manual/en/timezones.php
# PHP_TZ=Europe/Riga

1
.github/CODEOWNERS vendored Normal file
View File

@ -0,0 +1 @@
* @dotneft

37
.github/ISSUE_TEMPLATE vendored Normal file
View File

@ -0,0 +1,37 @@
<!--- Please create issues about Zabbix images only. Zabbix official bug and feature tracker is available on https://support.zabbix.com/ -->
<!--- Verify first that your issue is not already reported on GitHub or covered in the Wiki -->
<!--- Have you had a look in the official Zabbix Documentation? -->
##### SUMMARY
<!--- Explain the problem briefly below -->
##### OS / ENVIRONMENT / Used docker-compose files
<!--- Provide all relevant information below, e.g. Docker/Container versions, used OS and OS-versions, which docker-compose_* template used -->
##### CONFIGURATION
<!--- Consider adding information about what .env_* files you changed or add the actual docker-compose you used -->
<!--- HINT: You can paste gist.github.com links for larger files -->
##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
<!--- Paste example commands between quotes below -->
```yaml
```
<!--- HINT: You can paste gist.github.com links for larger files -->
##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (higher ZABBIX_LOGLEVEL) -->
<!--- Paste verbatim command output between quotes -->
```paste below
```

418
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,418 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: daily
time: "06:00"
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: /Dockerfiles/agent/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent/windows
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent2/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent2/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent2/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent2/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent2/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/agent2/windows
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-base/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-base/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-base/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-base/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-base/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-mysql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-mysql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-mysql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-mysql/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-mysql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-pgsql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-pgsql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-pgsql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-pgsql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-sqlite3/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-sqlite3/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-sqlite3/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-sqlite3/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/build-sqlite3/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/java-gateway/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/java-gateway/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/java-gateway/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/java-gateway/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/java-gateway/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-mysql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-mysql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-mysql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-mysql/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-mysql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-sqlite3/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-sqlite3/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-sqlite3/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-sqlite3/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/proxy-sqlite3/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-mysql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-mysql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-mysql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-mysql/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-mysql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-pgsql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-pgsql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-pgsql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/server-pgsql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/snmptraps/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/snmptraps/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/snmptraps/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/snmptraps/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/snmptraps/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-apache-mysql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-apache-mysql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-apache-mysql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-apache-mysql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-apache-pgsql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-apache-pgsql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-apache-pgsql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-apache-pgsql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-mysql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-mysql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-mysql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-mysql/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-mysql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-pgsql/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-pgsql/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-pgsql/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-nginx-pgsql/ubuntu
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-service/alpine
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-service/centos
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-service/ol
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-service/rhel
schedule:
interval: daily
- package-ecosystem: "docker"
directory: /Dockerfiles/web-service/ubuntu
schedule:
interval: daily

48
.github/scripts/rhel_description.py vendored Normal file
View File

@ -0,0 +1,48 @@
import sys
import requests
import json
import markdown
import os
repository_description = None
if ("DESCRIPTION_FILE" not in os.environ or len(os.environ["DESCRIPTION_FILE"]) == 0):
print("::error::Description file environment variable is not specified")
sys.exit(1)
if ("PYXIS_API_TOKEN" not in os.environ or len(os.environ["PYXIS_API_TOKEN"]) == 0):
print("::error::API token environment variable is not specified")
sys.exit(1)
if ("API_URL" not in os.environ or len(os.environ["API_URL"]) == 0):
print("::error::API URL environment variable is not specified")
sys.exit(1)
if ("PROJECT_ID" not in os.environ or len(os.environ["PROJECT_ID"]) == 0):
print("RedHat project ID environment variable is not specified")
sys.exit(1)
if (os.path.isfile(os.environ["DESCRIPTION_FILE"] + '.html')):
file = open(os.environ["DESCRIPTION_FILE"] + '.html', mode='r')
repository_description = file.read()
file.close()
elif (os.path.isfile(os.environ["DESCRIPTION_FILE"] + '.md')):
file = open(os.environ["DESCRIPTION_FILE"] + '.md', mode='r')
markdown_data = file.read()
file.close()
repository_description=markdown.markdown(markdown_data)
if (repository_description is None or len(repository_description) == 0):
print("::error::No description file found")
sys.exit(1)
data = dict()
data['container'] = dict()
data['container']['repository_description'] = repository_description[:32768]
headers = {'accept' : 'application/json', 'X-API-KEY' : os.environ["PYXIS_API_TOKEN"], 'Content-Type' : 'application/json'}
result = requests.patch(os.environ["API_URL"] + os.environ["PROJECT_ID"],
headers = headers,
data = json.dumps(data))
print("::group::Result")
print("Response code: " + str(result.status_code))
print("Last update date: " + json.loads(result.content)['last_update_date'])
print("::endgroup::")

32
.github/workflows/dependency-review.yml vendored Normal file
View File

@ -0,0 +1,32 @@
# Dependency Review Action
#
# This Action will scan dependency manifest files that change as part of a Pull Request,
# surfacing known-vulnerable versions of the packages declared or updated in the PR.
# Once installed, if the workflow run is marked as required,
# PRs introducing known-vulnerable packages will be blocked from merging.
#
# Source repository: https://github.com/actions/dependency-review-action
name: 'Dependency Review'
on: [pull_request]
permissions:
contents: read
pull-requests: write
jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
api.github.com:443
github.com:443
- name: 'Checkout Repository'
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 'Dependency Review'
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2

View File

@ -0,0 +1,70 @@
name: DockerHub Description
on:
push:
branches:
- 'trunk'
paths:
- 'Dockerfiles/*/README.md'
- '.github/workflows/dockerhub_description.yml'
workflow_dispatch:
env:
DOCKER_REPOSITORY: "zabbix"
IMAGES_PREFIX: "zabbix-"
DOCKERFILES_DIRECTORY: "./Dockerfiles"
permissions:
contents: read
jobs:
main:
name: Update description
runs-on: ubuntu-latest
env:
DOCKER_REPOSITORY: "zabbix"
permissions:
contents: read
strategy:
fail-fast: false
matrix:
component:
- build-base
- build-mysql
- build-pgsql
- build-sqlite3
- agent
- agent2
- java-gateway
- proxy-mysql
- proxy-sqlite3
- server-mysql
- server-pgsql
- snmptraps
- web-apache-mysql
- web-apache-pgsql
- web-nginx-mysql
- web-nginx-pgsql
- web-service
steps:
- name: Block egress traffic
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
github.com:443
hub.docker.com:443
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 1
- name: Update DockerHub repo description (zabbix-${{ matrix.component }})
uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ${{ env.DOCKER_REPOSITORY }}/${{ env.IMAGES_PREFIX }}${{ matrix.component }}
readme-filepath: ${{ env.DOCKERFILES_DIRECTORY }}/${{ matrix.component }}/README.md

1077
.github/workflows/images_build.yml vendored Normal file

File diff suppressed because it is too large Load Diff

762
.github/workflows/images_build_rhel.yml vendored Normal file
View File

@ -0,0 +1,762 @@
name: Build images (RedHat)
on:
release:
types:
- published
push:
branches:
- '[0-9]+.[0-9]+'
- 'trunk'
paths:
- 'Dockerfiles/*/rhel/*'
- 'build.json'
- '!**/README.md'
- '!**/README.html'
- '.github/workflows/images_build_rhel.yml'
workflow_dispatch:
inputs:
publish_images:
description: 'Publish images'
required: true
default: false
type: boolean
trunk_version:
description: 'Specify trunk major version'
type: string
defaults:
run:
shell: bash
permissions:
contents: read
env:
TRUNK_ONLY_EVENT: ${{ contains(fromJSON('["schedule"]'), github.event_name) }}
AUTO_PUSH_IMAGES: ${{ (! contains(fromJSON('["push"]'), github.event_name) && vars.AUTO_PUSH_IMAGES) || (contains(fromJSON('["workflow_dispatch"]'), github.event_name) && inputs.publish_images == 'true' ) }}
LATEST_BRANCH: ${{ github.event.repository.default_branch }}
TRUNK_GIT_BRANCH: "refs/heads/trunk"
IMAGES_PREFIX: "zabbix-"
BASE_BUILD_NAME: "build-base"
MATRIX_FILE: "build.json"
DOCKERFILES_DIRECTORY: "Dockerfiles"
OIDC_ISSUER: "https://token.actions.githubusercontent.com"
IDENITY_REGEX: "https://github.com/zabbix/zabbix-docker/.github/"
REGISTRY: "quay.io"
REGISTRY_NAMESPACE: "redhat-isv-containers"
PREFLIGHT_IMAGE: "quay.io/opdev/preflight:stable"
PFLT_LOGLEVEL: "warn"
PFLT_ARTIFACTS: "/tmp/artifacts"
IMAGE_DIR: "/tmp/images"
RHEL_BUILD: "true"
jobs:
init_build:
name: Initialize build
runs-on: ubuntu-latest
permissions:
contents: read
actions: write
outputs:
platforms: ${{ steps.platform_list.outputs.list }}
database: ${{ steps.database.outputs.list }}
components: ${{ steps.components.outputs.list }}
is_default_branch: ${{ steps.branch_info.outputs.is_default_branch }}
current_branch: ${{ steps.branch_info.outputs.current_branch }}
sha_short: ${{ steps.branch_info.outputs.sha_short }}
secret_prefix: ${{ steps.branch_info.outputs.secret_prefix }}
steps:
- name: Block egress traffic
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
api.github.com:443
github.com:443
objects.githubusercontent.com:443
release-assets.githubusercontent.com:443
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 1
sparse-checkout: ${{ env.MATRIX_FILE }}
- name: Check ${{ env.MATRIX_FILE }} file
id: build_exists
env:
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
if [[ ! -f "$MATRIX_FILE" ]]; then
echo "::error::File $MATRIX_FILE is missing"
exit 1
fi
- name: Prepare Platform list
id: platform_list
env:
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
platform_list=$(jq -r '.["os-linux"].rhel | @json' "$MATRIX_FILE")
echo "::group::Platform List"
echo "$platform_list"
echo "::endgroup::"
echo "list=$platform_list" >> $GITHUB_OUTPUT
- name: Prepare Database engine list
id: database
env:
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
database_list=$(jq -r '[.components | map_values(select(.rhel == true)) | values[].base ] | sort | unique | del(.. | select ( . == "" ) ) | @json' "$MATRIX_FILE")
echo "::group::Database List"
echo "$database_list"
echo "::endgroup::"
echo "list=$database_list" >> $GITHUB_OUTPUT
- name: Prepare Zabbix component list
id: components
env:
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
component_list=$(jq -r '.components | map_values(select(.rhel == true)) | keys | @json' "$MATRIX_FILE")
echo "::group::Zabbix Component List"
echo "$component_list"
echo "::endgroup::"
echo "list=$component_list" >> $GITHUB_OUTPUT
- name: Get branch info
id: branch_info
shell: bash
env:
LATEST_BRANCH: ${{ env.LATEST_BRANCH }}
github_ref: ${{ github.ref }}
TRUNK_MAJOR_VERSION: ${{ inputs.trunk_version }}
run: |
result=false
sha_short=$(git rev-parse --short HEAD)
if [[ "$github_ref" == "refs/tags/"* ]]; then
github_ref=${github_ref%.*}
fi
github_ref=${github_ref##*/}
if [[ "$github_ref" == "$LATEST_BRANCH" ]]; then
result=true
fi
echo "::group::Branch metadata"
echo "is_default_branch - $result"
echo "current_branch - $github_ref"
if [ "${github_ref//.}" == "trunk" ] && [ ! -z "$TRUNK_MAJOR_VERSION" ]; then
echo "secret_prefix=RHEL_${TRUNK_MAJOR_VERSION//.}"
else
echo "secret_prefix=RHEL_${github_ref//.}"
fi
echo "sha_short - $sha_short"
echo "::endgroup::"
echo "is_default_branch=$result" >> $GITHUB_OUTPUT
echo "current_branch=$github_ref" >> $GITHUB_OUTPUT
if [ "${github_ref//.}" == "trunk" ] && [ ! -z "$TRUNK_MAJOR_VERSION" ]; then
echo "secret_prefix=RHEL_${TRUNK_MAJOR_VERSION//.}" >> $GITHUB_OUTPUT
else
echo "secret_prefix=RHEL_${github_ref//.}" >> $GITHUB_OUTPUT
fi
echo "sha_short=$sha_short" >> $GITHUB_OUTPUT
- name: Cleanup existing cache
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
BRANCH: ${{ steps.branch_info.outputs.current_branch }}
GH_RUN_ID: ${{ github.run_id }}
run: |
gh extension install actions/gh-actions-cache
cache_keys=$(gh actions-cache list -R "${REPO}" -B "${BRANCH}" -L 100 --sort created-at --order desc | cut -f 1)
## Setting this to not fail the workflow while deleting cache keys
set +e
echo "Deleting caches..."
for cache_key in $cache_keys
do
if [[ "$cache_key" == *"${GH_RUN_ID}" ]]; then
gh actions-cache delete $cache_key -R "${REPO}" -B "${BRANCH}" --confirm
fi
done
build_base:
timeout-minutes: 30
name: Build ${{ matrix.build }} base (${{ matrix.arch }})
needs: ["init_build"]
strategy:
fail-fast: false
matrix:
build: [build-base]
arch: ${{ fromJson(needs.init_build.outputs.platforms) }}
runs-on: [self-hosted, linux, "${{ matrix.arch }}"]
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 1
- name: Install cosign
if: ${{ env.AUTO_PUSH_IMAGES == 'true' }}
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad
with:
cosign-release: 'v2.4.0'
- name: Check cosign version
if: ${{ env.AUTO_PUSH_IMAGES == 'true' }}
run: cosign version
- name: Fix string case
id: lc
env:
ARCH: ${{ matrix.arch }}
run: |
echo "arch=${ARCH,,}" >> $GITHUB_OUTPUT
- name: Generate tags
id: meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
with:
images: ${{ env.IMAGES_PREFIX }}${{ matrix.build }}
tags: |
type=sha,suffix=-${{ steps.lc.outputs.arch }}
- name: Build image
id: build_image
uses: redhat-actions/buildah-build@v2.13
with:
context: ${{ format('{0}/{1}/rhel', env.DOCKERFILES_DIRECTORY, matrix.build) }}
layers: false
tags: ${{ steps.meta.outputs.tags }}
containerfiles: |
${{ env.DOCKERFILES_DIRECTORY }}/${{ matrix.build }}/rhel/Dockerfile
extra-args: |
--pull
--iidfile=${{ github.workspace }}/iidfile
- name: Image metadata
id: image_metadata
env:
IMAGE_TAG: ${{ steps.build_image.outputs.image-with-tag }}
CACHE_FILE_NAME: ${{ env.BASE_BUILD_NAME }}_${{ matrix.arch }}
GITHUB_WORKSPACE: ${{ github.workspace }}
run: |
TAG_ID=$(cat $GITHUB_WORKSPACE/iidfile)
echo "::group::Image tag"
echo "image_tag=$IMAGE_TAG"
echo "::endgroup::"
echo "::group::Image Tag ID"
echo "tag_id=$TAG_ID"
echo "::endgroup::"
echo "::group::Cache file name"
echo "$CACHE_FILE_NAME"
echo "::endgroup::"
echo "$TAG_ID" > "${CACHE_FILE_NAME}_tag_id"
echo "$IMAGE_TAG" > "${CACHE_FILE_NAME}_tag"
echo "image_tag_id=${TAG_ID}" >> $GITHUB_OUTPUT
echo "image_tag=${IMAGE_TAG}" >> $GITHUB_OUTPUT
- name: Cache image metadata
uses: actions/cache/save@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: |
${{ env.BASE_BUILD_NAME }}_${{ matrix.arch }}_tag_id
${{ env.BASE_BUILD_NAME }}_${{ matrix.arch }}_tag
key: ${{ env.BASE_BUILD_NAME }}-${{ matrix.arch }}-${{ github.run_id }}
- name: Push image to local storage
id: push_image
env:
IMAGE_TAG: ${{ steps.image_metadata.outputs.image_tag }}
IMAGE_TAG_ID: ${{ steps.image_metadata.outputs.image_tag_id }}
IMAGE_DIR: ${{ env.IMAGE_DIR }}
run: |
echo "::group::Result"
echo "Image ${IMAGE_TAG} location: \"${IMAGE_DIR}/${IMAGE_TAG_ID}\""
podman push "${IMAGE_TAG}" dir:"${IMAGE_DIR}/${IMAGE_TAG_ID}"
echo "::endgroup::"
- name: Post build image
if: ${{ success() || failure() }}
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
run: |
echo "::group::Result"
rm -rf "$GITHUB_WORKSPACE/iidfile"
echo "Removing working containers"
buildah rm -a 2>/dev/null || true
echo "Removing container data in storage not controlled by podman"
podman system prune --external 2>/dev/null
echo "Removing all unused container data with volumes"
podman system prune -a --volumes -f 2>/dev/null
echo "Reseting podman storage to default state"
podman system reset -f 2>/dev/null || true
echo "::endgroup::"
- name: Check on failures
if: ${{ (cancelled() || failure()) && ( steps.push_image.outcome == 'failure' || steps.push_image.outcome == 'cancelled') }}
env:
IMAGE_TAG_ID: ${{ steps.image_metadata.outputs.image_tag_id }}
IMAGE_DIR: ${{ env.IMAGE_DIR }}
run: |
echo "::group::Removing orphaned image"
rm -rf "${IMAGE_DIR}/${IMAGE_TAG_ID}"
echo "::endgroup::"
build_base_database:
timeout-minutes: 90
needs: [ "build_base", "init_build"]
name: Build ${{ matrix.build }} base (${{ matrix.arch }})
strategy:
fail-fast: false
matrix:
build: ${{ fromJson(needs.init_build.outputs.database) }}
arch: ${{ fromJson(needs.init_build.outputs.platforms) }}
runs-on: [self-hosted, linux, "${{ matrix.arch }}"]
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 1
- name: Fix string case
id: lc
env:
ARCH: ${{ matrix.arch }}
run: |
echo "arch=${ARCH,,}" >> $GITHUB_OUTPUT
- name: Download metadata of ${{ env.BASE_BUILD_NAME }}:${{ matrix.arch }}
uses: actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: |
${{ env.BASE_BUILD_NAME }}_${{ matrix.arch }}_tag_id
${{ env.BASE_BUILD_NAME }}_${{ matrix.arch }}_tag
key: ${{ env.BASE_BUILD_NAME }}-${{ matrix.arch }}-${{ github.run_id }}
- name: Pull ${{ env.BASE_BUILD_NAME }}:${{ matrix.arch }} image from local storage
id: base_build
env:
MATRIX_ARCH: ${{ matrix.arch }}
BASE_IMAGE: ${{ env.BASE_BUILD_NAME }}
IMAGES_PREFIX: ${{ env.IMAGES_PREFIX }}
run: |
BASE_TAG_ID=$(cat "${BASE_IMAGE}_${MATRIX_ARCH}_tag_id")
BASE_IMAGE_TAG=$(cat "${BASE_IMAGE}_${MATRIX_ARCH}_tag")
echo "::group::Pull image"
echo "podman pull dir:\"${IMAGE_DIR}/${BASE_TAG_ID}\""
podman pull dir:"${IMAGE_DIR}/${BASE_TAG_ID}"
echo "::endgroup::"
echo "::group::Tag image"
echo "podman tag \"${BASE_TAG_ID}\" \"${BASE_IMAGE_TAG}\""
podman tag "${BASE_TAG_ID}" "${BASE_IMAGE_TAG}"
echo "::endgroup::"
echo "::group::SHA256 tag"
DIGEST=$(podman inspect "${BASE_TAG_ID}" --format '{{ .Digest }}')
BASE_BUILD_IMAGE="${IMAGES_PREFIX}${BASE_IMAGE}@${DIGEST}"
echo "base_build_image=${BASE_BUILD_IMAGE}"
echo "::endgroup::"
echo "base_build_image=${BASE_BUILD_IMAGE}" >> $GITHUB_OUTPUT
- name: Generate tags
id: meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
with:
images: ${{ env.IMAGES_PREFIX }}${{ matrix.build }}
tags: |
type=sha,suffix=-${{ steps.lc.outputs.arch }}
- name: Build image
id: build_image
uses: redhat-actions/buildah-build@v2.13
with:
context: ${{ format('{0}/{1}/rhel', env.DOCKERFILES_DIRECTORY, matrix.build) }}
layers: false
tags: ${{ steps.meta.outputs.tags }}
containerfiles: |
${{ env.DOCKERFILES_DIRECTORY }}/${{ matrix.build }}/rhel/Dockerfile
build-args: BUILD_BASE_IMAGE=localhost/${{ steps.base_build.outputs.base_build_image }}
extra-args: |
--iidfile=${{ github.workspace }}/iidfile
--build-context sources=./sources/
--build-context config_templates=./config_templates/
- name: Prepare image metadata
id: image_metadata
env:
IMAGE_TAG: ${{ steps.build_image.outputs.image-with-tag }}
CACHE_FILE_NAME: ${{ matrix.build }}_${{ matrix.arch }}
GITHUB_WORKSPACE: ${{ github.workspace }}
run: |
TAG_ID=$(cat $GITHUB_WORKSPACE/iidfile)
echo "::group::Image tag"
echo "image_tag=$IMAGE_TAG"
echo "::endgroup::"
echo "::group::Image Tag ID"
echo "tag_id=$TAG_ID"
echo "::endgroup::"
echo "::group::Cache file name"
echo "$CACHE_FILE_NAME"
echo "::endgroup::"
echo "$TAG_ID" > "${CACHE_FILE_NAME}_tag_id"
echo "$IMAGE_TAG" > "${CACHE_FILE_NAME}_tag"
echo "image_tag_id=${TAG_ID}" >> $GITHUB_OUTPUT
echo "image_tag=${IMAGE_TAG}" >> $GITHUB_OUTPUT
- name: Cache image metadata
uses: actions/cache/save@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: |
${{ matrix.build }}_${{ matrix.arch }}_tag_id
${{ matrix.build }}_${{ matrix.arch }}_tag
key: ${{ matrix.build }}-${{ matrix.arch }}-${{ github.run_id }}
- name: Push image to local storage
id: push_image
env:
IMAGE_TAG: ${{ steps.image_metadata.outputs.image_tag }}
IMAGE_TAG_ID: ${{ steps.image_metadata.outputs.image_tag_id }}
IMAGE_DIR: ${{ env.IMAGE_DIR }}
run: |
echo "::group::Result"
echo "podman push \"${IMAGE_TAG}\" dir:\"${IMAGE_DIR}/${IMAGE_TAG_ID}\""
podman push "${IMAGE_TAG}" dir:"${IMAGE_DIR}/${IMAGE_TAG_ID}"
echo "::endgroup::"
- name: Post build image
if: ${{ success() || failure() }}
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
run: |
echo "::group::Result"
rm -rf "$GITHUB_WORKSPACE/iidfile"
echo "Removing working containers"
buildah rm -a 2>/dev/null || true
echo "Removing container data in storage not controlled by podman"
podman system prune --external 2>/dev/null
echo "Removing all unused container data with volumes"
podman system prune -a --volumes -f 2>/dev/null
echo "Reseting podman storage to default state"
podman system reset -f 2>/dev/null || true
echo "::endgroup::"
- name: Check on failures
if: ${{ (cancelled() || failure()) && ( steps.push_image.outcome == 'failure' || steps.push_image.outcome == 'cancelled') }}
env:
IMAGE_TAG_ID: ${{ steps.image_metadata.outputs.image_tag_id }}
IMAGE_DIR: ${{ env.IMAGE_DIR }}
run: |
echo "::group::Removing orphaned image"
rm -rf "${IMAGE_DIR}/${IMAGE_TAG_ID}"
echo "::endgroup::"
build_images:
timeout-minutes: 30
needs: [ "build_base_database", "init_build"]
name: Build ${{ matrix.build }} image (${{ matrix.arch }})
strategy:
fail-fast: false
matrix:
build: ${{ fromJson(needs.init_build.outputs.components) }}
arch: ${{ fromJson(needs.init_build.outputs.platforms) }}
runs-on: [self-hosted, linux, "${{ matrix.arch }}"]
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 1
- name: Variables formating
id: var_format
env:
MATRIX_BUILD: ${{ matrix.build }}
run: |
MATRIX_BUILD=${MATRIX_BUILD^^}
MATRIX_BUILD=${MATRIX_BUILD//-/_}
echo "::group::Result"
echo "matrix_build=${MATRIX_BUILD}"
echo "::endgroup::"
echo "matrix_build=${MATRIX_BUILD}" >> $GITHUB_OUTPUT
- name: Detect Build Base Image
id: build_base_image
if: ${{ matrix.build != 'snmptraps' }}
env:
MATRIX_BUILD: ${{ matrix.build }}
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
BUILD_BASE=$(jq -r ".components.\"$MATRIX_BUILD\".base" "$MATRIX_FILE")
echo "::group::Base Build Image"
echo "$BUILD_BASE"
echo "::endgroup::"
echo "build_base=${BUILD_BASE}" >> $GITHUB_OUTPUT
- name: Download metadata of ${{ steps.build_base_image.outputs.build_base }}:${{ matrix.arch }}
if: ${{ matrix.build != 'snmptraps' }}
uses: actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: |
${{ steps.build_base_image.outputs.build_base }}_${{ matrix.arch }}_tag_id
${{ steps.build_base_image.outputs.build_base }}_${{ matrix.arch }}_tag
key: ${{ steps.build_base_image.outputs.build_base }}-${{ matrix.arch }}-${{ github.run_id }}
- name: Pull ${{ steps.build_base_image.outputs.build_base }}:${{ matrix.arch }} image
id: base_build
if: ${{ matrix.build != 'snmptraps' }}
env:
MATRIX_ARCH: ${{ matrix.arch }}
BASE_IMAGE: ${{ steps.build_base_image.outputs.build_base }}
IMAGES_PREFIX: ${{ env.IMAGES_PREFIX }}
run: |
BASE_TAG_ID=$(cat "${BASE_IMAGE}_${MATRIX_ARCH}_tag_id")
BASE_IMAGE_TAG=$(cat "${BASE_IMAGE}_${MATRIX_ARCH}_tag")
echo "::group::Pull image"
echo "podman pull dir:\"${IMAGE_DIR}/${BASE_TAG_ID}\""
podman pull dir:"${IMAGE_DIR}/${BASE_TAG_ID}"
echo "::endgroup::"
echo "::group::Tag image"
echo "podman tag \"${BASE_TAG_ID}\" \"${BASE_IMAGE_TAG}\""
podman tag "${BASE_TAG_ID}" "${BASE_IMAGE_TAG}"
echo "::endgroup::"
echo "::group::SHA256 tag"
DIGEST=$(podman inspect "${BASE_TAG_ID}" --format '{{ .Digest }}')
BASE_BUILD_IMAGE="${IMAGES_PREFIX}${BASE_IMAGE}@${DIGEST}"
echo "digest=${BASE_BUILD_IMAGE}"
echo "::endgroup::"
echo "base_build_image=${BASE_BUILD_IMAGE}" >> $GITHUB_OUTPUT
- name: Remove smartmontools
if: ${{ matrix.build == 'agent2' }}
env:
DOCKERFILES_DIRECTORY: ${{ env.DOCKERFILES_DIRECTORY }}
run: |
sed -i '/smartmontools/d' "$DOCKERFILES_DIRECTORY/agent2/rhel/Dockerfile"
- name: Generate tags
id: meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
with:
images: ${{ env.REGISTRY }}/${{ env.REGISTRY_NAMESPACE }}/${{ secrets[format('{0}_{1}_PROJECT', needs.init_build.outputs.secret_prefix, steps.var_format.outputs.matrix_build)] || matrix.build }}
tags: |
type=semver,pattern={{version}}
type=sha
flavor: |
latest=${{ github.event_name == 'release' }}
suffix=${{ matrix.arch == 'ARM64' && '-arm64' || '' }},onlatest=true
- name: Build image
id: build_image
uses: redhat-actions/buildah-build@v2.13
with:
context: ${{ format('{0}/{1}/rhel', env.DOCKERFILES_DIRECTORY, matrix.build) }}
layers: false
tags: ${{ steps.meta.outputs.tags }}
labels: |
org.opencontainers.image.revision=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
org.opencontainers.image.created=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
containerfiles: |
${{ env.DOCKERFILES_DIRECTORY }}/${{ matrix.build }}/rhel/Dockerfile
extra-args: |
--iidfile=${{ github.workspace }}/iidfile
build-args: BUILD_BASE_IMAGE=localhost/${{ steps.base_build.outputs.base_build_image }}
- name: Log in to ${{ env.REGISTRY }}
uses: redhat-actions/podman-login@9184318aae1ee5034fbfbacc0388acf12669171f # v1.6
if: ${{ env.AUTO_PUSH_IMAGES == 'true' }}
with:
username: ${{ format('redhat-isv-containers+{0}-robot', secrets[format('{0}_{1}_PROJECT', needs.init_build.outputs.secret_prefix, steps.var_format.outputs.matrix_build)]) }}
password: ${{ secrets[format('{0}_{1}_SECRET', needs.init_build.outputs.secret_prefix, steps.var_format.outputs.matrix_build)] }}
registry: ${{ env.REGISTRY }}
auth_file_path: /tmp/.docker_${{ matrix.build }}_${{ matrix.arch }}_${{ needs.init_build.outputs.sha_short }}
- name: Push to RedHat certification procedure (1st)
id: push_to_registry
if: ${{ env.AUTO_PUSH_IMAGES == 'true' }}
uses: redhat-actions/push-to-registry@9986a6552bc4571882a4a67e016b17361412b4df # v2.7.1
with:
tags: ${{ steps.meta.outputs.tags }}
- name: Preflight certification
if: ${{ env.AUTO_PUSH_IMAGES == 'true' }}
env:
PFLT_DOCKERCONFIG: /tmp/.docker_${{ matrix.build }}_${{ matrix.arch }}_${{ needs.init_build.outputs.sha_short }}
PFLT_CERTIFICATION_PROJECT_ID: ${{ secrets[format('{0}_{1}_PROJECT', needs.init_build.outputs.secret_prefix, steps.var_format.outputs.matrix_build)] }}
PFLT_PYXIS_API_TOKEN: ${{ secrets.REDHAT_API_TOKEN }}
PFLT_ARTIFACTS: ${{ env.PFLT_ARTIFACTS }}
PFLT_LOGLEVEL: ${{ env.PFLT_LOGLEVEL }}
IMAGE_TAG: ${{ steps.build_image.outputs.image-with-tag }}
PREFLIGHT_IMAGE: ${{ env.PREFLIGHT_IMAGE }}
run: |
mkdir -p $PFLT_ARTIFACTS
echo "::group::Pull preflight \"$PREFLIGHT_IMAGE\" image"
podman pull "$PREFLIGHT_IMAGE"
echo "::endgroup::"
echo "::group::Perform certification tests"
podman run \
-it \
--rm \
--security-opt=label=disable \
--env PFLT_LOGLEVEL=$PFLT_LOGLEVEL \
--env PFLT_ARTIFACTS=/artifacts \
--env PFLT_LOGFILE=/artifacts/preflight.log \
--env PFLT_CERTIFICATION_COMPONENT_ID=$PFLT_CERTIFICATION_PROJECT_ID \
--env PFLT_PYXIS_API_TOKEN=$PFLT_PYXIS_API_TOKEN \
--env PFLT_DOCKERCONFIG=/temp-authfile.json \
-v $PFLT_ARTIFACTS:/artifacts \
-v $PFLT_DOCKERCONFIG:/temp-authfile.json:ro \
"$PREFLIGHT_IMAGE" check container $IMAGE_TAG --submit
podman rmi -i -f "$PREFLIGHT_IMAGE"
echo "::endgroup::"
- name: Push to RedHat certification procedure (all tags)
id: push_to_registry_all_tags
if: ${{ env.AUTO_PUSH_IMAGES == 'true' }}
uses: redhat-actions/push-to-registry@9986a6552bc4571882a4a67e016b17361412b4df # v2.7.1
with:
tags: ${{ steps.meta.outputs.tags }}
- name: Post Preflight certification
if: ${{ env.AUTO_PUSH_IMAGES == 'true' && (success() || failure()) }}
env:
PREFLIGHT_IMAGE: ${{ env.PREFLIGHT_IMAGE }}
PFLT_ARTIFACTS: ${{ env.PFLT_ARTIFACTS }}
run: |
echo "::group::Result"
rm -rf "$PFLT_ARTIFACTS"
podman rmi -i -f "$PREFLIGHT_IMAGE"
echo "::endgroup::"
- name: Image digest
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
run: |
TAG_ID=$(cat $GITHUB_WORKSPACE/iidfile)
echo "::group::Image digest"
echo "$TAG_ID"
echo "::endgroup::"
- name: Post build image
if: ${{ success() || failure() }}
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
run: |
echo "::group::Result"
rm -rf "$GITHUB_WORKSPACE/iidfile"
echo "Removing working containers"
buildah rm -a 2>/dev/null || true
echo "Removing container data in storage not controlled by podman"
podman system prune --external 2>/dev/null
echo "Removing all unused container data with volumes"
podman system prune -a --volumes -f 2>/dev/null
echo "Reseting podman storage to default state"
podman system reset -f 2>/dev/null || true
echo "::endgroup::"
clear_artifacts:
timeout-minutes: 10
needs: [ "build_images", "init_build"]
name: Clear ${{ matrix.build }} image cache (${{ matrix.arch }})
strategy:
fail-fast: false
matrix:
build: ${{ fromJson(needs.init_build.outputs.database) }}
arch: ${{ fromJson(needs.init_build.outputs.platforms) }}
runs-on: [self-hosted, linux, "${{ matrix.arch }}"]
if: ${{ needs.build_base_database.result == 'success' }}
permissions: {}
steps:
- name: Download metadata of ${{ matrix.build }}:${{ matrix.arch }}
uses: actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: |
${{ matrix.build }}_${{ matrix.arch }}_tag_id
${{ matrix.build }}_${{ matrix.arch }}_tag
key: ${{ matrix.build }}-${{ matrix.arch }}-${{ github.run_id }}
- name: Remove ${{ matrix.build }}:${{ matrix.arch }} cache
env:
CACHE_FILE_NAME: ${{ matrix.build }}_${{ matrix.arch }}
IMAGE_DIR: ${{ env.IMAGE_DIR }}
run: |
echo "::group::Result"
BASE_TAG=$(cat "${CACHE_FILE_NAME}_tag_id")
echo "Removing ${IMAGE_DIR}/${BASE_TAG}"
rm -rf "${IMAGE_DIR}/${BASE_TAG}"
echo "::endgroup::"
- name: Download metadata of ${{ env.BASE_BUILD_NAME }}:${{ matrix.arch }}
uses: actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: |
${{ env.BASE_BUILD_NAME }}_${{ matrix.arch }}_tag_id
${{ env.BASE_BUILD_NAME }}_${{ matrix.arch }}_tag
key: ${{ env.BASE_BUILD_NAME }}-${{ matrix.arch }}-${{ github.run_id }}
- name: Remove ${{ env.BASE_BUILD_NAME }}:${{ matrix.arch }} cache
env:
CACHE_FILE_NAME: ${{ env.BASE_BUILD_NAME }}_${{ matrix.arch }}
IMAGE_DIR: ${{ env.IMAGE_DIR }}
run: |
echo "::group::Result"
BASE_TAG=$(cat "${CACHE_FILE_NAME}_tag_id")
echo "Removing ${IMAGE_DIR}/${BASE_TAG}"
rm -rf "${IMAGE_DIR}/${BASE_TAG}"
echo "::endgroup::"

View File

@ -0,0 +1,788 @@
name: Build images (DockerHub, Windows)
on:
release:
types:
- published
push:
branches:
- '[0-9]+.[0-9]+'
- 'trunk'
paths:
- 'build.json'
- 'Dockerfiles/*/windows/*'
- '!**/README.md'
- '.github/workflows/images_build_windows.yml'
schedule:
- cron: '05 02 * * *'
workflow_dispatch:
defaults:
run:
shell: pwsh
permissions:
contents: read
env:
TRUNK_ONLY_EVENT: ${{ contains(fromJSON('["schedule"]'), github.event_name) }}
AUTO_PUSH_IMAGES: ${{ vars.AUTO_PUSH_IMAGES }}
DOCKER_REGISTRY: ${{ vars.DOCKER_REGISTRY }}
DOCKER_REPOSITORY: ${{ vars.DOCKER_REPOSITORY }}
LATEST_BRANCH: ${{ github.event.repository.default_branch }}
TRUNK_GIT_BRANCH: "refs/heads/trunk"
IMAGES_PREFIX: "zabbix-"
MSFT_BASE_BUILD_IMAGE: "mcr.microsoft.com/windows/servercore"
OS_BASE_IMAGE_NAME: "mcr.microsoft.com/windows/nanoserver"
BASE_IMAGE_NAME: "build-base"
BASE_BUILD_IMAGE_NAME: "build-mysql"
MATRIX_FILE: "build.json"
DOCKERFILES_DIRECTORY: "Dockerfiles"
OIDC_ISSUER: "https://token.actions.githubusercontent.com"
IDENITY_REGEX: "https://github.com/zabbix/zabbix-docker/.github/"
jobs:
init_build:
name: Initialize build
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
os: ${{ steps.os.outputs.list }}
components: ${{ steps.components.outputs.list }}
is_default_branch: ${{ steps.branch_info.outputs.is_default_branch }}
current_branch: ${{ steps.branch_info.outputs.current_branch }}
sha_short: ${{ steps.branch_info.outputs.sha_short }}
steps:
- name: Block egress traffic
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
github.com:443
release-assets.githubusercontent.com:443
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
ref: ${{ env.TRUNK_ONLY_EVENT == 'true' && env.TRUNK_GIT_BRANCH || '' }}
fetch-depth: 1
sparse-checkout: ${{ env.MATRIX_FILE }}
- name: Check ${{ env.MATRIX_FILE }} file
id: build_exists
shell: bash
env:
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
if [[ ! -f "$MATRIX_FILE" ]]; then
echo "::error::File $MATRIX_FILE is missing"
exit 1
fi
- name: Prepare Operating System list
id: os
shell: bash
env:
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
os_list=$(jq -r '.["os-windows"] | keys | [ .[] | tostring ] | @json' "$MATRIX_FILE")
echo "::group::Operating System List"
echo "$os_list"
echo "::endgroup::"
echo "list=$os_list" >> $GITHUB_OUTPUT
- name: Prepare Zabbix component list
id: components
shell: bash
run: |
component_list='["agent","agent2"]'
echo "::group::Zabbix Component List"
echo "$component_list"
echo "::endgroup::"
echo "list=$component_list" >> $GITHUB_OUTPUT
- name: Get branch info
id: branch_info
shell: bash
env:
LATEST_BRANCH: ${{ env.LATEST_BRANCH }}
github_ref: ${{ env.TRUNK_ONLY_EVENT == 'true' && env.TRUNK_GIT_BRANCH || github.ref }}
run: |
result=false
sha_short=$(git rev-parse --short HEAD)
if [[ "$github_ref" == "refs/tags/"* ]]; then
github_ref=${github_ref%.*}
fi
github_ref=${github_ref##*/}
if [[ "$github_ref" == "$LATEST_BRANCH" ]]; then
result=true
fi
echo "::group::Branch data"
echo "is_default_branch - $result"
echo "current_branch - $github_ref"
echo "sha_short - $sha_short"
echo "::endgroup::"
echo "is_default_branch=$result" >> $GITHUB_OUTPUT
echo "current_branch=$github_ref" >> $GITHUB_OUTPUT
echo "sha_short=$sha_short" >> $GITHUB_OUTPUT
build_base:
name: Build ${{ matrix.component }} base on ${{ matrix.os }}
needs: init_build
runs-on: ${{ matrix.os }}
timeout-minutes: 70
permissions:
contents: read
id-token: write
attestations: write
strategy:
fail-fast: false
matrix:
os: ${{ fromJson(needs.init_build.outputs.os) }}
component: ${{ fromJson(needs.init_build.outputs.components) }}
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
ref: ${{ env.TRUNK_ONLY_EVENT == 'true' && env.TRUNK_GIT_BRANCH || '' }}
fetch-depth: 1
- name: Install cosign
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad
with:
cosign-release: 'v2.4.0'
- name: Check cosign version
run: cosign version
- name: Login to DockerHub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Base Windows OS tag
id: base_os_tag
env:
MATRIX_OS: ${{ matrix.os }}
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
$os_tag=$(Get-Content -Path $Env:MATRIX_FILE | ConvertFrom-Json).'os-windows'."$Env:MATRIX_OS"
echo "::group::Base Microsoft Windows OS tag"
echo "$os_tag"
echo "::endgroup::"
echo "os_tag=$os_tag" >> $Env:GITHUB_OUTPUT
- name: Generate tags
id: meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
with:
images: ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_REPOSITORY }}/${{ env.IMAGES_PREFIX }}${{ env.BASE_IMAGE_NAME }}
context: ${{ env.TRUNK_ONLY_EVENT == 'true' && 'git' || '' }}
tags: |
type=semver,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},pattern={{version}},prefix=${{ matrix.component }}-${{ steps.base_os_tag.outputs.os_tag }}-
type=semver,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},pattern={{version}},suffix=-${{ steps.base_os_tag.outputs.os_tag }},prefix=${{ matrix.component }}-
type=ref,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},event=branch,prefix=${{ matrix.component }}-${{ steps.base_os_tag.outputs.os_tag }}-,suffix=-latest
type=ref,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},event=branch,suffix=-${{ steps.base_os_tag.outputs.os_tag }}-latest,prefix=${{ matrix.component }}-
type=raw,enable=${{ (needs.init_build.outputs.current_branch != 'trunk') && (needs.init_build.outputs.is_default_branch == 'true') }},value=${{ matrix.component }}-${{ steps.base_os_tag.outputs.os_tag }}-latest
type=ref,enable=${{ needs.init_build.outputs.current_branch == 'trunk' }},event=branch,prefix=${{ matrix.component }}-${{ steps.base_os_tag.outputs.os_tag }}-
type=ref,enable=${{ needs.init_build.outputs.current_branch == 'trunk' }},event=branch,suffix=-${{ steps.base_os_tag.outputs.os_tag }},prefix=${{ matrix.component }}-
flavor: |
latest=false
- name: Build and push image
id: docker_build
env:
DOCKERFILES_DIRECTORY: ${{ env.DOCKERFILES_DIRECTORY }}
BASE_BUILD_IMAGE: ${{ env.MSFT_BASE_BUILD_IMAGE }}
BASE_IMAGE_NAME: ${{ env.BASE_IMAGE_NAME }}
MATRIX_COMPONENT: ${{ matrix.component }}
TAGS: ${{ steps.meta.outputs.tags }}
BASE_OS_TAG: ${{ steps.base_os_tag.outputs.os_tag }}
LABEL_REVISION: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
LABEL_CREATED: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
AUTO_PUSH_IMAGES: ${{ env.AUTO_PUSH_IMAGES }}
run: |
echo "::group::Docker version"
docker version
echo "::endgroup::"
echo "::group::Docker info"
docker info
echo "::endgroup::"
$context="$Env:DOCKERFILES_DIRECTORY\$Env:BASE_IMAGE_NAME\windows\"
$dockerfile= $context + 'Dockerfile.' + $Env:MATRIX_COMPONENT
$base_os_image= $Env:BASE_BUILD_IMAGE + ':' + $Env:BASE_OS_TAG
# Can not build on GitHub due existing symlink. Must be removed before build process
Remove-Item -ErrorAction Ignore -Force -Path $context\README.md
$tags_array=$( "$Env:TAGS".Split("`n") )
$tags=$( $tags_array | Foreach-Object { "--tag=$_" } )
echo "::group::Image tags"
echo "$Env:TAGS"
echo "::endgroup::"
echo "::group::Pull base image"
docker pull $base_os_image
if (-not $?) {throw "Failed"}
echo "::endgroup::"
echo "::group::Build Image"
Write-Host @"
docker build --label org.opencontainers.image.revision=$Env:LABEL_REVISION
--label org.opencontainers.image.created=$Env:LABEL_CREATED
--build-arg=OS_BASE_IMAGE=$base_os_image
--file=$dockerfile
$tags
$context
"@
docker build --label org.opencontainers.image.revision=$Env:LABEL_REVISION `
--label org.opencontainers.image.created=$Env:LABEL_CREATED `
--build-arg=OS_BASE_IMAGE=$base_os_image `
--file=$dockerfile `
$tags `
$context
if (-not $?) {throw "Failed"}
echo "::endgroup::"
echo "::group::Publish Image"
if ( $Env:AUTO_PUSH_IMAGES -eq 'true' ) {
Foreach ($tag in $tags_array) {
echo "docker image push $tag"
docker image push $tag
if (-not $?) {throw "Failed"}
}
$digest=$(docker inspect $tags_array[0] --format "{{ index .RepoDigests 0}}").Split('@')[-1]
if (-not $?) {throw "Failed"}
echo "Image digest got from RepoDigests"
}
else {
$digest=$(docker inspect $tags_array[0] --format "{{ index .Id}}")
if (-not $?) {throw "Failed"}
echo "Image digest got from Id"
}
echo "::endgroup::"
echo "::group::Digest"
echo "$digest"
echo "::endgroup::"
echo "digest=$digest" >> $Env:GITHUB_OUTPUT
- name: Sign the images with GitHub OIDC Token
env:
DIGEST: ${{ steps.docker_build.outputs.digest }}
TAGS: ${{ steps.meta.outputs.tags }}
run: |
$tags_array=$( "$Env:TAGS".Split("`n") )
$tag_list=@()
foreach ($tag in $tags_array) {
$tag_name=$tag.Split(":")[0]
$tag_list+="$tag_name@$Env:DIGEST"
}
echo "::group::Images to sign"
echo "$tag_list"
echo "::endgroup::"
echo "::group::Signing"
echo "cosign sign --yes $tag_list"
cosign sign --yes $tag_list
echo "::endgroup::"
- name: Image digest
if: ${{ env.AUTO_PUSH_IMAGES }}
env:
DIGEST: ${{ steps.docker_build.outputs.digest }}
CACHE_FILE_NAME: ${{ env.BASE_IMAGE_NAME }}_${{ matrix.os }}_${{ matrix.component }}
run: |
echo "::group::Image digest"
echo "$Env:DIGEST"
echo "::endgroup::"
echo "::group::Cache file name"
echo "$Env:CACHE_FILE_NAME"
echo "::endgroup::"
$Env:DIGEST | Set-Content -Path $Env:CACHE_FILE_NAME
- name: Cache image digest
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ${{ env.BASE_IMAGE_NAME }}_${{ matrix.os }}_${{ matrix.component }}
key: ${{ env.BASE_IMAGE_NAME }}-${{ matrix.os }}-${{ github.run_id }}
build_components:
name: Build ${{ matrix.component }} sources on ${{ matrix.os }}
needs: [ "build_base", "init_build"]
runs-on: ${{ matrix.os }}
timeout-minutes: 70
permissions:
contents: read
id-token: write
attestations: write
strategy:
fail-fast: false
matrix:
os: ${{ fromJson(needs.init_build.outputs.os) }}
component: ${{ fromJson(needs.init_build.outputs.components) }}
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
ref: ${{ env.TRUNK_ONLY_EVENT == 'true' && env.TRUNK_GIT_BRANCH || '' }}
fetch-depth: 1
- name: Install cosign
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad
with:
cosign-release: 'v2.4.0'
- name: Check cosign version
run: cosign version
- name: Login to DockerHub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Base OS tag
id: base_os_tag
env:
MATRIX_OS: ${{ matrix.os }}
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
$os_tag=$(Get-Content -Path $Env:MATRIX_FILE | ConvertFrom-Json).'os-windows'."$Env:MATRIX_OS"
echo "::group::Base Windows OS tag"
echo "$os_tag"
echo "::endgroup::"
echo "os_tag=$os_tag" >> $Env:GITHUB_OUTPUT
- name: Generate tags
id: meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
with:
images: ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_REPOSITORY }}/${{ env.IMAGES_PREFIX }}${{ env.BASE_BUILD_IMAGE_NAME }}
context: ${{ env.TRUNK_ONLY_EVENT == 'true' && 'git' || '' }}
tags: |
type=semver,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},pattern={{version}},prefix=${{ matrix.component }}-${{ steps.base_os_tag.outputs.os_tag }}-
type=semver,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},pattern={{version}},suffix=-${{ steps.base_os_tag.outputs.os_tag }},prefix=${{ matrix.component }}-
type=ref,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},event=branch,prefix=${{ matrix.component }}-${{ steps.base_os_tag.outputs.os_tag }}-,suffix=-latest
type=ref,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},event=branch,suffix=-${{ steps.base_os_tag.outputs.os_tag }}-latest,prefix=${{ matrix.component }}-
type=raw,enable=${{ (needs.init_build.outputs.current_branch != 'trunk') && (needs.init_build.outputs.is_default_branch == 'true') }},value=${{ matrix.component }}-${{ steps.base_os_tag.outputs.os_tag }}-latest
type=ref,enable=${{ needs.init_build.outputs.current_branch == 'trunk' }},event=branch,prefix=${{ matrix.component }}-${{ steps.base_os_tag.outputs.os_tag }}-
type=ref,enable=${{ needs.init_build.outputs.current_branch == 'trunk' }},event=branch,suffix=-${{ steps.base_os_tag.outputs.os_tag }},prefix=${{ matrix.component }}-
flavor: |
latest=false
- name: Download SHA256 tag of ${{ env.BASE_IMAGE_NAME }}:${{ matrix.os }}
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ${{ env.BASE_IMAGE_NAME }}_${{ matrix.os }}_${{ matrix.component }}
key: ${{ env.BASE_IMAGE_NAME }}-${{ matrix.os }}-${{ github.run_id }}
- name: Retrieve ${{ env.BASE_IMAGE_NAME }}:${{ matrix.os }} SHA256 tag
id: base_build
env:
BASE_IMAGE_NAME: ${{ env.BASE_IMAGE_NAME }}
MATRIX_OS: ${{ matrix.os }}
MATRIX_COMPONENT: ${{ matrix.component }}
DOCKER_REPOSITORY: ${{ env.DOCKER_REPOSITORY }}
IMAGES_PREFIX: ${{ env.IMAGES_PREFIX }}
run: |
$base_image_file=$Env:BASE_IMAGE_NAME + '_' + $Env:MATRIX_OS + '_' + $Env:MATRIX_COMPONENT
$base_tag = Get-Content $base_image_file -Raw
$build_base_image="$Env:DOCKER_REPOSITORY/$Env:IMAGES_PREFIX$Env:BASE_IMAGE_NAME@" + $base_tag
echo "::group::Base image Info"
echo "base_tag=$base_tag"
echo "base_build_image=$build_base_image"
echo "::endgroup::"
echo "base_tag=$base_tag" >> $Env:GITHUB_OUTPUT
echo "base_build_image=$build_base_image" >> $Env:GITHUB_OUTPUT
- name: Verify ${{ env.BASE_IMAGE_NAME }}:${{ matrix.os }} cosign
env:
BASE_IMAGE: ${{ steps.base_build.outputs.base_build_image }}
OIDC_ISSUER: ${{ env.OIDC_ISSUER }}
IDENITY_REGEX: ${{ env.IDENITY_REGEX }}
run: |
cosign verify `
--certificate-oidc-issuer-regexp "$Env:OIDC_ISSUER" `
--certificate-identity-regexp "$Env:IDENITY_REGEX" `
"$Env:BASE_IMAGE" | jq
- name: Build and push image
id: docker_build
env:
DOCKERFILES_DIRECTORY: ${{ env.DOCKERFILES_DIRECTORY }}
BASE_BUILD_IMAGE: ${{ steps.base_build.outputs.base_build_image }}
BASE_BUILD_IMAGE_NAME: ${{ env.BASE_BUILD_IMAGE_NAME }}
BASE_BUILD_OS_TAG: ${{ steps.base_os_tag.outputs.os_tag }}
MATRIX_COMPONENT: ${{ matrix.component }}
TAGS: ${{ steps.meta.outputs.tags }}
LABEL_REVISION: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
LABEL_CREATED: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
AUTO_PUSH_IMAGES: ${{ env.AUTO_PUSH_IMAGES }}
run: |
echo "::group::Docker version"
docker version
echo "::endgroup::"
echo "::group::Docker info"
docker info
echo "::endgroup::"
$context="$Env:DOCKERFILES_DIRECTORY\$Env:BASE_BUILD_IMAGE_NAME\windows\"
$dockerfile= $context + 'Dockerfile.' + $Env:MATRIX_COMPONENT
$base_build_image= $Env:BASE_BUILD_IMAGE
# Can not build on GitHub due existing symlink. Must be removed before build process
Remove-Item -ErrorAction Ignore -Force -Path $context\README.md
$tags_array=$( "$Env:TAGS".Split("`n") )
$tags=$( $tags_array | Foreach-Object { "--tag=$_" } )
echo "::group::Image tags"
echo "$Env:TAGS"
echo "::endgroup::"
echo "::group::Pull base image"
docker pull $base_build_image
if (-not $?) {throw "Failed"}
echo "::endgroup::"
echo "::group::Build Image"
Write-Host @"
docker build --label org.opencontainers.image.revision=$Env:LABEL_REVISION
--label org.opencontainers.image.created=$Env:LABEL_CREATED
--build-arg=BUILD_BASE_IMAGE=$base_build_image
--file=$dockerfile
$tags
$context
"@
docker build --label org.opencontainers.image.revision=$Env:LABEL_REVISION `
--label org.opencontainers.image.created=$Env:LABEL_CREATED `
--build-arg=BUILD_BASE_IMAGE=$base_build_image `
--file=$dockerfile `
$tags `
$context
if (-not $?) {throw "Failed"}
echo "::endgroup::"
echo "::group::Publish Image"
if ( $Env:AUTO_PUSH_IMAGES -eq 'true' ) {
Foreach ($tag in $tags_array) {
echo "docker image push $tag"
docker image push $tag
if (-not $?) {throw "Failed"}
}
$digest=$(docker inspect $tags_array[0] --format "{{ index .RepoDigests 0}}").Split('@')[-1]
if (-not $?) {throw "Failed"}
echo "Image digest got from RepoDigests"
}
else {
$digest=$(docker inspect $tags_array[0] --format "{{ index .Id}}")
if (-not $?) {throw "Failed"}
echo "Image digest got from Id"
}
echo "::endgroup::"
echo "::group::Digest"
echo "$digest"
echo "::endgroup::"
echo "digest=$digest" >> $Env:GITHUB_OUTPUT
- name: Sign the images with GitHub OIDC Token
env:
DIGEST: ${{ steps.docker_build.outputs.digest }}
TAGS: ${{ steps.meta.outputs.tags }}
run: |
$tags_array=$( "$Env:TAGS".Split("`n") )
$tag_list=@()
foreach ($tag in $tags_array) {
$tag_name=$tag.Split(":")[0]
$tag_list+="$tag_name@$Env:DIGEST"
}
echo "::group::Images to sign"
echo "$tag_list"
echo "::endgroup::"
echo "::group::Signing"
echo "cosign sign --yes $tag_list"
cosign sign --yes $tag_list
echo "::endgroup::"
- name: Image digest
if: ${{ env.AUTO_PUSH_IMAGES }}
env:
DIGEST: ${{ steps.docker_build.outputs.digest }}
CACHE_FILE_NAME: ${{ env.BASE_BUILD_IMAGE_NAME }}_${{ matrix.os }}_${{ matrix.component }}
run: |
echo "::group::Image digest"
echo "$Env:DIGEST"
echo "::endgroup::"
echo "::group::Cache file name"
echo "$Env:CACHE_FILE_NAME"
echo "::endgroup::"
$Env:DIGEST | Set-Content -Path $Env:CACHE_FILE_NAME
- name: Cache image digest
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ${{ env.BASE_BUILD_IMAGE_NAME }}_${{ matrix.os }}_${{ matrix.component }}
key: ${{ env.BASE_BUILD_IMAGE_NAME }}-${{ matrix.os }}-${{ github.run_id }}
build_images:
name: Build ${{ matrix.component }} on ${{ matrix.os }}
needs: [ "build_components", "init_build"]
runs-on: ${{ matrix.os }}
timeout-minutes: 70
permissions:
contents: read
id-token: write
attestations: write
strategy:
fail-fast: false
matrix:
os: ${{ fromJson(needs.init_build.outputs.os) }}
component: ${{ fromJson(needs.init_build.outputs.components) }}
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
ref: ${{ env.TRUNK_ONLY_EVENT == 'true' && env.TRUNK_GIT_BRANCH || '' }}
fetch-depth: 1
- name: Install cosign
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad
with:
cosign-release: 'v2.4.0'
- name: Check cosign version
run: cosign version
- name: Login to DockerHub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Base OS tag
id: base_os_tag
env:
MATRIX_OS: ${{ matrix.os }}
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
$os_tag=$(Get-Content -Path $Env:MATRIX_FILE | ConvertFrom-Json).'os-windows'."$Env:MATRIX_OS"
echo "::group::Base OS tag"
echo "$os_tag"
echo "::endgroup::"
echo "os_tag=$os_tag" >> $Env:GITHUB_OUTPUT
- name: Generate tags
id: meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
with:
images: ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_REPOSITORY }}/${{ env.IMAGES_PREFIX }}${{ matrix.component }}
context: ${{ env.TRUNK_ONLY_EVENT == 'true' && 'git' || '' }}
tags: |
type=semver,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},pattern={{version}},prefix=${{ steps.base_os_tag.outputs.os_tag }}-
type=semver,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},pattern={{version}},suffix=-${{ steps.base_os_tag.outputs.os_tag }}
type=ref,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},event=branch,prefix=${{ steps.base_os_tag.outputs.os_tag }}-,suffix=-latest
type=ref,enable=${{ needs.init_build.outputs.current_branch != 'trunk' }},event=branch,suffix=-${{ steps.base_os_tag.outputs.os_tag }}-latest
type=raw,enable=${{ (needs.init_build.outputs.current_branch != 'trunk') && (needs.init_build.outputs.is_default_branch == 'true') }},value=${{ steps.base_os_tag.outputs.os_tag }}-latest
type=ref,enable=${{ needs.init_build.outputs.current_branch == 'trunk' }},event=branch,prefix=${{ steps.base_os_tag.outputs.os_tag }}-
type=ref,enable=${{ needs.init_build.outputs.current_branch == 'trunk' }},event=branch,suffix=-${{ steps.base_os_tag.outputs.os_tag }}
flavor: |
latest=false
- name: Download SHA256 tag of ${{ env.BASE_BUILD_IMAGE_NAME }}:${{ matrix.os }}
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ${{ env.BASE_BUILD_IMAGE_NAME }}_${{ matrix.os }}_${{ matrix.component }}
key: ${{ env.BASE_BUILD_IMAGE_NAME }}-${{ matrix.os }}-${{ github.run_id }}
- name: Retrieve ${{ env.BASE_BUILD_IMAGE_NAME }}:${{ matrix.os }} SHA256 tag
id: base_build
env:
BASE_BUILD_IMAGE_NAME: ${{ env.BASE_BUILD_IMAGE_NAME }}
MATRIX_OS: ${{ matrix.os }}
MATRIX_COMPONENT: ${{ matrix.component }}
DOCKER_REPOSITORY: ${{ env.DOCKER_REPOSITORY }}
IMAGES_PREFIX: ${{ env.IMAGES_PREFIX }}
run: |
$base_image_file=$Env:BASE_BUILD_IMAGE_NAME + '_' + $Env:MATRIX_OS + '_' + $Env:MATRIX_COMPONENT
$base_tag = Get-Content $base_image_file -Raw
$build_base_image="$Env:DOCKER_REPOSITORY/$Env:IMAGES_PREFIX$Env:BASE_BUILD_IMAGE_NAME@" + $base_tag
echo "::group::Base image Info"
echo "base_tag=$base_tag"
echo "base_build_image=$build_base_image"
echo "::endgroup::"
echo "base_tag=$base_tag" >> $Env:GITHUB_OUTPUT
echo "base_build_image=$build_base_image" >> $Env:GITHUB_OUTPUT
- name: Verify ${{ env.BASE_BUILD_IMAGE_NAME }}:${{ matrix.os }} cosign
env:
BASE_IMAGE: ${{ steps.base_build.outputs.base_build_image }}
OIDC_ISSUER: ${{ env.OIDC_ISSUER }}
IDENITY_REGEX: ${{ env.IDENITY_REGEX }}
run: |
cosign verify `
--certificate-oidc-issuer-regexp "$Env:OIDC_ISSUER" `
--certificate-identity-regexp "$Env:IDENITY_REGEX" `
"$Env:BASE_IMAGE" | jq
- name: Build and push image
id: docker_build
env:
DOCKERFILES_DIRECTORY: ${{ env.DOCKERFILES_DIRECTORY }}
BASE_BUILD_IMAGE: ${{ steps.base_build.outputs.base_build_image }}
BASE_BUILD_IMAGE_NAME: ${{ env.BASE_BUILD_IMAGE_NAME }}
MATRIX_COMPONENT: ${{ matrix.component }}
TAGS: ${{ steps.meta.outputs.tags }}
BASE_BUILD_OS_TAG: ${{ steps.base_os_tag.outputs.os_tag }}
LABEL_REVISION: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
LABEL_CREATED: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
OS_BASE_IMAGE_NAME: ${{ env.OS_BASE_IMAGE_NAME }}
AUTO_PUSH_IMAGES: ${{ env.AUTO_PUSH_IMAGES }}
run: |
echo "::group::Docker version"
docker version
echo "::endgroup::"
echo "::group::Docker info"
docker info
echo "::endgroup::"
$context="$Env:DOCKERFILES_DIRECTORY\$Env:MATRIX_COMPONENT\windows\"
$dockerfile= $context + 'Dockerfile'
$base_build_image= $Env:BASE_BUILD_IMAGE
# Can not build on GitHub due existing symlink. Must be removed before build process
Remove-Item -ErrorAction Ignore -Force -Path $context\README.md
$tags_array=$( "$Env:TAGS".Split("`n") )
$tags=$( $tags_array | Foreach-Object { "--tag=$_" } )
# PowerShell images based on LTSC 2019 and LTSC 2016 do not have "ltsc" prefix
$os_tag_suffix=$Env:BASE_BUILD_OS_TAG
# $os_tag_suffix=$os_tag_suffix -replace "ltsc2019",'1809'
$base_image=$Env:OS_BASE_IMAGE_NAME + ':' + $os_tag_suffix
echo "::group::Image tags"
echo "$Env:TAGS"
echo "::endgroup::"
echo "::group::Pull build base image"
docker pull $base_build_image
if (-not $?) {throw "Failed"}
echo "::endgroup::"
echo "::group::Pull Powershell base image"
docker pull $base_image
if (-not $?) {throw "Failed"}
echo "::endgroup::"
echo "::group::Build Image"
Write-Host @"
docker build --label org.opencontainers.image.revision=$Env:LABEL_REVISION
--label org.opencontainers.image.created=$Env:LABEL_CREATED
--build-arg=BUILD_BASE_IMAGE=$base_build_image
--build-arg=OS_BASE_IMAGE=$base_image
--file=$dockerfile
$tags
$context
"@
docker build --label org.opencontainers.image.revision=$Env:LABEL_REVISION `
--label org.opencontainers.image.created=$Env:LABEL_CREATED `
--build-arg=BUILD_BASE_IMAGE=$base_build_image `
--build-arg=OS_BASE_IMAGE=$base_image `
--file=$dockerfile `
$tags `
$context
if (-not $?) {throw "Failed"}
echo "::endgroup::"
echo "::group::Publish Image"
if ( $Env:AUTO_PUSH_IMAGES -eq 'true' ) {
Foreach ($tag in $tags_array) {
echo "docker image push $tag"
docker image push $tag
if (-not $?) {throw "Failed"}
}
$digest=$(docker inspect $tags_array[0] --format "{{ index .RepoDigests 0}}").Split('@')[-1]
if (-not $?) {throw "Failed"}
echo "Image digest got from RepoDigests"
}
else {
$digest=$(docker inspect $tags_array[0] --format "{{ index .Id}}")
if (-not $?) {throw "Failed"}
echo "Image digest got from Id"
}
echo "::endgroup::"
echo "::group::Digest"
echo "$digest"
echo "::endgroup::"
echo "digest=$digest" >> $Env:GITHUB_OUTPUT
- name: Sign the images with GitHub OIDC Token
env:
DIGEST: ${{ steps.docker_build.outputs.digest }}
TAGS: ${{ steps.meta.outputs.tags }}
run: |
$tags_array=$( "$Env:TAGS".Split("`n") )
$tag_list=@()
foreach ($tag in $tags_array) {
$tag_name=$tag.Split(":")[0]
$tag_list+="$tag_name@$Env:DIGEST"
}
echo "::group::Images to sign"
echo "$tag_list"
echo "::endgroup::"
echo "::group::Signing"
echo "cosign sign --yes $tag_list"
cosign sign --yes $tag_list
echo "::endgroup::"
- name: Image digest
if: ${{ env.AUTO_PUSH_IMAGES }}
env:
DIGEST: ${{ steps.docker_build.outputs.digest }}
run: |
echo "::group::Image digest"
echo "$Env:DIGEST"
echo "::endgroup::"

View File

@ -0,0 +1,157 @@
name: Red Hat Catalog Description
on:
push:
branches:
- '[0-9]+.[0-9]+'
paths:
- 'Dockerfiles/*/rhel/README.html'
- 'Dockerfiles/*/README.md'
- 'Dockerfiles/*/rhel/README.md'
- '.github/workflows/rhel_registry_description.yml'
workflow_dispatch:
env:
DOCKERFILES_DIRECTORY: "./Dockerfiles"
API_URL: "https://catalog.redhat.com/api/containers/v1/projects/certification/id/"
MATRIX_FILE: "build.json"
defaults:
run:
shell: bash
permissions:
contents: read
jobs:
init:
name: Initialize workflow
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
components: ${{ steps.components.outputs.list }}
zabbix_release: ${{ steps.branch_info.outputs.zabbix_release }}
steps:
- name: Block egress traffic
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
github.com:443
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 1
sparse-checkout: ${{ env.MATRIX_FILE }}
- name: Check ${{ env.MATRIX_FILE }} file
id: build_exists
env:
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
if [[ ! -f "$MATRIX_FILE" ]]; then
echo "::error::File $MATRIX_FILE is missing"
exit 1
fi
- name: Get branch info
id: branch_info
shell: bash
env:
github_ref: ${{ github.ref }}
run: |
result=false
github_ref=${github_ref##*/}
echo "::group::Branch metadata"
echo "zabbix_release=${github_ref//.}"
echo "::endgroup::"
echo "zabbix_release=${github_ref//.}" >> $GITHUB_OUTPUT
- name: Prepare Zabbix component list
id: components
env:
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
component_list=$(jq -r '.components | map_values(select(.rhel == true)) | keys | @json' "$MATRIX_FILE")
echo "::group::Zabbix Component List"
echo "$component_list"
echo "::endgroup::"
echo "list=$component_list" >> $GITHUB_OUTPUT
publish:
name: Initialize build
runs-on: ubuntu-latest
needs: init
permissions:
contents: read
strategy:
fail-fast: false
matrix:
component: ${{ fromJson(needs.init.outputs.components) }}
steps:
- name: Block egress traffic
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
catalog.redhat.com:443
files.pythonhosted.org:443
github.com:443
pypi.org:443
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 1
- name: Variables formating
id: var_format
env:
MATRIX_BUILD: ${{ matrix.component }}
run: |
MATRIX_BUILD=${MATRIX_BUILD^^}
MATRIX_BUILD=${MATRIX_BUILD//-/_}
echo "::group::Result"
echo "matrix_build=${MATRIX_BUILD}"
echo "::endgroup::"
echo "matrix_build=${MATRIX_BUILD}" >> $GITHUB_OUTPUT
- name: Setup Python 3.x
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: '3.x'
- name: Install Python packages
run: |
python -m pip install --upgrade pip
pip install markdown requests
- name: Update Red Hat project description
env:
DESCRIPTION_FILE: ${{ format('{0}/{1}/rhel/README', env.DOCKERFILES_DIRECTORY, matrix.component) }}
PROJECT_ID: ${{ secrets[format('RHEL_{0}_{1}_PROJECT', needs.init.outputs.zabbix_release, steps.var_format.outputs.matrix_build)] }}
PYXIS_API_TOKEN: ${{ secrets.REDHAT_API_TOKEN }}
API_URL: ${{ env.API_URL }}
run: |
python ./.github/scripts/rhel_description.py
- name: Red Hat Gatalog URL
env:
COMPONENT: ${{ matrix.component }}
MATRIX_FILE: ${{ env.MATRIX_FILE }}
run: |
PROJECT_ID=$(jq -r ".components.\"$COMPONENT\".rhel_project" "$MATRIX_FILE")
echo "::group::URL"
echo "https://catalog.redhat.com/software/containers/${PROJECT_ID}"
echo "::endgroup::"

78
.github/workflows/scorecard.yml vendored Normal file
View File

@ -0,0 +1,78 @@
# This workflow uses actions that are not certified by GitHub. They are provided
# by a third-party and are governed by separate terms of service, privacy
# policy, and support documentation.
name: Scorecard supply-chain security
on:
# For Branch-Protection check. Only the default branch is supported. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
branch_protection_rule:
# To guarantee Maintained check is occasionally updated. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
schedule:
- cron: '39 3 * * 2'
push:
branches:
- '7.2'
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Needed to publish results and get a badge (see publish_results below).
id-token: write
# Uncomment the permissions below if installing in a private repository.
# contents: read
# actions: read
steps:
- name: Harden Runner
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: "Checkout code"
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
with:
results_file: results.sarif
results_format: sarif
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
# - you want to enable the Branch-Protection check on a *public* repository, or
# - you are installing Scorecard on a *private* repository
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
# Public repositories:
# - Publish results to OpenSSF REST API for easy access by consumers
# - Allows the repository to include the Scorecard badge.
# - See https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories:
# - `publish_results` will always be set to `false`, regardless
# of the value entered here.
publish_results: true
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@1b168cd39490f61582a9beae412bb7057a6b2c4e # v4.31.8
with:
sarif_file: results.sarif

61
.github/workflows/sonarcloud.yml vendored Normal file
View File

@ -0,0 +1,61 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow helps you trigger a SonarCloud analysis of your code and populates
# GitHub Code Scanning alerts with the vulnerabilities found.
# Free for open source project.
# 1. Login to SonarCloud.io using your GitHub account
# 2. Import your project on SonarCloud
# * Add your GitHub organization first, then add your repository as a new project.
# * Please note that many languages are eligible for automatic analysis,
# which means that the analysis will start automatically without the need to set up GitHub Actions.
# * This behavior can be changed in Administration > Analysis Method.
#
# 3. Follow the SonarCloud in-product tutorial
# * a. Copy/paste the Project Key and the Organization Key into the args parameter below
# (You'll find this information in SonarCloud. Click on "Information" at the bottom left)
#
# * b. Generate a new token and add it to your Github repository's secrets using the name SONAR_TOKEN
# (On SonarCloud, click on your avatar on top-right > My account > Security
# or go directly to https://sonarcloud.io/account/security/)
# Feel free to take a look at our documentation (https://docs.sonarcloud.io/getting-started/github/)
# or reach out to our community forum if you need some help (https://community.sonarsource.com/c/help/sc/9)
name: SonarCloud analysis
on:
push:
branches: [ "7.4" ]
pull_request:
branches: [ "7.4" ]
workflow_dispatch:
permissions:
pull-requests: read # allows SonarCloud to decorate PRs with analysis results
jobs:
Analysis:
runs-on: ubuntu-latest
steps:
- name: Block egress traffic
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: Analyze with SonarCloud
uses: SonarSource/sonarqube-scan-action@v7.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # Generate a token on Sonarcloud.io, add it to the secrets of this repo with the name SONAR_TOKEN (Settings > Secrets > Actions > add new repository secret)

10
.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
**.DS_Store
zbx_env/
zbx_env*/
.*CERT_FILE
.*KEY_FILE
.*CA_FILE
Dockerfiles/*/rhel/secrets/*
sources/*
.*.orig
.*.rej

41
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,41 @@
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.16.3
hooks:
- id: gitleaks
- repo: https://github.com/jumanjihouse/pre-commit-hooks
rev: 3.0.0
hooks:
- id: shellcheck
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: end-of-file-fixer
exclude: |
(?x)(
^env_vars/\.MYSQL |
^env_vars/\.POSTGRES
)
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
exclude: |
(?x)(
.*\.patch$
)
- id: check-yaml
args: [--allow-multiple-documents]
- id: check-symlinks
# - id: pretty-format-json
- id: check-added-large-files
#- repo: https://github.com/adrienverge/yamllint.git
# rev: v1.21.0 # or higher tag
# hooks:
# - id: yamllint
# args: [--format, parsable, --strict]
#- repo: https://github.com/jumanjihouse/pre-commit-hook-yamlfmt
# rev: 0.2.3
# hooks:
# - id: yamlfmt
# args: [--mapping, '2', --sequence, '1', --offset, '0', --colons, --width, '400']

View File

@ -14,15 +14,17 @@ Zabbix agent is deployed on a monitoring target to actively monitor local resour
# Zabbix agent images
These are the only official Zabbix agent Docker images. They are based on Alpine Linux v3.4, Ubuntu 14.04 (trusty) and CentOS 7 images. The available versions of Zabbix agent are:
These are the only official Zabbix agent Docker images. They are based on Alpine Linux v3.23, Ubuntu 24.04 (noble), CentOS Stream 10, Oracle Linux 10, Windows 10 LTSC 2019 and Windows 11 LTSC 2022 images. The available versions of Zabbix agent are:
Zabbix agent 3.0 (tags: alpine-3.0-latest, ubuntu-3.0-latest, centos-3.0-latest)
Zabbix agent 3.0.* (tags: alpine-3.0.*, ubuntu-3.0.*, centos-3.0.*)
Zabbix agent 3.2 (tags: alpine-3.2-latest, ubuntu-3.2-latest, centos-3.2-latest)
Zabbix agent 3.2.* (tags: alpine-3.2.*, ubuntu-3.2.*, centos-3.2.*)
Zabbix agent 3.4 (tags: alpine-3.4-latest, ubuntu-3.4-latest, centos-3.4-latest, alpine-latest, ubuntu-latest, centos-latest, latest)
Zabbix agent 3.4.* (tags: alpine-3.4.*, ubuntu-3.4.*, centos-3.4.*)
Zabbix agent 4.0 (tags: alpine-trunk, ubuntu-trunk, centos-trunk)
Zabbix agent 6.0 (tags: alpine-6.0-latest, ubuntu-6.0-latest, ol-6.0-latest)
Zabbix agent 6.0.* (tags: alpine-6.0.*, ubuntu-6.0.*, ol-6.0.*, ltsc2019-6.0.*, ltsc2022-6.0.*)
Zabbix agent 7.0 (tags: alpine-7.0-latest, ubuntu-7.0-latest, ol-7.0-latest)
Zabbix agent 7.0.* (tags: alpine-7.0.*, ubuntu-7.0.*, ol-7.0.*, ltsc2019-7.0.*, ltsc2022-7.0.*)
Zabbix agent 7.2 (tags: alpine-7.2-latest, ubuntu-7.2-latest, ol-7.2-latest)
Zabbix agent 7.2.* (tags: alpine-7.2.*, ubuntu-7.2.*, ol-7.2.*, ltsc2019-7.2.*, ltsc2022-7.2.*)
Zabbix agent 7.4 (tags: alpine-7.4-latest, ubuntu-7.4-latest, ol-7.4-latest, alpine-latest, ubuntu-latest, ol-latest, ltsc2019-latest, ltsc2022-latest, latest)
Zabbix agent 7.4.* (tags: alpine-7.4.*, ubuntu-7.4.*, ol-7.4.*, ltsc2019-7.4.*, ltsc2022-7.4.*)
Zabbix agent 8.0 (tags: alpine-trunk, ubuntu-trunk, ol-trunk, ltsc2019-trunk, ltsc2022-trunk)
Images are updated when new releases are published. The image with ``latest`` tag is based on Alpine Linux.
@ -32,7 +34,7 @@ Images are updated when new releases are published. The image with ``latest`` ta
Start a Zabbix agent container as follows:
docker run --name some-zabbix-agent -e ZBX_HOSTNAME="some-hostname" -e ZBX_SERVER_HOST="some-zabbix-server" -d zabbix/zabbix-agent:tag
docker run --name some-zabbix-agent -e ZBX_HOSTNAME="some-hostname" -e ZBX_SERVER_HOST="some-zabbix-server" --init -d zabbix/zabbix-agent:tag
Where `some-zabbix-agent` is the name you want to assign to your container, `some-hostname` is the hostname, it is Hostname parameter in Zabbix agent configuration file, `some-zabbix-server` is IP or DNS name of Zabbix server or proxy and `tag` is the tag specifying the version you want. See the list above for relevant tags, or look at the [full list of tags](https://hub.docker.com/r/zabbix/zabbix-agent/tags/).
@ -41,7 +43,7 @@ Where `some-zabbix-agent` is the name you want to assign to your container, `som
This image exposes the standard Zabbix agent port (``10050``) to perform passive checks, so container linking makes Zabbix agent instance available to Zabbix server and Zabbix proxy containers. Start your application container like this in order to link it to the Zabbix agent container:
```console
$ docker run --name some-zabbix-server --link some-zabbix-agent:zabbix-agent -d zabbix/zabbix-server:latest
$ docker run --name some-zabbix-server --link some-zabbix-agent:zabbix-agent --init -d zabbix/zabbix-server:latest
```
## Connect to Zabbix server or Zabbix proxy containers (Active checks)
@ -49,7 +51,7 @@ $ docker run --name some-zabbix-server --link some-zabbix-agent:zabbix-agent -d
This image supports perform active checks, so container linking makes Zabbix server and Zabbix proxy containers available to Zabbix agent instance. Start your application container like this in order to link Zabbix agent to Zabbix server or Zabbix proxy containterns:
```console
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -d zabbix/zabbix-agent:latest
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server --init -d zabbix/zabbix-agent:latest
```
## Container shell access and viewing Zabbix agent logs
@ -71,10 +73,10 @@ $ docker logs some-zabbix-agent
By default, Docker containers are "unprivileged" and do not have access to the most of host resources. Zabbix agent is designed to monitor system resources, to do that Zabbix agent container must be privileged or you may mount some system-wide volumes. For example:
```console
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server --privileged -d zabbix/zabbix-agent:latest
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server --privileged --init -d zabbix/zabbix-agent:latest
```
```console
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -v /dev/sdc:/dev/sdc -d zabbix/zabbix-agent:latest
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -v /dev/sdc:/dev/sdc --init -d zabbix/zabbix-agent:latest
```
## Environment Variables
@ -129,8 +131,11 @@ Additionally the image allows to specify many other environment variables listed
```
ZBX_SOURCEIP=
ZBX_ENABLEREMOTECOMMANDS=0
ZBX_ENABLEREMOTECOMMANDS=0 # Deprecated since 5.0.0
ZBX_LOGREMOTECOMMANDS=0
ZBX_HEARTBEAT_FREQUENCY=60 # Available since 6.2.0
ZBX_HOSTINTERFACE= # Available since 4.4.0
ZBX_HOSTINTERFACEITEM= # Available since 4.4.0
ZBX_STARTAGENTS=3
ZBX_HOSTNAMEITEM=system.hostname
ZBX_METADATA=
@ -140,24 +145,39 @@ ZBX_BUFFERSEND=5
ZBX_BUFFERSIZE=100
ZBX_MAXLINESPERSECOND=20
ZBX_LISTENIP=
ZBX_LISTENPORT=10050
ZBX_LISTENBACKLOG=
ZBX_UNSAFEUSERPARAMETERS=0
ZBX_TLSCONNECT=unencrypted
ZBX_TLSACCEPT=unencrypted
ZBX_TLSCAFILE=
ZBX_TLSCA=
ZBX_TLSCRLFILE=
ZBX_TLSCRL=
ZBX_TLSSERVERCERTISSUER=
ZBX_TLSSERVERCERTSUBJECT=
ZBX_TLSCERTFILE=
ZBX_TLSCERT=
ZBX_TLSKEYFILE=
ZBX_TLSKEY=
ZBX_TLSPSKIDENTITY=
ZBX_TLSPSKFILE=
ZBX_TLSPSK=
ZBX_TLSCIPHERALL= # Available since 4.4.7
ZBX_TLSCIPHERALL13= # Available since 4.4.7
ZBX_TLSCIPHERCERT= # Available since 4.4.7
ZBX_TLSCIPHERCERT13= # Available since 4.4.7
ZBX_TLSCIPHERPSK= # Available since 4.4.7
ZBX_TLSCIPHERPSK13= # Available since 4.4.7
ZBX_DENYKEY=system.run[*] # Available since 5.0.0
ZBX_ALLOWKEY= # Available since 5.0.0
```
Default values of these variables are specified after equal sign.
The allowed variables are identical of parameters in official ``zabbix_agentd.conf`` configuration file. For example, ``ZBX_REFRESHACTIVECHECKS`` = ``RefreshActiveChecks``.
Please use official documentation for [``zabbix_agentd.conf``](https://www.zabbix.com/documentation/3.0/manual/appendix/config/zabbix_agentd) to get more information about the variables.
Please use official documentation for [``zabbix_agentd.conf``](https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_agentd) to get more information about the variables.
## Allowed volumes for the Zabbix agent container
@ -171,16 +191,12 @@ The volume allows load additional modules and extend Zabbix agent using ``LoadMo
### ``/var/lib/zabbix/enc``
The volume is used to store TLS related files. These file names are specified using ``ZBX_TLSCAFILE``, ``ZBX_TLSCRLFILE``, ``ZBX_TLSKEY_FILE`` and ``ZBX_TLSPSKFILE`` variables.
The volume is used to store TLS related files. These file names are specified using ``ZBX_TLSCAFILE``, ``ZBX_TLSCRLFILE``, ``ZBX_TLSCERTFILE``, ``ZBX_TLSKEYFILE`` and ``ZBX_TLSPSKFILE`` variables. Additionally it is possible to use environment variables ``ZBX_TLSCA``, ``ZBX_TLSCRL``, ``ZBX_TLSCERT``, ``ZBX_TLSKEY`` and ``ZBX_TLSPSK`` with plaintext values.
# The image variants
The `zabbix-agent` images come in many flavors, each designed for a specific use case.
## `zabbix-agent:ubuntu-<version>`
This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
## `zabbix-agent:alpine-<version>`
This image is based on the popular [Alpine Linux project](http://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
@ -189,6 +205,14 @@ This variant is highly recommended when final image size being as small as possi
To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar).
## `zabbix-agent:ubuntu-<version>`
This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
## `zabbix-agent:ol-<version>`
Oracle Linux is an open-source operating system available under the GNU General Public License (GPLv2). Suitable for general purpose or Oracle workloads, it benefits from rigorous testing of more than 128,000 hours per day with real-world workloads and includes unique innovations such as Ksplice for zero-downtime kernel patching, DTrace for real-time diagnostics, the powerful Btrfs file system, and more.
# Supported Docker versions
This image is officially supported on Docker version 1.12.0.
@ -201,7 +225,7 @@ Please see [the Docker installation documentation](https://docs.docker.com/insta
## Documentation
Documentation for this image is stored in the [`agent/` directory](https://github.com/zabbix/zabbix-docker/tree/3.0/agent) of the [`zabbix/zabbix-docker` GitHub repo](https://github.com/zabbix/zabbix-docker/). Be sure to familiarize yourself with the [repository's `README.md` file](https://github.com/zabbix/zabbix-docker/blob/master/README.md) before attempting a pull request.
Documentation for this image is stored in the [`agent/` directory](https://github.com/zabbix/zabbix-docker/tree/7.4/Dockerfiles/agent) of the [`zabbix/zabbix-docker` GitHub repo](https://github.com/zabbix/zabbix-docker/). Be sure to familiarize yourself with the [repository's `README.md` file](https://github.com/zabbix/zabbix-docker/blob/7.4/README.md) before attempting a pull request.
## Issues
@ -216,3 +240,12 @@ Currently it is not allowed to specify ``ZBX_ALIAS`` environment variable. Pleas
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
Before you start to code, we recommend discussing your plans through a [GitHub issue](https://github.com/zabbix/zabbix-docker/issues), especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
## License
Starting from Zabbix version 7.0, all subsequent Zabbix versions will be released under the GNU Affero General Public License version 3 (AGPLv3).
You can modify the relevant version and propagate such modified version under the terms of the AGPLv3 as published by the Free Software Foundation.
For additional details, including answers to common questions about the AGPLv3, see the generic FAQ from the [Free Software Foundation](http://www.fsf.org/licenses/gpl-faq.html).
Zabbix is Open Source Software, however, if you use Zabbix in a commercial context we kindly ask you to support the development of Zabbix by purchasing some level of technical support.
All previous Zabbix software versions up to 6.4 are released under the GNU General Public License version 2 (GPLv2). The formal terms of the GPLv2 and AGPLv3 can be found at http://www.fsf.org/licenses/.

View File

@ -0,0 +1,102 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=alpine:3.23
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:alpine-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_LOADMODULEPATH="${ZABBIX_USER_HOME_DIR}/modules" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.source="${ZBX_SOURCES}" \
org.opencontainers.image.title="Zabbix agent" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"]
RUN set -eux && \
INSTALL_PKGS="bash \
tzdata \
coreutils \
iputils \
c-ares \
pcre2 \
libgcc \
libcurl \
libmodbus \
libldap \
zlib" && \
apk add \
--no-cache \
--clean-protected \
${INSTALL_PKGS} && \
addgroup \
--system \
--gid 1995 \
zabbix && \
adduser \
--system \
--gecos "Zabbix monitoring system" \
--disabled-password \
--uid 1997 \
--ingroup zabbix \
--shell /sbin/nologin \
--home ${ZABBIX_USER_HOME_DIR} \
zabbix && \
mkdir -p ${ZABBIX_CONF_DIR} && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agentd -V
EXPOSE 10050/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agentd", "--foreground", "-c", "/etc/zabbix/zabbix_agentd.conf"]

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,220 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
ZBX_SERVER_HOST=${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
ZBX_SERVER_PORT=${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf" "LoadModule" "${ZBX_LOADMODULE}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
if [ "$(id -u)" != '0' ]; then
export ZBX_USER="$(whoami)"
else
export ZBX_ALLOWROOT=1
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agentd "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agentd' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,121 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=quay.io/centos/centos:stream10-minimal
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:centos-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_LOADMODULEPATH="${ZABBIX_USER_HOME_DIR}/modules" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.source="${ZBX_SOURCES}" \
org.opencontainers.image.title="Zabbix agent" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="bash \
iputils \
c-ares \
pcre2 \
libcurl-minimal \
# libmodbus \
openssl-libs \
openldap \
shadow-utils \
zlib" && \
microdnf -y install \
--disablerepo "*" \
--enablerepo "extras-common" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs epel-release && \
microdnf -y install \
--disablerepo "*" \
--enablerepo "baseos" \
--enablerepo "appstream" \
--enablerepo="epel" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs ${INSTALL_PKGS} && \
microdnf -y reinstall \
--enablerepo "baseos" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--setopt=tsflags=nodocs \
tzdata && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
mkdir -p ${ZABBIX_CONF_DIR}/ && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agentd -V
EXPOSE 10050/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agentd", "--foreground", "-c", "/etc/zabbix/zabbix_agentd.conf"]

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,220 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
ZBX_SERVER_HOST=${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
ZBX_SERVER_PORT=${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf" "LoadModule" "${ZBX_LOADMODULE}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
if [ "$(id -u)" != '0' ]; then
export ZBX_USER="$(whoami)"
else
export ZBX_ALLOWROOT=1
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agentd "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agentd' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,107 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:ol-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_LOADMODULEPATH="${ZABBIX_USER_HOME_DIR}/modules" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.source="${ZBX_SOURCES}" \
org.opencontainers.image.title="Zabbix agent" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"]
COPY ["conf/etc/yum.repos.d/oracle-epel-ol10.repo", "/etc/yum.repos.d/oracle-epel-ol10.repo"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="bash \
iputils \
c-ares \
pcre2 \
libcurl \
# libmodbus \
openssl-libs \
zlib" && \
microdnf -y install \
--disablerepo="*" \
--enablerepo="ol10_baseos_latest" \
--enablerepo="ol10_appstream" \
--enablerepo="ol10_u0_developer_EPEL" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs \
${INSTALL_PKGS} && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
mkdir -p ${ZABBIX_CONF_DIR}/ && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agentd -V
EXPOSE 10050/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agentd", "--foreground", "-c", "/etc/zabbix/zabbix_agentd.conf"]

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,6 @@
[ol10_u0_developer_EPEL]
name=Oracle Linux $releasever.0 EPEL Packages for Development ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL10/0/developer/EPEL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

View File

@ -0,0 +1,220 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
ZBX_SERVER_HOST=${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
ZBX_SERVER_PORT=${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf" "LoadModule" "${ZBX_LOADMODULE}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
if [ "$(id -u)" != '0' ]; then
export ZBX_USER="$(whoami)"
else
export ZBX_ALLOWROOT=1
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agentd "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agentd' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,147 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=registry.access.redhat.com/ubi10/ubi-minimal:10.1
ARG MAJOR_VERSION=7.4
ARG RELEASE=6
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:rhel-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG RELEASE
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_LOADMODULEPATH="${ZABBIX_USER_HOME_DIR}/modules" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \
maintainer="alexey.pustovalov@zabbix.com" \
name="zabbix/zabbix-agent-74" \
release="${RELEASE}" \
run="podman run --name zabbix-agent -p 10050:10050 -d registry.connect.redhat.com/zabbix/zabbix-agent-74:${ZBX_VERSION}" \
summary="Zabbix agent" \
url="https://www.zabbix.com/" \
vendor="Zabbix SIA" \
version="${MAJOR_VERSION}" \
io.k8s.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \
io.k8s.display-name="Zabbix Agent" \
io.openshift.expose-services="10050:10050" \
io.openshift.tags="zabbix,zabbix-agent" \
org.label-schema.build-date="${BUILD_DATE}" \
org.label-schema.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \
org.label-schema.docker.cmd="podman run --name zabbix-agent -p 10050:10050 -d registry.connect.redhat.com/zabbix/zabbix-agent-74:${ZBX_VERSION}" \
org.label-schema.license="AGPL v3.0" \
org.label-schema.name="zabbix-agent-rhel" \
org.label-schema.schema-version="1.0" \
org.label-schema.url="https://zabbix.com/" \
org.label-schema.usage="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.label-schema.vcs-ref="${VCS_REF}" \
org.label-schema.vcs-url="${ZBX_SOURCES}" \
org.label-schema.vendor="Zabbix SIA" \
org.label-schema.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY ["licenses", "/licenses"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="bash \
iputils \
shadow-utils \
c-ares \
pcre2 \
# libmodbus \
libcurl-minimal \
openldap \
zlib" && \
curl --tlsv1.2 -sSf -L https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm -o /tmp/epel-release-latest-10.noarch.rpm && \
rpm -ivh /tmp/epel-release-latest-10.noarch.rpm && \
rm -rf /tmp/epel-release-latest-10.noarch.rpm && \
ARCH_SUFFIX="$(arch)"; \
microdnf -y install \
--disablerepo "*" \
--enablerepo "ubi-10-baseos-rpms" \
--enablerepo "rhel-10-for-$ARCH_SUFFIX-baseos-rpms" \
--enablerepo "epel" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--setopt=tsflags=nodocs \
${INSTALL_PKGS} && \
microdnf -y update \
--disableplugin=subscription-manager \
--disablerepo "*" \
--enablerepo "ubi-10-baseos-rpms" \
--setopt=install_weak_deps=0 \
--best \
--setopt=tsflags=nodocs \
tzdata && \
# microdnf -y reinstall \
# --disableplugin=subscription-manager \
# --disablerepo "*" \
# --enablerepo "ubi-10-baseos-rpms" \
# --setopt=install_weak_deps=0 \
# --setopt=keepcache=0 \
# --best \
# --setopt=tsflags=nodocs \
# tzdata && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
mkdir -p ${ZABBIX_CONF_DIR}/ && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agentd -V
EXPOSE 10050/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agentd", "--foreground", "-c", "/etc/zabbix/zabbix_agentd.conf"]

View File

@ -0,0 +1,121 @@
<p><img src="https://assets.zabbix.com/img/logo/zabbix_logo_500x131.png" alt="logo"></p>
<h1 id="what-is-zabbix-">What is Zabbix?</h1>
<p>Zabbix is an enterprise-class open source distributed monitoring solution.</p>
<p>Zabbix is software that monitors numerous parameters of a network and the health and integrity of servers. Zabbix uses a flexible notification mechanism that allows users to configure e-mail based alerts for virtually any event. This allows a fast reaction to server problems. Zabbix offers excellent reporting and data visualisation features based on the stored data. This makes Zabbix ideal for capacity planning.</p>
<p>For more information and related downloads for Zabbix components, please visit <a href="https://hub.docker.com/u/zabbix/">https://hub.docker.com/u/zabbix/</a> and <a href="https://zabbix.com">https://zabbix.com</a></p>
<h1 id="what-is-zabbix-agent-">What is Zabbix agent?</h1>
<p>Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications (hard drives, memory, processor statistics etc).</p>
<h1 id="zabbix-agent-images">Zabbix agent images</h1>
<p>These are the only official Zabbix agent Docker images.</p>
<h1 id="how-to-use-this-image">How to use this image</h1>
<h2 id="start-zabbix-agent-">Start <code>zabbix-agent</code></h2>
<p>Start a Zabbix agent container as follows:</p>
<pre><code>podman <span class="hljs-keyword">run</span><span class="bash"> --name some-zabbix-agent <span class="hljs-_">-e</span> ZBX_HOSTNAME=<span class="hljs-string">"some-hostname"</span> <span class="hljs-_">-e</span> ZBX_SERVER_HOST=<span class="hljs-string">"some-zabbix-server"</span> --init <span class="hljs-_">-d</span> zabbix/zabbix-agent:tag</span>
</code></pre><p>Where <code>some-zabbix-agent</code> is the name you want to assign to your container, <code>some-hostname</code> is the hostname, it is Hostname parameter in Zabbix agent configuration file, <code>some-zabbix-server</code> is IP or DNS name of Zabbix server or proxy and <code>tag</code> is the tag specifying the version you want.</p>
<h2 id="connects-from-zabbix-server-or-zabbix-proxy-in-other-containers-passive-checks-">Connects from Zabbix server or Zabbix proxy in other containers (Passive checks)</h2>
<p>This image exposes the standard Zabbix agent port (<code>10050</code>) to perform passive checks, so container linking makes Zabbix agent instance available to Zabbix server and Zabbix proxy containers. Start your application container like this in order to link it to the Zabbix agent container:</p>
<pre><code class="lang-console"><span class="hljs-comment">$</span> <span class="hljs-comment">podman</span> <span class="hljs-comment">run</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">name</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">link</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent:zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">init</span> <span class="hljs-literal">-</span><span class="hljs-comment">d</span> <span class="hljs-comment">zabbix/zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server:latest</span>
</code></pre>
<h2 id="connect-to-zabbix-server-or-zabbix-proxy-containers-active-checks-">Connect to Zabbix server or Zabbix proxy containers (Active checks)</h2>
<p>This image supports perform active checks, so container linking makes Zabbix server and Zabbix proxy containers available to Zabbix agent instance. Start your application container like this in order to link Zabbix agent to Zabbix server or Zabbix proxy containterns:</p>
<pre><code class="lang-console"><span class="hljs-comment">$</span> <span class="hljs-comment">podman</span> <span class="hljs-comment">run</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">name</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">link</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server:zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">init</span> <span class="hljs-literal">-</span><span class="hljs-comment">d</span> <span class="hljs-comment">zabbix/zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent:latest</span>
</code></pre>
<h2 id="container-shell-access-and-viewing-zabbix-agent-logs">Container shell access and viewing Zabbix agent logs</h2>
<p>The <code>podman exec</code> command allows you to run commands inside a Podman container. The following command line will give you a bash shell inside your <code>zabbix-agent</code> container:</p>
<pre><code class="lang-console">$ podman <span class="hljs-built_in">exec</span> -ti some-zabbix-<span class="hljs-built_in">agent</span> /bin/bash
</code></pre>
<p>The Zabbix agent log is available through Podman&#39;s container log:</p>
<pre><code class="lang-console">$ podman logs <span class="hljs-keyword">some</span>-zabbix-agent
</code></pre>
<h2 id="privileged-mode">Privileged mode</h2>
<p>By default, Podman containers are &quot;unprivileged&quot; and do not have access to the most of host resources. Zabbix agent is designed to monitor system resources, to do that Zabbix agent container must be privileged or you may mount some system-wide volumes. For example:</p>
<pre><code class="lang-console"><span class="hljs-comment">$</span> <span class="hljs-comment">podman</span> <span class="hljs-comment">run</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">name</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">link</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server:zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">privileged</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">init</span> <span class="hljs-literal">-</span><span class="hljs-comment">d</span> <span class="hljs-comment">zabbix/zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent:latest</span>
</code></pre>
<pre><code class="lang-console">$ podman run --name some-zabbix-agent --link some-zabbix-<span class="hljs-string">server:</span>zabbix-server -v <span class="hljs-regexp">/dev/</span><span class="hljs-string">sdc:</span><span class="hljs-regexp">/dev/</span>sdc --init -d zabbix/zabbix-<span class="hljs-string">agent:</span>latest
</code></pre>
<h2 id="environment-variables">Environment Variables</h2>
<p>When you start the <code>zabbix-agent</code> image, you can adjust the configuration of the Zabbix agent by passing one or more environment variables on the <code>podman run</code> command line.</p>
<h3 id="-zbx_hostname-"><code>ZBX_HOSTNAME</code></h3>
<p>This variable is unique, case sensitive hostname. By default, value is <code>hostname</code> of the container. It is <code>Hostname</code> parameter in <code>zabbix_agentd.conf</code>.</p>
<h3 id="-zbx_server_host-"><code>ZBX_SERVER_HOST</code></h3>
<p>This variable is IP or DNS name of Zabbix server or Zabbix proxy. By default, value is <code>zabbix-server</code>. It is <code>Server</code> parameter in <code>zabbix_agentd.conf</code>. It is allowed to specify Zabbix server or Zabbix proxy port number using <code>ZBX_SERVER_PORT</code> variable. It make sense in case of non-default port for active checks.</p>
<h3 id="-zbx_passive_allow-"><code>ZBX_PASSIVE_ALLOW</code></h3>
<p>This variable is boolean (<code>true</code> or <code>false</code>) and enables or disables feature of passive checks. By default, value is <code>true</code>.</p>
<h3 id="-zbx_passiveservers-"><code>ZBX_PASSIVESERVERS</code></h3>
<p>The variable is comma separated list of allowed Zabbix server or proxy hosts for connections to Zabbix agent container.</p>
<h3 id="-zbx_active_allow-"><code>ZBX_ACTIVE_ALLOW</code></h3>
<p>This variable is boolean (<code>true</code> or <code>false</code>) and enables or disables feature of active checks. By default, value is <code>true</code>.</p>
<h3 id="-zbx_activeservers-"><code>ZBX_ACTIVESERVERS</code></h3>
<p>The variable is comma separated list of allowed Zabbix server or proxy hosts for connections to Zabbix agent container. You may specify port of Zabbix server or Zabbix proxy in such syntax: <code>zabbix-server:10061,zabbix-proxy:10072</code>.</p>
<h3 id="-zbx_loadmodule-"><code>ZBX_LOADMODULE</code></h3>
<p>The variable is list of comma separated loadable Zabbix modules. It works with volume <code>/var/lib/zabbix/modules</code>. The syntax of the variable is <code>dummy1.so,dummy2.so</code>.</p>
<h3 id="-zbx_debuglevel-"><code>ZBX_DEBUGLEVEL</code></h3>
<p>The variable is used to specify debug level. By default, value is <code>3</code>. It is <code>DebugLevel</code> parameter in <code>zabbix_agentd.conf</code>. Allowed values are listed below:</p>
<ul>
<li><code>0</code> - basic information about starting and stopping of Zabbix processes;</li>
<li><code>1</code> - critical information</li>
<li><code>2</code> - error information</li>
<li><code>3</code> - warnings</li>
<li><code>4</code> - for debugging (produces lots of information)</li>
<li><code>5</code> - extended debugging (produces even more information)</li>
</ul>
<h3 id="-zbx_timeout-"><code>ZBX_TIMEOUT</code></h3>
<p>The variable is used to specify timeout for processing checks. By default, value is <code>3</code>.</p>
<h3 id="other-variables">Other variables</h3>
<p>Additionally the image allows to specify many other environment variables listed below:</p>
<pre><code><span class="hljs-attr">ZBX_SOURCEIP</span>=
<span class="hljs-attr">ZBX_ENABLEREMOTECOMMANDS</span>=<span class="hljs-number">0</span> # Deprecated since <span class="hljs-number">5.0</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_LOGREMOTECOMMANDS</span>=<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_HEARTBEAT_FREQUENCY</span>=<span class="hljs-number">60</span> # Available since <span class="hljs-number">6.2</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_HOSTINTERFACE</span>= # Available since <span class="hljs-number">4.4</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_HOSTINTERFACEITEM</span>= # Available since <span class="hljs-number">4.4</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_STARTAGENTS</span>=<span class="hljs-number">3</span>
<span class="hljs-attr">ZBX_HOSTNAMEITEM</span>=system.hostname
<span class="hljs-attr">ZBX_METADATA</span>=
<span class="hljs-attr">ZBX_METADATAITEM</span>=
<span class="hljs-attr">ZBX_REFRESHACTIVECHECKS</span>=<span class="hljs-number">120</span>
<span class="hljs-attr">ZBX_BUFFERSEND</span>=<span class="hljs-number">5</span>
<span class="hljs-attr">ZBX_BUFFERSIZE</span>=<span class="hljs-number">100</span>
<span class="hljs-attr">ZBX_MAXLINESPERSECOND</span>=<span class="hljs-number">20</span>
<span class="hljs-attr">ZBX_LISTENIP</span>=
<span class="hljs-attr">ZBX_LISTENPORT</span>=<span class="hljs-number">10050</span>
<span class="hljs-attr">ZBX_LISTENBACKLOG</span>=
<span class="hljs-attr">ZBX_UNSAFEUSERPARAMETERS</span>=<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_TLSCONNECT</span>=unencrypted
<span class="hljs-attr">ZBX_TLSACCEPT</span>=unencrypted
<span class="hljs-attr">ZBX_TLSCAFILE</span>=
<span class="hljs-attr">ZBX_TLSCRLFILE</span>=
<span class="hljs-attr">ZBX_TLSSERVERCERTISSUER</span>=
<span class="hljs-attr">ZBX_TLSSERVERCERTSUBJECT</span>=
<span class="hljs-attr">ZBX_TLSCERTFILE</span>=
<span class="hljs-attr">ZBX_TLSKEYFILE</span>=
<span class="hljs-attr">ZBX_TLSPSKIDENTITY</span>=
<span class="hljs-attr">ZBX_TLSPSKFILE</span>=
<span class="hljs-attr">ZBX_TLSCIPHERALL</span>= # Available since <span class="hljs-number">4.4</span>.<span class="hljs-number">7</span>
<span class="hljs-attr">ZBX_TLSCIPHERALL13</span>= # Available since <span class="hljs-number">4.4</span>.<span class="hljs-number">7</span>
<span class="hljs-attr">ZBX_TLSCIPHERCERT</span>= # Available since <span class="hljs-number">4.4</span>.<span class="hljs-number">7</span>
<span class="hljs-attr">ZBX_TLSCIPHERCERT13</span>= # Available since <span class="hljs-number">4.4</span>.<span class="hljs-number">7</span>
<span class="hljs-attr">ZBX_TLSCIPHERPSK</span>= # Available since <span class="hljs-number">4.4</span>.<span class="hljs-number">7</span>
<span class="hljs-attr">ZBX_TLSCIPHERPSK13</span>= # Available since <span class="hljs-number">4.4</span>.<span class="hljs-number">7</span>
<span class="hljs-attr">ZBX_DENYKEY</span>=system.run[*] # Available since <span class="hljs-number">5.0</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_ALLOWKEY</span>= # Available since <span class="hljs-number">5.0</span>.<span class="hljs-number">0</span>
</code></pre><p>Default values of these variables are specified after equal sign.</p>
<p>The allowed variables are identical of parameters in official <code>zabbix_agentd.conf</code> configuration file. For example, <code>ZBX_REFRESHACTIVECHECKS</code> = <code>RefreshActiveChecks</code>.</p>
<p>Please use official documentation for <a href="https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_agentd"><code>zabbix_agentd.conf</code></a> to get more information about the variables.</p>
<h2 id="allowed-volumes-for-the-zabbix-agent-container">Allowed volumes for the Zabbix agent container</h2>
<h3 id="-etc-zabbix-zabbix_agentd-d-"><code>/etc/zabbix/zabbix_agentd.d</code></h3>
<p>The volume allows include <code>*.conf</code> files and extend Zabbix agent using <code>UserParameter</code> feature.</p>
<h3 id="-var-lib-zabbix-modules-"><code>/var/lib/zabbix/modules</code></h3>
<p>The volume allows load additional modules and extend Zabbix agent using <code>LoadModule</code> feature.</p>
<h3 id="-var-lib-zabbix-enc-"><code>/var/lib/zabbix/enc</code></h3>
<p>The volume is used to store TLS related files. These file names are specified using <code>ZBX_TLSCAFILE</code>, <code>ZBX_TLSCRLFILE</code>, <code>ZBX_TLSKEY_FILE</code> and <code>ZBX_TLSPSKFILE</code> variables.</p>
<h1 id="user-feedback">User Feedback</h1>
<h2 id="documentation">Documentation</h2>
<p>Documentation for this image is stored in the <a href="https://github.com/zabbix/zabbix-docker/tree/7.4/Dockerfiles/agent"><code>agent/</code> directory</a> of the <a href="https://github.com/zabbix/zabbix-docker/"><code>zabbix/zabbix-docker</code> GitHub repo</a>. Be sure to familiarize yourself with the <a href="https://github.com/zabbix/zabbix-docker/blob/7.4/README.md">repository&#39;s <code>README.md</code> file</a> before attempting a pull request.</p>
<h2 id="issues">Issues</h2>
<p>If you have any problems with or questions about this image, please contact us through a <a href="https://github.com/zabbix/zabbix-docker/issues">GitHub issue</a>.</p>
<h3 id="known-issues">Known issues</h3>
<p>Currently it is not allowed to specify <code>ZBX_ALIAS</code> environment variable. Please use <code>/etc/zabbix/zabbix_agent.d</code> volume with additional configuration files with <code>Alias</code> options.</p>
<h2 id="contributing">Contributing</h2>
<p>You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.</p>
<p>Before you start to code, we recommend discussing your plans through a <a href="https://github.com/zabbix/zabbix-docker/issues">GitHub issue</a>, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.</p>

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,220 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
ZBX_SERVER_HOST=${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
ZBX_SERVER_PORT=${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf" "LoadModule" "${ZBX_LOADMODULE}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
if [ "$(id -u)" != '0' ]; then
export ZBX_USER="$(whoami)"
else
export ZBX_ALLOWROOT=1
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agentd "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agentd' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.

View File

@ -0,0 +1,104 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=ubuntu:noble
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:ubuntu-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_LOADMODULEPATH="${ZABBIX_USER_HOME_DIR}/modules" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.source="${ZBX_SOURCES}" \
org.opencontainers.image.title="Zabbix agent" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"]
RUN --mount=type=cache,target=/var/cache/apt/,sharing=locked \
--mount=type=cache,target=/var/lib/apt/,sharing=locked \
set -eux && \
echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d && \
INSTALL_PKGS="bash \
tzdata \
iputils-ping \
ca-certificates \
libcares2 \
libssl3t64 \
libcurl4t64 \
libmodbus5 \
libpcre2-8-0 \
libldap-2.4 \
zlib1g" && \
apt-get -y update && \
DEBIAN_FRONTEND=noninteractive apt-get -y \
--no-install-recommends install \
${INSTALL_PKGS} && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
mkdir -p ${ZABBIX_CONF_DIR}/ && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agentd -V
EXPOSE 10050/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agentd", "--foreground", "-c", "/etc/zabbix/zabbix_agentd.conf"]

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,220 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
ZBX_SERVER_HOST=${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
ZBX_SERVER_PORT=${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agentd_modules.conf" "LoadModule" "${ZBX_LOADMODULE}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
if [ "$(id -u)" != '0' ]; then
export ZBX_USER="$(whoami)"
else
export ZBX_ALLOWROOT=1
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agentd "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agentd' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,71 @@
# syntax=docker/dockerfile:1
# escape=`
ARG OS_BASE_IMAGE=mcr.microsoft.com/windows/nanoserver:ltsc2022
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-agent:ltsc2022-agent-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV ZABBIX_USER_HOME_DIR="C:\zabbix" `
ZABBIX_CONF_DIR="C:\zabbix\conf"
ENV ZBX_USERPARAMETERDIR="${ZABBIX_USER_HOME_DIR}\user_scripts"
LABEL org.opencontainers.image.title="Zabbix agent" `
org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" `
org.opencontainers.image.vendor="Zabbix SIA" `
org.opencontainers.image.url="https://zabbix.com/" `
org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" `
org.opencontainers.image.licenses="AGPL v3.0" `
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" `
org.opencontainers.image.version="${ZBX_VERSION}" `
org.opencontainers.image.source="${ZBX_SOURCES}"
COPY --from=builder ["C:\\zabbix-${ZBX_VERSION}-output", "C:\\zabbix"]
COPY --from=builder ["C:\\build_deps\\pwsh", "C:\\Program Files\\PowerShell"]
COPY [".\\docker-entrypoint.ps1", "C:\\zabbix"]
WORKDIR C:\zabbix\
USER ContainerAdministrator
RUN setx /M PATH "%PATH%;C:\Program Files\PowerShell"
SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop';"]
RUN $env:PATH = [string]::Format('{0}\zabbix\sbin;{0}\zabbix\bin;', $env:SystemDrive) + $env:PATH; `
[Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine); `
`
[Environment]::SetEnvironmentVariable('ZABBIX_USER_HOME_DIR', $env:ZABBIX_USER_HOME_DIR, [EnvironmentVariableTarget]::Machine); `
`
Write-Host ('Verifying Zabbix agent {0} ...' -f $env:ZBX_VERSION); `
zabbix_agentd.exe -V;
RUN Set-Location -Path $env:SystemDrive\.; `
`
New-Item -Force -ItemType directory -Path $env:ZABBIX_CONF_DIR | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZABBIX_CONF_DIR\zabbix_agentd.d | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZABBIX_USER_HOME_DIR\enc | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZABBIX_USER_HOME_DIR\enc_internal | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZBX_USERPARAMETERDIR | Out-Null; `
`
net accounts /MaxPWAge:unlimited; `
net user /add zabbix /expire:never /passwordreq:no; `
$acl = Get-Acl -Path $env:ZABBIX_USER_HOME_DIR; `
$ace = New-Object Security.AccessControl.FileSystemAccessRule ('zabbix', 'Modify', 'ContainerInherit, ObjectInherit', 'InheritOnly', 'Allow'); `
$acl.AddAccessRule($ace); `
Set-Acl -AclObject $acl -Path $env:ZABBIX_USER_HOME_DIR;
USER zabbix
EXPOSE 10050/TCP
CMD C:\zabbix\docker-entrypoint.ps1 C:\zabbix\sbin\zabbix_agentd.exe -c C:\zabbix\conf\zabbix_agentd.conf -f

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1,231 @@
# Script trace mode
if ($env:DEBUG_MODE -eq "true") {
Set-PSDebug -trace 1
}
# Default Zabbix server host
if ($env:ZBX_SERVER_HOST -eq $null) {
$env:ZBX_SERVER_HOST="zabbix-server"
}
# Default Zabbix server port number
if ($env:ZBX_SERVER_PORT -eq $null) {
$env:ZBX_SERVER_PORT="10051"
}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
$ZabbixInternalEncDir="$env:ZABBIX_USER_HOME_DIR/enc_internal"
function Update-Config-Var {
Param (
[Parameter(Mandatory=$true, Position=0)]
[ValidateNotNullOrEmpty()]
[string] $ConfigPath,
[Parameter(Mandatory=$true, Position=1)]
[ValidateNotNullOrEmpty()]
[string]$VarName,
[Parameter(Mandatory=$false, Position=2)]
[string]$VarValue = $null,
[Parameter(Mandatory=$false, Position=3)]
[bool]$IsMultiple
)
$MaskList = "TLSPSKIdentity"
if (-not(Test-Path -Path $ConfigPath -PathType Leaf)) {
throw "**** Configuration file '$ConfigPath' does not exist"
}
if ($MaskList.Contains($VarName) -eq $true -And [string]::IsNullOrWhitespace($VarValue) -ne $true) {
Write-Host -NoNewline "** Updating '$ConfigPath' parameter ""$VarName"": '****'. Enable DEBUG_MODE to view value ..."
}
else {
Write-Host -NoNewline "** Updating '$ConfigPath' parameter ""$VarName"": '$VarValue'..."
}
if ([string]::IsNullOrWhitespace($VarValue)) {
if ((Get-Content $ConfigPath | %{$_ -match "^$VarName="}) -contains $true) {
(Get-Content $ConfigPath) |
Where-Object {$_ -notmatch "^$VarName=" } |
Set-Content $ConfigPath
}
Write-Host "removed"
return
}
if ($VarValue -eq '""') {
(Get-Content $ConfigPath) | Foreach-Object { $_ -Replace "^($VarName=)(.*)", '$1' } | Set-Content $ConfigPath
Write-Host "undefined"
return
}
if ($VarName -match '^TLS.*File$') {
$VarValue="$env:ZABBIX_USER_HOME_DIR\enc\$VarValue"
}
if ((Get-Content $ConfigPath | %{$_ -match "^$VarName="}) -contains $true -And $IsMultiple -ne $true) {
(Get-Content $ConfigPath) | Foreach-Object { $_ -Replace "^$VarName=.+", "$VarName=$VarValue" } | Set-Content $ConfigPath
Write-Host updated
}
elseif ((Get-Content $ConfigPath | select-string -pattern "^[#;] $VarName=").length -gt 1) {
(Get-Content $ConfigPath) |
Foreach-Object {
$_
if ($_ -match "^[#;] $VarName=$") {
"$VarName=$VarValue"
}
} | Set-Content $ConfigPath
Write-Host "added first occurrence"
}
elseif ((Get-Content $ConfigPath | select-string -pattern "^[#;] $VarName=").length -gt 0) {
(Get-Content $ConfigPath) |
Foreach-Object {
$_
if ($_ -match "^[#;] $VarName=") {
"$VarName=$VarValue"
}
} | Set-Content $ConfigPath
Write-Host "added"
}
else {
Add-Content -Path $ConfigPath -Value "$VarName=$VarValue"
Write-Host "added at the end"
}
}
function Update-Config-Multiple-Var {
Param (
[Parameter(Mandatory=$true, Position=0)]
[ValidateNotNullOrEmpty()]
[string] $ConfigPath,
[Parameter(Mandatory=$true, Position=1)]
[ValidateNotNullOrEmpty()]
[string]$VarName,
[Parameter(Mandatory=$false, Position=2)]
[string]$VarValue = $null
)
foreach ($value in $VarValue.split(',')) {
Update-Config-Var $ConfigPath $VarName $value $true
}
}
function File-Process-From-Env {
Param (
[Parameter(Mandatory=$true, Position=0)]
[ValidateNotNullOrEmpty()]
[string] $VarName,
[Parameter(Mandatory=$false, Position=1)]
[string]$FileName = $null,
[Parameter(Mandatory=$false, Position=2)]
[string]$VarValue = $null
)
if (![string]::IsNullOrEmpty($VarValue)) {
$VarValue | Set-Content "$ZabbixInternalEncDir\$VarName"
$FileName="$ZabbixInternalEncDir\$VarName"
}
if (![string]::IsNullOrEmpty($FileName)) {
Set-Item env:$VarName -Value $FileName
}
$VarName=$VarName -replace 'FILE$'
Set-Item env:$VarName -Value $null
}
function Prepare-Zbx-Agent-Config {
if ($env:ZBX_PASSIVESERVERS -eq $null) {
$env:ZBX_PASSIVESERVERS=""
}
if ($env:ZBX_ACTIVESERVERS -eq $null) {
$env:ZBX_ACTIVESERVERS=""
}
if (![string]::IsNullOrEmpty($env:ZBX_SERVER_HOST) -And ![string]::IsNullOrEmpty($env:ZBX_PASSIVESERVERS)) {
$env:ZBX_PASSIVESERVERS="$env:ZBX_SERVER_HOST,$env:ZBX_PASSIVESERVERS"
}
elseif (![string]::IsNullOrEmpty($env:ZBX_SERVER_HOST)) {
$env:ZBX_PASSIVESERVERS=$env:ZBX_SERVER_HOST
}
if (![string]::IsNullOrEmpty($env:ZBX_SERVER_HOST)) {
if (![string]::IsNullOrEmpty($env:ZBX_SERVER_PORT) -And $env:ZBX_SERVER_PORT -ne "10051") {
$env:ZBX_SERVER_HOST="$env:ZBX_SERVER_HOST:$env:ZBX_SERVER_PORT"
}
if (![string]::IsNullOrEmpty($env:ZBX_ACTIVESERVERS)) {
$env:ZBX_ACTIVESERVERS="$env:ZBX_SERVER_HOST,$env:ZBX_ACTIVESERVERS"
}
else {
$env:ZBX_ACTIVESERVERS=$env:ZBX_SERVER_HOST
}
}
if ([string]::IsNullOrWhitespace($env:ZBX_PASSIVE_ALLOW)) {
$env:ZBX_PASSIVE_ALLOW="true"
}
if ($env:ZBX_PASSIVE_ALLOW -eq "true") {
Write-Host "** Using '$env:ZBX_PASSIVESERVERS' servers for passive checks"
}
else {
Set-Item env:ZBX_PASSIVESERVERS -Value $null
}
if ([string]::IsNullOrWhitespace($env:ZBX_ACTIVE_ALLOW)) {
$env:ZBX_ACTIVE_ALLOW="true"
}
if ($env:ZBX_ACTIVE_ALLOW -eq "true") {
Write-Host "** Using '$env:ZBX_ACTIVESERVERS' servers for active checks"
}
else {
Set-Item env:ZBX_ACTIVESERVERS -Value $null
}
Update-Config-Multiple-Var "$env:ZABBIX_CONF_DIR\zabbix_agentd_item_keys.conf" "DenyKey" "$env:ZBX_DENYKEY"
Update-Config-Multiple-Var "$env:ZABBIX_CONF_DIR\zabbix_agentd_item_keys.conf" "AllowKey" "$env:ZBX_ALLOWKEY"
File-Process-From-Env "ZBX_TLSCAFILE" "$env:ZBX_TLSCAFILE" "$env:ZBX_TLSCA"
File-Process-From-Env "ZBX_TLSCRLFILE" "$env:ZBX_TLSCRLFILE" "$env:ZBX_TLSCRL"
File-Process-From-Env "ZBX_TLSCERTFILE" "$env:ZBX_TLSCERTFILE" "$env:ZBX_TLSCERT"
File-Process-From-Env "ZBX_TLSKEYFILE" "$env:ZBX_TLSKEYFILE" "$env:ZBX_TLSKEY"
File-Process-From-Env "ZBX_TLSPSKFILE" "$env:ZBX_TLSPSKFILE" "$env:ZBX_TLSPSK"
}
function ClearZbxEnv() {
if ([string]::IsNullOrWhitespace($env:ZBX_CLEAR_ENV)) {
return
}
$env_vars=Get-ChildItem env:* | Where-Object {$_.Name -match "^ZABBIX_.*" } | foreach { $_.Name }
foreach ($env_var in $env_vars) {
Set-Item env:$env_var -Value $null
}
}
function PrepareAgent {
Write-Host "** Preparing Zabbix agent"
Prepare-Zbx-Agent-Config
ClearZbxEnv
}
$commandArgs=$args
if ($args.length -gt 0 -And $args[0].Substring(0, 1) -eq '-') {
$commandArgs = "C:\zabbix\sbin\zabbix_agentd.exe " + $commandArgs
}
if ($args.length -gt 0 -And $args[0] -eq "C:\zabbix\sbin\zabbix_agentd.exe") {
PrepareAgent
}
if ($args.length -gt 0) {
Invoke-Expression "$CommandArgs"
}

View File

@ -8,59 +8,61 @@ Zabbix is software that monitors numerous parameters of a network and the health
For more information and related downloads for Zabbix components, please visit https://hub.docker.com/u/zabbix/ and https://zabbix.com
# What is Zabbix agent?
# What is Zabbix agent 2?
Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications (hard drives, memory, processor statistics etc).
Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications (hard drives, memory, processor statistics etc).
# Zabbix agent images
# Zabbix agent 2 images
These are the only official Zabbix agent Docker images. They are based on Alpine Linux v3.4, Ubuntu 14.04 (trusty) and CentOS 7 images. The available versions of Zabbix agent are:
These are the only official Zabbix agent 2 Docker images. They are based on Alpine Linux v3.23, Ubuntu 24.04 (noble), CentOS Stream 10, Oracle Linux 10, Windows 10 LTSC 2019 and Windows 11 LTSC 2022 images. The available versions of Zabbix agent 2 are:
Zabbix agent 3.0 (tags: alpine-3.0-latest, ubuntu-3.0-latest, centos-3.0-latest)
Zabbix agent 3.0.* (tags: alpine-3.0.*, ubuntu-3.0.*, centos-3.0.*)
Zabbix agent 3.2 (tags: alpine-3.2-latest, ubuntu-3.2-latest, centos-3.2-latest)
Zabbix agent 3.2.* (tags: alpine-3.2.*, ubuntu-3.2.*, centos-3.2.*)
Zabbix agent 3.4 (tags: alpine-3.4-latest, ubuntu-3.4-latest, centos-3.4-latest, alpine-latest, ubuntu-latest, centos-latest, latest)
Zabbix agent 3.4.* (tags: alpine-3.4.*, ubuntu-3.4.*, centos-3.4.*)
Zabbix agent 4.0 (tags: alpine-trunk, ubuntu-trunk, centos-trunk)
Zabbix agent 2 6.0 (tags: alpine-6.0-latest, ubuntu-6.0-latest, ol-6.0-latest)
Zabbix agent 2 6.0.* (tags: alpine-6.0.*, ubuntu-6.0.*, ol-6.0.*, ltsc2019-6.0.*, ltsc2022-6.0.*)
Zabbix agent 2 7.0 (tags: alpine-7.0-latest, ubuntu-7.0-latest, ol-7.0-latest)
Zabbix agent 2 7.0.* (tags: alpine-7.0.*, ubuntu-7.0.*, ol-7.0.*, ltsc2019-7.0.*, ltsc2022-7.0.*)
Zabbix agent 2 7.2 (tags: alpine-7.2-latest, ubuntu-7.2-latest, ol-7.2-latest)
Zabbix agent 2 7.2.* (tags: alpine-7.2.*, ubuntu-7.2.*, ol-7.2.*, ltsc2019-7.2.*, ltsc2022-7.2.*)
Zabbix agent 2 7.4 (tags: alpine-7.4-latest, ubuntu-7.4-latest, ol-7.4-latest, alpine-latest, ubuntu-latest, ol-latest, ltsc2019-latest, ltsc2022-latest, latest)
Zabbix agent 2 7.4.* (tags: alpine-7.4.*, ubuntu-7.4.*, ol-7.4.*, ltsc2019-7.4.*, ltsc2022-7.4.*)
Zabbix agent 2 8.0 (tags: alpine-trunk, ubuntu-trunk, ol-trunk, ltsc2019-trunk, ltsc2022-trunk)
Images are updated when new releases are published. The image with ``latest`` tag is based on Alpine Linux.
# How to use this image
## Start `zabbix-agent`
## Start `zabbix-agent2`
Start a Zabbix agent container as follows:
Start a Zabbix agent 2 container as follows:
docker run --name some-zabbix-agent -e ZBX_HOSTNAME="some-hostname" -e ZBX_SERVER_HOST="some-zabbix-server" -d zabbix/zabbix-agent:tag
docker run --name some-zabbix-agent -e ZBX_HOSTNAME="some-hostname" -e ZBX_SERVER_HOST="some-zabbix-server" --init -d zabbix/zabbix-agent2:tag
Where `some-zabbix-agent` is the name you want to assign to your container, `some-hostname` is the hostname, it is Hostname parameter in Zabbix agent configuration file, `some-zabbix-server` is IP or DNS name of Zabbix server or proxy and `tag` is the tag specifying the version you want. See the list above for relevant tags, or look at the [full list of tags](https://hub.docker.com/r/zabbix/zabbix-agent/tags/).
Where `some-zabbix-agent2` is the name you want to assign to your container, `some-hostname` is the hostname, it is Hostname parameter in Zabbix agent 2 configuration file, `some-zabbix-server` is IP or DNS name of Zabbix server or proxy and `tag` is the tag specifying the version you want. See the list above for relevant tags, or look at the [full list of tags](https://hub.docker.com/r/zabbix/zabbix-agent2/tags/).
## Connects from Zabbix server or Zabbix proxy in other containers (Passive checks)
This image exposes the standard Zabbix agent port (``10050``) to perform passive checks, so container linking makes Zabbix agent instance available to Zabbix server and Zabbix proxy containers. Start your application container like this in order to link it to the Zabbix agent container:
This image exposes the standard Zabbix agent 2 port (``10050``) to perform passive checks, so container linking makes Zabbix agent 2 instance available to Zabbix server and Zabbix proxy containers. Start your application container like this in order to link it to the Zabbix agent 2 container:
```console
$ docker run --name some-zabbix-server --link some-zabbix-agent:zabbix-agent -d zabbix/zabbix-server:latest
$ docker run --name some-zabbix-server --link some-zabbix-agent:zabbix-agent2 --init -d zabbix/zabbix-server:latest
```
## Connect to Zabbix server or Zabbix proxy containers (Active checks)
This image supports perform active checks, so container linking makes Zabbix server and Zabbix proxy containers available to Zabbix agent instance. Start your application container like this in order to link Zabbix agent to Zabbix server or Zabbix proxy containterns:
This image supports perform active checks, so container linking makes Zabbix server and Zabbix proxy containers available to Zabbix agent 2 instance. Start your application container like this in order to link Zabbix agent 2 to Zabbix server or Zabbix proxy containterns:
```console
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -d zabbix/zabbix-agent:latest
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server --init -d zabbix/zabbix-agent2:latest
```
## Container shell access and viewing Zabbix agent logs
## Container shell access and viewing Zabbix agent 2 logs
The `docker exec` command allows you to run commands inside a Docker container. The following command line will give you a bash shell inside your `zabbix-agent` container:
The `docker exec` command allows you to run commands inside a Docker container. The following command line will give you a bash shell inside your `zabbix-agent2` container:
```console
$ docker exec -ti some-zabbix-agent /bin/bash
```
The Zabbix agent log is available through Docker's container log:
The Zabbix agent 2 log is available through Docker's container log:
```console
$ docker logs some-zabbix-agent
@ -68,26 +70,26 @@ $ docker logs some-zabbix-agent
## Privileged mode
By default, Docker containers are "unprivileged" and do not have access to the most of host resources. Zabbix agent is designed to monitor system resources, to do that Zabbix agent container must be privileged or you may mount some system-wide volumes. For example:
By default, Docker containers are "unprivileged" and do not have access to the most of host resources. Zabbix agent 2 is designed to monitor system resources, to do that Zabbix agent 2 container must be privileged or you may mount some system-wide volumes. For example:
```console
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server --privileged -d zabbix/zabbix-agent:latest
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server --privileged --init -d zabbix/zabbix-agent2:latest
```
```console
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -v /dev/sdc:/dev/sdc -d zabbix/zabbix-agent:latest
$ docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -v /dev/sdc:/dev/sdc --init -d zabbix/zabbix-agent2:latest
```
## Environment Variables
When you start the `zabbix-agent` image, you can adjust the configuration of the Zabbix agent by passing one or more environment variables on the `docker run` command line.
When you start the `zabbix-agent2` image, you can adjust the configuration of the Zabbix agent 2 by passing one or more environment variables on the `docker run` command line.
### `ZBX_HOSTNAME`
This variable is unique, case sensitive hostname. By default, value is `hostname` of the container. It is ``Hostname`` parameter in ``zabbix_agentd.conf``.
This variable is unique, case sensitive hostname. By default, value is `hostname` of the container. It is ``Hostname`` parameter in ``zabbix_agent2.conf``.
### `ZBX_SERVER_HOST`
This variable is IP or DNS name of Zabbix server or Zabbix proxy. By default, value is `zabbix-server`. It is ``Server`` parameter in ``zabbix_agentd.conf``. It is allowed to specify Zabbix server or Zabbix proxy port number using ``ZBX_SERVER_PORT`` variable. It make sense in case of non-default port for active checks.
This variable is IP or DNS name of Zabbix server or Zabbix proxy. By default, value is `zabbix-server`. It is ``Server`` parameter in ``zabbix_agent2.conf``. It is allowed to specify Zabbix server or Zabbix proxy port number using ``ZBX_SERVER_PORT`` variable. It make sense in case of non-default port for active checks.
### `ZBX_PASSIVE_ALLOW`
@ -95,7 +97,7 @@ This variable is boolean (``true`` or ``false``) and enables or disables feature
### `ZBX_PASSIVESERVERS`
The variable is comma separated list of allowed Zabbix server or proxy hosts for connections to Zabbix agent container.
The variable is comma separated list of allowed Zabbix server or proxy hosts for connections to Zabbix agent 2 container.
### `ZBX_ACTIVE_ALLOW`
@ -103,15 +105,11 @@ This variable is boolean (``true`` or ``false``) and enables or disables feature
### `ZBX_ACTIVESERVERS`
The variable is comma separated list of allowed Zabbix server or proxy hosts for connections to Zabbix agent container. You may specify port of Zabbix server or Zabbix proxy in such syntax: ``zabbix-server:10061,zabbix-proxy:10072``.
### `ZBX_LOADMODULE`
The variable is list of comma separated loadable Zabbix modules. It works with volume ``/var/lib/zabbix/modules``. The syntax of the variable is ``dummy1.so,dummy2.so``.
The variable is comma separated list of allowed Zabbix server or proxy hosts for connections to Zabbix agent 2 container. You may specify port of Zabbix server or Zabbix proxy in such syntax: ``zabbix-server:10061,zabbix-proxy:10072``.
### `ZBX_DEBUGLEVEL`
The variable is used to specify debug level. By default, value is ``3``. It is ``DebugLevel`` parameter in ``zabbix_agentd.conf``. Allowed values are listed below:
The variable is used to specify debug level. By default, value is ``3``. It is ``DebugLevel`` parameter in ``zabbix_agent2.conf``. Allowed values are listed below:
- ``0`` - basic information about starting and stopping of Zabbix processes;
- ``1`` - critical information
- ``2`` - error information
@ -128,8 +126,12 @@ The variable is used to specify timeout for processing checks. By default, value
Additionally the image allows to specify many other environment variables listed below:
```
ZBX_ENABLEPERSISTENTBUFFER=false # Available since 5.0.0
ZBX_PERSISTENTBUFFERPERIOD=1h # Available since 5.0.0
ZBX_ENABLESTATUSPORT=
ZBX_SOURCEIP=
ZBX_ENABLEREMOTECOMMANDS=0
ZBX_HEARTBEAT_FREQUENCY=60 # Available since 6.2.0
ZBX_ENABLEREMOTECOMMANDS=0 # Deprecated since 5.0.0
ZBX_LOGREMOTECOMMANDS=0
ZBX_STARTAGENTS=3
ZBX_HOSTNAMEITEM=system.hostname
@ -140,48 +142,52 @@ ZBX_BUFFERSEND=5
ZBX_BUFFERSIZE=100
ZBX_MAXLINESPERSECOND=20
ZBX_LISTENIP=
ZBX_LISTENPORT=10051
ZBX_UNSAFEUSERPARAMETERS=0
ZBX_TLSCONNECT=unencrypted
ZBX_TLSACCEPT=unencrypted
ZBX_TLSCAFILE=
ZBX_TLSCA=
ZBX_TLSCRLFILE=
ZBX_TLSCRL=
ZBX_TLSSERVERCERTISSUER=
ZBX_TLSSERVERCERTSUBJECT=
ZBX_TLSCERTFILE=
ZBX_TLSCERT=
ZBX_TLSKEYFILE=
ZBX_TLSKEY=
ZBX_TLSPSKIDENTITY=
ZBX_TLSPSKFILE=
ZBX_TLSPSK=
ZBX_DENYKEY=system.run[*] # Available since 5.0.0
ZBX_ALLOWKEY= # Available since 5.0.0
```
Default values of these variables are specified after equal sign.
The allowed variables are identical of parameters in official ``zabbix_agentd.conf`` configuration file. For example, ``ZBX_REFRESHACTIVECHECKS`` = ``RefreshActiveChecks``.
The allowed variables are identical of parameters in official ``zabbix_agent2.conf`` configuration file. For example, ``ZBX_REFRESHACTIVECHECKS`` = ``RefreshActiveChecks``.
Please use official documentation for [``zabbix_agentd.conf``](https://www.zabbix.com/documentation/3.0/manual/appendix/config/zabbix_agentd) to get more information about the variables.
Please use official documentation for [``zabbix_agent2.conf``](https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_agent2) to get more information about the variables.
## Allowed volumes for the Zabbix agent container
## Allowed volumes for the Zabbix agent 2 container
### ``/etc/zabbix/zabbix_agentd.d``
The volume allows include ``*.conf`` files and extend Zabbix agent using ``UserParameter`` feature.
### ``/var/lib/zabbix/modules``
The volume allows load additional modules and extend Zabbix agent using ``LoadModule`` feature.
The volume allows include ``*.conf`` files and extend Zabbix agent 2 using ``UserParameter`` feature.
### ``/var/lib/zabbix/enc``
The volume is used to store TLS related files. These file names are specified using ``ZBX_TLSCAFILE``, ``ZBX_TLSCRLFILE``, ``ZBX_TLSKEY_FILE`` and ``ZBX_TLSPSKFILE`` variables.
The volume is used to store TLS related files. These file names are specified using ``ZBX_TLSCAFILE``, ``ZBX_TLSCRLFILE``, ``ZBX_TLSCERTFILE``, ``ZBX_TLSKEYFILE`` and ``ZBX_TLSPSKFILE`` variables. Additionally it is possible to use environment variables ``ZBX_TLSCA``, ``ZBX_TLSCRL``, ``ZBX_TLSCERT``, ``ZBX_TLSKEY`` and ``ZBX_TLSPSK`` with plaintext values.
### ``/var/lib/zabbix/buffer``
The volume is used to store the file, where Zabbix Agent2 should keep SQLite database. To enable the feature specify ``ZBX_ENABLEPERSISTENTBUFFER=true``. Available since 5.0.0.
# The image variants
The `zabbix-agent` images come in many flavors, each designed for a specific use case.
The `zabbix-agent2` images come in many flavors, each designed for a specific use case.
## `zabbix-agent:ubuntu-<version>`
This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
## `zabbix-agent:alpine-<version>`
## `zabbix-agent2:alpine-<version>`
This image is based on the popular [Alpine Linux project](http://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
@ -189,6 +195,14 @@ This variant is highly recommended when final image size being as small as possi
To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar).
## `zabbix-agent2:ubuntu-<version>`
This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
## `zabbix-agent2:ol-<version>`
Oracle Linux is an open-source operating system available under the GNU General Public License (GPLv2). Suitable for general purpose or Oracle workloads, it benefits from rigorous testing of more than 128,000 hours per day with real-world workloads and includes unique innovations such as Ksplice for zero-downtime kernel patching, DTrace for real-time diagnostics, the powerful Btrfs file system, and more.
# Supported Docker versions
This image is officially supported on Docker version 1.12.0.
@ -201,7 +215,7 @@ Please see [the Docker installation documentation](https://docs.docker.com/insta
## Documentation
Documentation for this image is stored in the [`agent/` directory](https://github.com/zabbix/zabbix-docker/tree/3.0/agent) of the [`zabbix/zabbix-docker` GitHub repo](https://github.com/zabbix/zabbix-docker/). Be sure to familiarize yourself with the [repository's `README.md` file](https://github.com/zabbix/zabbix-docker/blob/master/README.md) before attempting a pull request.
Documentation for this image is stored in the [`agent2/` directory](https://github.com/zabbix/zabbix-docker/tree/7.4/Dockerfiles/agent2) of the [`zabbix/zabbix-docker` GitHub repo](https://github.com/zabbix/zabbix-docker/). Be sure to familiarize yourself with the [repository's `README.md` file](https://github.com/zabbix/zabbix-docker/blob/7.4/README.md) before attempting a pull request.
## Issues
@ -216,3 +230,12 @@ Currently it is not allowed to specify ``ZBX_ALIAS`` environment variable. Pleas
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
Before you start to code, we recommend discussing your plans through a [GitHub issue](https://github.com/zabbix/zabbix-docker/issues), especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
## License
Starting from Zabbix version 7.0, all subsequent Zabbix versions will be released under the GNU Affero General Public License version 3 (AGPLv3).
You can modify the relevant version and propagate such modified version under the terms of the AGPLv3 as published by the Free Software Foundation.
For additional details, including answers to common questions about the AGPLv3, see the generic FAQ from the [Free Software Foundation](http://www.fsf.org/licenses/gpl-faq.html).
Zabbix is Open Source Software, however, if you use Zabbix in a commercial context we kindly ask you to support the development of Zabbix by purchasing some level of technical support.
All previous Zabbix software versions up to 6.4 are released under the GNU General Public License version 2 (GPLv2). The formal terms of the GPLv2 and AGPLv3 can be found at http://www.fsf.org/licenses/.

View File

@ -0,0 +1,100 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=alpine:3.23
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:alpine-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_PERSISTENTBUFFERFILE="$ZABBIX_USER_HOME_DIR/buffer/agent2.db" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.source="${ZBX_SOURCES}" \
org.opencontainers.image.title="Zabbix agent 2" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"]
RUN set -eux && \
INSTALL_PKGS="bash \
tzdata \
pcre2 \
coreutils \
smartmontools \
sudo \
iputils" && \
apk add \
--no-cache \
--clean-protected \
${INSTALL_PKGS} && \
addgroup \
--system \
--gid 1995 \
zabbix && \
adduser \
--system \
--gecos "Zabbix monitoring system" \
--disabled-password \
--uid 1997 \
--ingroup zabbix \
--shell /sbin/nologin \
--home ${ZABBIX_USER_HOME_DIR}/ \
zabbix && \
echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \
mkdir -p ${ZABBIX_CONF_DIR} && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agent2.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agent2 -V
EXPOSE 10050/TCP 31999/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agent2", "--foreground", "-c", "/etc/zabbix/zabbix_agent2.conf"]

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,238 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
: ${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
: ${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
if [ "${ZBX_ENABLEPERSISTENTBUFFER,,}" == "true" ]; then
export ZBX_ENABLEPERSISTENTBUFFER=1
else
unset ZBX_ENABLEPERSISTENTBUFFER
unset ZBX_PERSISTENTBUFFERFILE
fi
if [ "${ZBX_ENABLESTATUSPORT,,}" == "true" ]; then
export ZBX_STATUSPORT=${ZBX_STATUSPORT="31999"}
else
unset ZBX_STATUSPORT
fi
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
}
prepare_zbx_agent_plugin_config() {
echo "** Preparing Zabbix agent plugin configuration files"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/ember.conf" "Plugins.EmberPlus.System.Path" "/usr/sbin/zabbix-agent2-plugin/ember-plus"
if command -v nvidia-smi 2>&1 >/dev/null
then
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/nvidia.conf" "Plugins.NVIDIA.System.Path" "/usr/sbin/zabbix-agent2-plugin/nvidia-gpu"
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
prepare_zbx_agent_plugin_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agent2 "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agent2' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,121 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=quay.io/centos/centos:stream10-minimal
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:centos-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_PERSISTENTBUFFERFILE="$ZABBIX_USER_HOME_DIR/buffer/agent2.db" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.source="${ZBX_SOURCES}" \
org.opencontainers.image.title="Zabbix agent 2" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="bash \
iputils \
pcre2 \
libcurl-minimal \
smartmontools \
shadow-utils \
sudo \
openssl-libs" && \
microdnf -y install \
--disablerepo "*" \
--enablerepo "extras-common" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs epel-release && \
microdnf -y install \
--disablerepo "*" \
--enablerepo "baseos" \
--enablerepo "appstream" \
--enablerepo="epel" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs ${INSTALL_PKGS} && \
microdnf -y reinstall \
--enablerepo "baseos" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--setopt=tsflags=nodocs \
tzdata && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \
mkdir -p ${ZABBIX_CONF_DIR} && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agent2.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agent2 -V
EXPOSE 10050/TCP 31999/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agent2", "--foreground", "-c", "/etc/zabbix/zabbix_agent2.conf"]

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,238 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
: ${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
: ${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
if [ "${ZBX_ENABLEPERSISTENTBUFFER,,}" == "true" ]; then
export ZBX_ENABLEPERSISTENTBUFFER=1
else
unset ZBX_ENABLEPERSISTENTBUFFER
unset ZBX_PERSISTENTBUFFERFILE
fi
if [ "${ZBX_ENABLESTATUSPORT,,}" == "true" ]; then
export ZBX_STATUSPORT=${ZBX_STATUSPORT="31999"}
else
unset ZBX_STATUSPORT
fi
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
}
prepare_zbx_agent_plugin_config() {
echo "** Preparing Zabbix agent plugin configuration files"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/ember.conf" "Plugins.EmberPlus.System.Path" "/usr/sbin/zabbix-agent2-plugin/ember-plus"
if command -v nvidia-smi 2>&1 >/dev/null
then
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/nvidia.conf" "Plugins.NVIDIA.System.Path" "/usr/sbin/zabbix-agent2-plugin/nvidia-gpu"
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
prepare_zbx_agent_plugin_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agent2 "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agent2' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,108 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:ol-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_PERSISTENTBUFFERFILE="$ZABBIX_USER_HOME_DIR/buffer/agent2.db" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.source="${ZBX_SOURCES}" \
org.opencontainers.image.title="Zabbix agent 2" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"]
COPY ["conf/etc/yum.repos.d/oracle-epel-ol10.repo", "/etc/yum.repos.d/oracle-epel-ol10.repo"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="bash \
iputils \
pcre2 \
libcurl \
smartmontools \
sudo \
openssl-libs" && \
microdnf -y install \
--disablerepo="*" \
--enablerepo="ol10_baseos_latest" \
--enablerepo="ol10_appstream" \
--enablerepo="ol10_u0_developer_EPEL" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs \
${INSTALL_PKGS} && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \
mkdir -p ${ZABBIX_CONF_DIR} && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agent2.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agent2 -V
EXPOSE 10050/TCP 31999/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agent2", "--foreground", "-c", "/etc/zabbix/zabbix_agent2.conf"]

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,6 @@
[ol10_u0_developer_EPEL]
name=Oracle Linux $releasever.0 EPEL Packages for Development ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL10/0/developer/EPEL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

View File

@ -0,0 +1,239 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
: ${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
: ${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local config_path=$1
local var_name=$2
local file_name=$3
local var_value=$4
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
if [ "${ZBX_ENABLEPERSISTENTBUFFER,,}" == "true" ]; then
export ZBX_ENABLEPERSISTENTBUFFER=1
else
unset ZBX_ENABLEPERSISTENTBUFFER
unset ZBX_PERSISTENTBUFFERFILE
fi
if [ "${ZBX_ENABLESTATUSPORT,,}" == "true" ]; then
export ZBX_STATUSPORT=${ZBX_STATUSPORT="31999"}
else
unset ZBX_STATUSPORT
fi
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
}
prepare_zbx_agent_plugin_config() {
echo "** Preparing Zabbix agent plugin configuration files"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/ember.conf" "Plugins.EmberPlus.System.Path" "/usr/sbin/zabbix-agent2-plugin/ember-plus"
if command -v nvidia-smi 2>&1 >/dev/null
then
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/nvidia.conf" "Plugins.NVIDIA.System.Path" "/usr/sbin/zabbix-agent2-plugin/nvidia-gpu"
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
prepare_zbx_agent_plugin_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agent2 "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agent2' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,142 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=registry.access.redhat.com/ubi10/ubi-minimal:10.1
ARG MAJOR_VERSION=7.4
ARG RELEASE=6
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:rhel-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG RELEASE
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_PERSISTENTBUFFERFILE="$ZABBIX_USER_HOME_DIR/buffer/agent2.db" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
maintainer="alexey.pustovalov@zabbix.com" \
name="zabbix/zabbix-agent2-74" \
release="${RELEASE}" \
run="docker run --name zabbix-agent2 --link zabbix-server:zabbix-server -p 10050:10050 -d registry.connect.redhat.com/zabbix/zabbix-agent2-74:${ZBX_VERSION}" \
summary="Zabbix agent" \
url="https://www.zabbix.com/" \
vendor="Zabbix SIA" \
version="${MAJOR_VERSION}" \
io.k8s.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
io.k8s.display-name="Zabbix Agent 2" \
io.openshift.expose-services="10050:10050" \
io.openshift.tags="zabbix,zabbix-agent" \
org.label-schema.build-date="${BUILD_DATE}" \
org.label-schema.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
org.label-schema.docker.cmd="docker run --name zabbix-agent2 --link zabbix-server:zabbix-server -p 10050:10050 -d registry.connect.redhat.com/zabbix/zabbix-agent2-74:${ZBX_VERSION}" \
org.label-schema.license="AGPL v3.0" \
org.label-schema.name="zabbix-agent2-rhel" \
org.label-schema.schema-version="1.0" \
org.label-schema.url="https://zabbix.com/" \
org.label-schema.usage="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.label-schema.vcs-ref="${VCS_REF}" \
org.label-schema.vcs-url="${ZBX_SOURCES}" \
org.label-schema.vendor="Zabbix SIA" \
org.label-schema.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY ["licenses", "/licenses"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="bash \
iputils \
shadow-utils \
pcre2 \
# smartmontools \
sudo \
libcurl-minimal" && \
microdnf -y install \
--disableplugin=subscription-manager \
--disablerepo "*" \
--enablerepo "ubi-10-baseos-rpms" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--setopt=tsflags=nodocs \
${INSTALL_PKGS} && \
microdnf -y update \
--disableplugin=subscription-manager \
--disablerepo "*" \
--enablerepo "ubi-10-baseos-rpms" \
--setopt=install_weak_deps=0 \
--best \
--setopt=tsflags=nodocs \
tzdata && \
# microdnf -y reinstall \
# --disableplugin=subscription-manager \
# --disablerepo "*" \
# --enablerepo "ubi-9-baseos-rpms" \
# --setopt=install_weak_deps=0 \
# --setopt=keepcache=0 \
# --best \
# --setopt=tsflags=nodocs \
# tzdata && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \
mkdir -p ${ZABBIX_CONF_DIR} && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agent2.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agent2 -V
EXPOSE 10050/TCP 31999/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agent2", "--foreground", "-c", "/etc/zabbix/zabbix_agent2.conf"]

View File

@ -0,0 +1,144 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=nvidia/cuda:12.9.0-base-ubi9
ARG MAJOR_VERSION=7.2
ARG RELEASE=7
ARG ZBX_VERSION=${MAJOR_VERSION}.7
ARG BUILD_BASE_IMAGE=registry.connect.redhat.com/zabbix/zabbix-agent2-72:${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG RELEASE
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_PERSISTENTBUFFERFILE="$ZABBIX_USER_HOME_DIR/buffer/agent2.db" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
maintainer="alexey.pustovalov@zabbix.com" \
name="zabbix/zabbix-agent2-72" \
release="${RELEASE}" \
run="docker run --name zabbix-agent2 --link zabbix-server:zabbix-server -p 10050:10050 -d registry.connect.redhat.com/zabbix/zabbix-agent2-72:${ZBX_VERSION}" \
summary="Zabbix agent" \
url="https://www.zabbix.com/" \
vendor="Zabbix SIA" \
version="${MAJOR_VERSION}" \
io.k8s.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
io.k8s.display-name="Zabbix Agent 2" \
io.openshift.expose-services="10050:10050" \
io.openshift.tags="zabbix,zabbix-agent" \
org.label-schema.build-date="${BUILD_DATE}" \
org.label-schema.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
org.label-schema.docker.cmd="docker run --name zabbix-agent2 --link zabbix-server:zabbix-server -p 10050:10050 -d registry.connect.redhat.com/zabbix/zabbix-agent2-72:${ZBX_VERSION}" \
org.label-schema.license="AGPL v3.0" \
org.label-schema.name="zabbix-agent2-rhel" \
org.label-schema.schema-version="1.0" \
org.label-schema.url="https://zabbix.com/" \
org.label-schema.usage="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.label-schema.vcs-ref="${VCS_REF}" \
org.label-schema.vcs-url="${ZBX_SOURCES}" \
org.label-schema.vendor="Zabbix SIA" \
org.label-schema.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY ["licenses", "/licenses"]
COPY --from=builder ["/usr/sbin/zabbix*", "/usr/sbin/"]
COPY --from=builder ["/usr/sbin/zabbix-agent2-plugin/", "/usr/sbin/zabbix-agent2-plugin/"]
COPY --from=builder ["/usr/bin/zabbix*", "/usr/bin/"]
COPY --from=builder ["/etc/zabbix/", "${ZABBIX_CONF_DIR}/"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="bash \
iputils \
shadow-utils \
pcre2 \
# smartmontools \
sudo \
libcurl-minimal" && \
dnf -y install \
--disableplugin=subscription-manager \
--disablerepo "*" \
--enablerepo "ubi-9-baseos-rpms" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--setopt=tsflags=nodocs \
${INSTALL_PKGS} && \
dnf -y update \
--disableplugin=subscription-manager \
--disablerepo "*" \
--enablerepo "ubi-9-baseos-rpms" \
--setopt=install_weak_deps=0 \
--best \
--setopt=tsflags=nodocs \
tzdata && \
dnf -y reinstall \
--disableplugin=subscription-manager \
--disablerepo "*" \
--enablerepo "ubi-9-baseos-rpms" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--setopt=tsflags=nodocs \
tzdata && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \
ln -s /usr/lib64/libnvidia-ml.so.1 /usr/lib64/libnvidia-ml.so && \
mkdir -p ${ZABBIX_CONF_DIR} && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agent2.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agent2 -V
EXPOSE 10050/TCP 31999/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agent2", "--foreground", "-c", "/etc/zabbix/zabbix_agent2.conf"]

View File

@ -0,0 +1,113 @@
<p><img src="https://assets.zabbix.com/img/logo/zabbix_logo_500x131.png" alt="logo"></p>
<h1 id="what-is-zabbix-">What is Zabbix?</h1>
<p>Zabbix is an enterprise-class open source distributed monitoring solution.</p>
<p>Zabbix is software that monitors numerous parameters of a network and the health and integrity of servers. Zabbix uses a flexible notification mechanism that allows users to configure e-mail based alerts for virtually any event. This allows a fast reaction to server problems. Zabbix offers excellent reporting and data visualisation features based on the stored data. This makes Zabbix ideal for capacity planning.</p>
<p>For more information and related downloads for Zabbix components, please visit <a href="https://hub.docker.com/u/zabbix/">https://hub.docker.com/u/zabbix/</a> and <a href="https://zabbix.com">https://zabbix.com</a></p>
<h1 id="what-is-zabbix-agent-2-">What is Zabbix agent 2?</h1>
<p>Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications (hard drives, memory, processor statistics etc).</p>
<h1 id="zabbix-agent-2-images">Zabbix agent 2 images</h1>
<p>Images are updated when new releases are published.</p>
<h1 id="how-to-use-this-image">How to use this image</h1>
<h2 id="start-zabbix-agent2-">Start <code>zabbix-agent2</code></h2>
<p>Start a Zabbix agent 2 container as follows:</p>
<pre><code>podman <span class="hljs-keyword">run</span><span class="bash"> --name some-zabbix-agent <span class="hljs-_">-e</span> ZBX_HOSTNAME=<span class="hljs-string">"some-hostname"</span> <span class="hljs-_">-e</span> ZBX_SERVER_HOST=<span class="hljs-string">"some-zabbix-server"</span> --init <span class="hljs-_">-d</span> zabbix/zabbix-agent2:tag</span>
</code></pre><p>Where <code>some-zabbix-agent2</code> is the name you want to assign to your container, <code>some-hostname</code> is the hostname, it is Hostname parameter in Zabbix agent 2 configuration file, <code>some-zabbix-server</code> is IP or DNS name of Zabbix server or proxy and <code>tag</code> is the tag specifying the version you want.</p>
<h2 id="connects-from-zabbix-server-or-zabbix-proxy-in-other-containers-passive-checks-">Connects from Zabbix server or Zabbix proxy in other containers (Passive checks)</h2>
<p>This image exposes the standard Zabbix agent 2 port (<code>10050</code>) to perform passive checks, so container linking makes Zabbix agent 2 instance available to Zabbix server and Zabbix proxy containers. Start your application container like this in order to link it to the Zabbix agent 2 container:</p>
<pre><code class="lang-console"><span class="hljs-comment">$</span> <span class="hljs-comment">podman</span> <span class="hljs-comment">run</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">name</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">link</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent:zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent2</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">init</span> <span class="hljs-literal">-</span><span class="hljs-comment">d</span> <span class="hljs-comment">zabbix/zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server:latest</span>
</code></pre>
<h2 id="connect-to-zabbix-server-or-zabbix-proxy-containers-active-checks-">Connect to Zabbix server or Zabbix proxy containers (Active checks)</h2>
<p>This image supports perform active checks, so container linking makes Zabbix server and Zabbix proxy containers available to Zabbix agent 2 instance. Start your application container like this in order to link Zabbix agent 2 to Zabbix server or Zabbix proxy containterns:</p>
<pre><code class="lang-console"><span class="hljs-comment">$</span> <span class="hljs-comment">podman</span> <span class="hljs-comment">run</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">name</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">link</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server:zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">init</span> <span class="hljs-literal">-</span><span class="hljs-comment">d</span> <span class="hljs-comment">zabbix/zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent2:latest</span>
</code></pre>
<h2 id="container-shell-access-and-viewing-zabbix-agent-2-logs">Container shell access and viewing Zabbix agent 2 logs</h2>
<p>The <code>podman exec</code> command allows you to run commands inside a Podman container. The following command line will give you a bash shell inside your <code>zabbix-agent2</code> container:</p>
<pre><code class="lang-console">$ podman <span class="hljs-built_in">exec</span> -ti some-zabbix-<span class="hljs-built_in">agent</span> /bin/bash
</code></pre>
<p>The Zabbix agent 2 log is available through Podman&#39;s container log:</p>
<pre><code class="lang-console">$ podman logs <span class="hljs-keyword">some</span>-zabbix-agent
</code></pre>
<h2 id="privileged-mode">Privileged mode</h2>
<p>By default, Podman containers are &quot;unprivileged&quot; and do not have access to the most of host resources. Zabbix agent 2 is designed to monitor system resources, to do that Zabbix agent 2 container must be privileged or you may mount some system-wide volumes. For example:</p>
<pre><code class="lang-console"><span class="hljs-comment">$</span> <span class="hljs-comment">podman</span> <span class="hljs-comment">run</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">name</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">link</span> <span class="hljs-comment">some</span><span class="hljs-literal">-</span><span class="hljs-comment">zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server:zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">server</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">privileged</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">init</span> <span class="hljs-literal">-</span><span class="hljs-comment">d</span> <span class="hljs-comment">zabbix/zabbix</span><span class="hljs-literal">-</span><span class="hljs-comment">agent2:latest</span>
</code></pre>
<pre><code class="lang-console">$ podman run --name some-zabbix-agent --link some-zabbix-<span class="hljs-string">server:</span>zabbix-server -v <span class="hljs-regexp">/dev/</span><span class="hljs-string">sdc:</span><span class="hljs-regexp">/dev/</span>sdc --init -d zabbix/zabbix-<span class="hljs-string">agent2:</span>latest
</code></pre>
<h2 id="environment-variables">Environment Variables</h2>
<p>When you start the <code>zabbix-agent2</code> image, you can adjust the configuration of the Zabbix agent 2 by passing one or more environment variables on the <code>podman run</code> command line.</p>
<h3 id="-zbx_hostname-"><code>ZBX_HOSTNAME</code></h3>
<p>This variable is unique, case sensitive hostname. By default, value is <code>hostname</code> of the container. It is <code>Hostname</code> parameter in <code>zabbix_agent2.conf</code>.</p>
<h3 id="-zbx_server_host-"><code>ZBX_SERVER_HOST</code></h3>
<p>This variable is IP or DNS name of Zabbix server or Zabbix proxy. By default, value is <code>zabbix-server</code>. It is <code>Server</code> parameter in <code>zabbix_agent2.conf</code>. It is allowed to specify Zabbix server or Zabbix proxy port number using <code>ZBX_SERVER_PORT</code> variable. It make sense in case of non-default port for active checks.</p>
<h3 id="-zbx_passive_allow-"><code>ZBX_PASSIVE_ALLOW</code></h3>
<p>This variable is boolean (<code>true</code> or <code>false</code>) and enables or disables feature of passive checks. By default, value is <code>true</code>.</p>
<h3 id="-zbx_passiveservers-"><code>ZBX_PASSIVESERVERS</code></h3>
<p>The variable is comma separated list of allowed Zabbix server or proxy hosts for connections to Zabbix agent 2 container.</p>
<h3 id="-zbx_active_allow-"><code>ZBX_ACTIVE_ALLOW</code></h3>
<p>This variable is boolean (<code>true</code> or <code>false</code>) and enables or disables feature of active checks. By default, value is <code>true</code>.</p>
<h3 id="-zbx_activeservers-"><code>ZBX_ACTIVESERVERS</code></h3>
<p>The variable is comma separated list of allowed Zabbix server or proxy hosts for connections to Zabbix agent 2 container. You may specify port of Zabbix server or Zabbix proxy in such syntax: <code>zabbix-server:10061,zabbix-proxy:10072</code>.</p>
<h3 id="-zbx_debuglevel-"><code>ZBX_DEBUGLEVEL</code></h3>
<p>The variable is used to specify debug level. By default, value is <code>3</code>. It is <code>DebugLevel</code> parameter in <code>zabbix_agent2.conf</code>. Allowed values are listed below:</p>
<ul>
<li><code>0</code> - basic information about starting and stopping of Zabbix processes;</li>
<li><code>1</code> - critical information</li>
<li><code>2</code> - error information</li>
<li><code>3</code> - warnings</li>
<li><code>4</code> - for debugging (produces lots of information)</li>
<li><code>5</code> - extended debugging (produces even more information)</li>
</ul>
<h3 id="-zbx_timeout-"><code>ZBX_TIMEOUT</code></h3>
<p>The variable is used to specify timeout for processing checks. By default, value is <code>3</code>.</p>
<h3 id="other-variables">Other variables</h3>
<p>Additionally the image allows to specify many other environment variables listed below:</p>
<pre><code><span class="hljs-attr">ZBX_ENABLEPERSISTENTBUFFER</span>=<span class="hljs-literal">false</span> # Available since <span class="hljs-number">5.0</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_PERSISTENTBUFFERPERIOD</span>=<span class="hljs-number">1</span>h # Available since <span class="hljs-number">5.0</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_ENABLESTATUSPORT</span>=
<span class="hljs-attr">ZBX_SOURCEIP</span>=
<span class="hljs-attr">ZBX_HEARTBEAT_FREQUENCY</span>=<span class="hljs-number">60</span> # Available since <span class="hljs-number">6.2</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_ENABLEREMOTECOMMANDS</span>=<span class="hljs-number">0</span> # Deprecated since <span class="hljs-number">5.0</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_LOGREMOTECOMMANDS</span>=<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_STARTAGENTS</span>=<span class="hljs-number">3</span>
<span class="hljs-attr">ZBX_HOSTNAMEITEM</span>=system.hostname
<span class="hljs-attr">ZBX_METADATA</span>=
<span class="hljs-attr">ZBX_METADATAITEM</span>=
<span class="hljs-attr">ZBX_REFRESHACTIVECHECKS</span>=<span class="hljs-number">120</span>
<span class="hljs-attr">ZBX_BUFFERSEND</span>=<span class="hljs-number">5</span>
<span class="hljs-attr">ZBX_BUFFERSIZE</span>=<span class="hljs-number">100</span>
<span class="hljs-attr">ZBX_MAXLINESPERSECOND</span>=<span class="hljs-number">20</span>
<span class="hljs-attr">ZBX_LISTENIP</span>=
<span class="hljs-attr">ZBX_LISTENPORT</span>=<span class="hljs-number">10051</span>
<span class="hljs-attr">ZBX_UNSAFEUSERPARAMETERS</span>=<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_TLSCONNECT</span>=unencrypted
<span class="hljs-attr">ZBX_TLSACCEPT</span>=unencrypted
<span class="hljs-attr">ZBX_TLSCAFILE</span>=
<span class="hljs-attr">ZBX_TLSCRLFILE</span>=
<span class="hljs-attr">ZBX_TLSSERVERCERTISSUER</span>=
<span class="hljs-attr">ZBX_TLSSERVERCERTSUBJECT</span>=
<span class="hljs-attr">ZBX_TLSCERTFILE</span>=
<span class="hljs-attr">ZBX_TLSKEYFILE</span>=
<span class="hljs-attr">ZBX_TLSPSKIDENTITY</span>=
<span class="hljs-attr">ZBX_TLSPSKFILE</span>=
<span class="hljs-attr">ZBX_DENYKEY</span>=system.run[*] # Available since <span class="hljs-number">5.0</span>.<span class="hljs-number">0</span>
<span class="hljs-attr">ZBX_ALLOWKEY</span>= # Available since <span class="hljs-number">5.0</span>.<span class="hljs-number">0</span>
</code></pre><p>Default values of these variables are specified after equal sign.</p>
<p>The allowed variables are identical of parameters in official <code>zabbix_agent2.conf</code> configuration file. For example, <code>ZBX_REFRESHACTIVECHECKS</code> = <code>RefreshActiveChecks</code>.</p>
<p>Please use official documentation for <a href="https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_agent2"><code>zabbix_agent2.conf</code></a> to get more information about the variables.</p>
<h2 id="allowed-volumes-for-the-zabbix-agent-2-container">Allowed volumes for the Zabbix agent 2 container</h2>
<h3 id="-etc-zabbix-zabbix_agentd-d-"><code>/etc/zabbix/zabbix_agentd.d</code></h3>
<p>The volume allows include <code>*.conf</code> files and extend Zabbix agent 2 using <code>UserParameter</code> feature.</p>
<h3 id="-var-lib-zabbix-enc-"><code>/var/lib/zabbix/enc</code></h3>
<p>The volume is used to store TLS related files. These file names are specified using <code>ZBX_TLSCAFILE</code>, <code>ZBX_TLSCRLFILE</code>, <code>ZBX_TLSKEY_FILE</code> and <code>ZBX_TLSPSKFILE</code> variables.</p>
<h3 id="-var-lib-zabbix-buffer-"><code>/var/lib/zabbix/buffer</code></h3>
<p>The volume is used to store the file, where Zabbix Agent2 should keep SQLite database. To enable the feature specify <code>ZBX_ENABLEPERSISTENTBUFFER=true</code>. Available since 5.0.0.</p>
<h1 id="user-feedback">User Feedback</h1>
<h2 id="documentation">Documentation</h2>
<p>Documentation for this image is stored in the <a href="https://github.com/zabbix/zabbix-docker/tree/7.4/Dockerfiles/agent2"><code>agent2/</code> directory</a> of the <a href="https://github.com/zabbix/zabbix-docker/"><code>zabbix/zabbix-docker</code> GitHub repo</a>. Be sure to familiarize yourself with the <a href="https://github.com/zabbix/zabbix-docker/blob/7.4/README.md">repository&#39;s <code>README.md</code> file</a> before attempting a pull request.</p>
<h2 id="issues">Issues</h2>
<p>If you have any problems with or questions about this image, please contact us through a <a href="https://github.com/zabbix/zabbix-docker/issues">GitHub issue</a>.</p>
<h3 id="known-issues">Known issues</h3>
<p>Currently it is not allowed to specify <code>ZBX_ALIAS</code> environment variable. Please use <code>/etc/zabbix/zabbix_agent.d</code> volume with additional configuration files with <code>Alias</code> options.</p>
<h2 id="contributing">Contributing</h2>
<p>You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.</p>
<p>Before you start to code, we recommend discussing your plans through a <a href="https://github.com/zabbix/zabbix-docker/issues">GitHub issue</a>, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.</p>

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,238 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
: ${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
: ${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
if [ "${ZBX_ENABLEPERSISTENTBUFFER,,}" == "true" ]; then
export ZBX_ENABLEPERSISTENTBUFFER=1
else
unset ZBX_ENABLEPERSISTENTBUFFER
unset ZBX_PERSISTENTBUFFERFILE
fi
if [ "${ZBX_ENABLESTATUSPORT,,}" == "true" ]; then
export ZBX_STATUSPORT=${ZBX_STATUSPORT="31999"}
else
unset ZBX_STATUSPORT
fi
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
}
prepare_zbx_agent_plugin_config() {
echo "** Preparing Zabbix agent plugin configuration files"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/ember.conf" "Plugins.EmberPlus.System.Path" "/usr/sbin/zabbix-agent2-plugin/ember-plus"
if command -v nvidia-smi 2>&1 >/dev/null
then
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/nvidia.conf" "Plugins.NVIDIA.System.Path" "/usr/sbin/zabbix-agent2-plugin/nvidia-gpu"
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
prepare_zbx_agent_plugin_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agent2 "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agent2' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.

View File

@ -0,0 +1,105 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=ubuntu:noble
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-mysql:ubuntu-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \
ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \
ZABBIX_CONF_DIR="/etc/zabbix"
ENV ZBX_PERSISTENTBUFFERFILE="$ZABBIX_USER_HOME_DIR/buffer/agent2.db" \
ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.source="${ZBX_SOURCES}" \
org.opencontainers.image.title="Zabbix agent 2" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
STOPSIGNAL SIGTERM
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"]
COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"]
RUN --mount=type=cache,target=/var/cache/apt/,sharing=locked \
--mount=type=cache,target=/var/lib/apt/,sharing=locked \
set -eux && \
echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d && \
INSTALL_PKGS="bash \
tzdata \
iputils-ping \
ca-certificates \
smartmontools \
sudo \
libssl3t64 \
libcurl4t64 \
libpcre2-8-0 \
libldap-2.4" && \
apt-get -y update && \
DEBIAN_FRONTEND=noninteractive apt-get -y \
--no-install-recommends install \
${INSTALL_PKGS} && \
groupadd \
--system \
--gid 1995 \
zabbix && \
useradd \
--system \
--comment "Zabbix monitoring system" \
-g zabbix \
--uid 1997 \
--shell /sbin/nologin \
--home-dir ${ZABBIX_USER_HOME_DIR} \
zabbix && \
echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \
mkdir -p ${ZABBIX_CONF_DIR} && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \
mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agent2.d && \
mkdir -p ${ZABBIX_USER_HOME_DIR} && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \
mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \
mkdir -p ${ZBX_USERPARAMETERDIR} && \
chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \
chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chgrp 0 ${ZABBIX_CONF_DIR} && \
chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \
${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \
${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \
${ZABBIX_USER_HOME_DIR}/ && \
chmod g=u ${ZABBIX_CONF_DIR} && \
/usr/sbin/zabbix_agent2 -V
EXPOSE 10050/TCP 31999/TCP
WORKDIR ${ZABBIX_USER_HOME_DIR}
COPY ["docker-entrypoint.sh", "/usr/bin/"]
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
USER 1997
CMD ["/usr/sbin/zabbix_agent2", "--foreground", "-c", "/etc/zabbix/zabbix_agent2.conf"]

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,238 @@
#!/bin/bash
set -o pipefail
set +e
# Script trace mode
if [ "${DEBUG_MODE,,}" == "true" ]; then
set -o xtrace
fi
# Default Zabbix installation name
# Default Zabbix server host
: ${ZBX_SERVER_HOST="zabbix-server"}
# Default Zabbix server port number
: ${ZBX_SERVER_PORT="10051"}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
escape_spec_char() {
local var_value=$1
var_value="${var_value//\\/\\\\}"
var_value="${var_value//[$'\n']/}"
var_value="${var_value//\//\\/}"
var_value="${var_value//./\\.}"
var_value="${var_value//\*/\\*}"
var_value="${var_value//^/\\^}"
var_value="${var_value//\$/\\\$}"
var_value="${var_value//\&/\\\&}"
var_value="${var_value//\[/\\[}"
var_value="${var_value//\]/\\]}"
echo "$var_value"
}
update_config_var() {
local config_path=$1
local var_name=$2
local var_value=$3
local is_multiple=$4
local masklist=("TLSPSKIdentity")
if [ ! -f "$config_path" ]; then
echo "**** Configuration file '$config_path' does not exist"
return
fi
if [[ " ${masklist[@]} " =~ " $var_name " ]] && [ ! -z "$var_value" ]; then
echo -n "** Updating '$config_path' parameter \"$var_name\": '****'. Enable DEBUG_MODE to view value ..."
else
echo -n "** Updating '$config_path' parameter \"$var_name\": '$var_value'..."
fi
# Remove configuration parameter definition in case of unset or empty parameter value
if [ -z "$var_value" ]; then
sed -i -e "/^$var_name=/d" "$config_path"
echo "removed"
return
fi
# Remove value from configuration parameter in case of set to double quoted parameter value
if [[ "$var_value" == '""' ]]; then
if [ "$(grep -E "^$var_name=" $config_path)" ]; then
sed -i -e "/^$var_name=/s/=.*/=/" "$config_path"
else
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=/" "$config_path"
fi
echo "undefined"
return
fi
# Use full path to a file for TLS related configuration parameters
if [[ $var_name =~ ^TLS.*File$ ]] && [[ ! $var_value =~ ^/.+$ ]]; then
var_value=$ZABBIX_USER_HOME_DIR/enc/$var_value
fi
# Escaping characters in parameter value and name
var_value=$(escape_spec_char "$var_value")
var_name=$(escape_spec_char "$var_name")
if [ "$(grep -E "^$var_name=$var_value$" $config_path)" ]; then
echo "exists"
elif [ "$(grep -E "^$var_name=" $config_path)" ] && [ "$is_multiple" != "true" ]; then
sed -i -e "/^$var_name=/s/=.*/=$var_value/" "$config_path"
echo "updated"
elif [ "$(grep -Ec "^# $var_name=" $config_path)" -gt 1 ]; then
sed -i -e "/^[#;] $var_name=$/i\\$var_name=$var_value" "$config_path"
echo "added first occurrence"
elif [ "$(grep -Ec "^[#;] $var_name=" $config_path)" -gt 0 ]; then
sed -i -e "/^[#;] $var_name=/s/.*/&\n$var_name=$var_value/" "$config_path"
echo "added"
else
sed -i -e '$a\' -e "$var_name=$var_value" "$config_path"
echo "added at the end"
fi
}
update_config_multiple_var() {
local config_path=$1
local var_name=$2
local var_value=$3
var_value="${var_value%\"}"
var_value="${var_value#\"}"
local IFS=,
local OPT_LIST=($var_value)
for value in "${OPT_LIST[@]}"; do
update_config_var $config_path $var_name $value true
done
}
file_process_from_env() {
local var_name=$1
local file_name=$2
local var_value=$3
if [ ! -z "$var_value" ]; then
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
fi
if [ -n "$var_value" ]; then
export "$var_name"="$file_name"
fi
# Remove variable with plain text data
unset "${var_name%%FILE}"
}
prepare_zbx_agent_config() {
: ${ZBX_PASSIVESERVERS=""}
: ${ZBX_ACTIVESERVERS=""}
if [ ! -z "$ZBX_SERVER_HOST" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST","$ZBX_PASSIVESERVERS
elif [ ! -z "$ZBX_SERVER_HOST" ]; then
ZBX_PASSIVESERVERS=$ZBX_SERVER_HOST
fi
if [ ! -z "$ZBX_SERVER_HOST" ]; then
if [ ! -z "$ZBX_SERVER_PORT" ] && [ "$ZBX_SERVER_PORT" != "10051" ]; then
ZBX_SERVER_HOST=$ZBX_SERVER_HOST":"$ZBX_SERVER_PORT
fi
if [ ! -z "$ZBX_ACTIVESERVERS" ]; then
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST","$ZBX_ACTIVESERVERS
else
ZBX_ACTIVESERVERS=$ZBX_SERVER_HOST
fi
fi
: ${ZBX_PASSIVE_ALLOW:="true"}
if [ "${ZBX_PASSIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_PASSIVESERVERS" ]; then
echo "** Using '$ZBX_PASSIVESERVERS' servers for passive checks"
export ZBX_PASSIVESERVERS="${ZBX_PASSIVESERVERS}"
else
unset ZBX_PASSIVESERVERS
fi
: ${ZBX_ACTIVE_ALLOW:="true"}
if [ "${ZBX_ACTIVE_ALLOW,,}" == "true" ] && [ ! -z "$ZBX_ACTIVESERVERS" ]; then
echo "** Using '$ZBX_ACTIVESERVERS' servers for active checks"
export ZBX_ACTIVESERVERS="${ZBX_ACTIVESERVERS}"
else
unset ZBX_ACTIVESERVERS
fi
unset ZBX_SERVER_HOST
unset ZBX_SERVER_PORT
if [ "${ZBX_ENABLEPERSISTENTBUFFER,,}" == "true" ]; then
export ZBX_ENABLEPERSISTENTBUFFER=1
else
unset ZBX_ENABLEPERSISTENTBUFFER
unset ZBX_PERSISTENTBUFFERFILE
fi
if [ "${ZBX_ENABLESTATUSPORT,,}" == "true" ]; then
export ZBX_STATUSPORT=${ZBX_STATUSPORT="31999"}
else
unset ZBX_STATUSPORT
fi
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "DenyKey" "${ZBX_DENYKEY}"
update_config_multiple_var "${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf" "AllowKey" "${ZBX_ALLOWKEY}"
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
file_process_from_env "ZBX_TLSCRLFILE" "${ZBX_TLSCRLFILE}" "${ZBX_TLSCRL}"
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
file_process_from_env "ZBX_TLSPSKFILE" "${ZBX_TLSPSKFILE}" "${ZBX_TLSPSK}"
}
prepare_zbx_agent_plugin_config() {
echo "** Preparing Zabbix agent plugin configuration files"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql"
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/ember.conf" "Plugins.EmberPlus.System.Path" "/usr/sbin/zabbix-agent2-plugin/ember-plus"
if command -v nvidia-smi 2>&1 >/dev/null
then
update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/nvidia.conf" "Plugins.NVIDIA.System.Path" "/usr/sbin/zabbix-agent2-plugin/nvidia-gpu"
fi
}
clear_zbx_env() {
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
for env_var in $(env | grep -E "^ZABBIX_"); do
unset "${env_var%%=*}"
done
}
prepare_agent() {
echo "** Preparing Zabbix agent"
prepare_zbx_agent_config
prepare_zbx_agent_plugin_config
clear_zbx_env
}
#################################################
if [ "${1#-}" != "$1" ]; then
set -- /usr/sbin/zabbix_agent2 "$@"
fi
if [ "$1" == '/usr/sbin/zabbix_agent2' ]; then
prepare_agent
fi
exec "$@"
#################################################

View File

@ -0,0 +1,74 @@
# syntax=docker/dockerfile:1
# escape=`
ARG OS_BASE_IMAGE=mcr.microsoft.com/windows/nanoserver:ltsc2022
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ARG BUILD_BASE_IMAGE=zabbix-build-agent:ltsc2022-agent2-${ZBX_VERSION}
FROM ${BUILD_BASE_IMAGE} AS builder
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git
ENV ZABBIX_USER_HOME_DIR="C:\zabbix" `
ZABBIX_CONF_DIR="C:\zabbix\conf"
ENV ZBX_PERSISTENTBUFFERFILE="$ZABBIX_USER_HOME_DIR\buffer\agent2.db" `
ZBX_USERPARAMETERDIR="${ZABBIX_USER_HOME_DIR}\user_scripts"
LABEL org.opencontainers.image.title="Zabbix agent 2" `
org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" `
org.opencontainers.image.vendor="Zabbix SIA" `
org.opencontainers.image.url="https://zabbix.com/" `
org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" `
org.opencontainers.image.licenses="AGPL v3.0" `
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" `
org.opencontainers.image.version="${ZBX_VERSION}" `
org.opencontainers.image.source="${ZBX_SOURCES}"
COPY --from=builder ["C:\\zabbix-${ZBX_VERSION}-output", "C:\\zabbix"]
COPY --from=builder ["C:\\build_deps\\pwsh", "C:\\Program Files\\PowerShell"]
COPY [".\\docker-entrypoint.ps1", "C:\\zabbix"]
WORKDIR C:\zabbix\
USER ContainerAdministrator
RUN setx /M PATH "%PATH%;C:\Program Files\PowerShell"
SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop';"]
RUN $env:PATH = [string]::Format('{0}\zabbix\sbin;{0}\zabbix\bin;', $env:SystemDrive) + $env:PATH; `
[Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine); `
`
[Environment]::SetEnvironmentVariable('ZABBIX_USER_HOME_DIR', $env:ZABBIX_USER_HOME_DIR, [EnvironmentVariableTarget]::Machine); `
`
Write-Host ('Verifying Zabbix agent 2 {0} ...' -f $env:ZBX_VERSION); `
zabbix_agent2.exe -V;
RUN Set-Location -Path $env:SystemDrive\.; `
`
New-Item -Force -ItemType directory -Path $env:ZABBIX_CONF_DIR | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZABBIX_CONF_DIR\zabbix_agentd.d | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZABBIX_CONF_DIR\zabbix_agent2.d | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZABBIX_USER_HOME_DIR\enc | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZABBIX_USER_HOME_DIR\enc_internal | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZABBIX_USER_HOME_DIR\buffer | Out-Null; `
New-Item -Force -ItemType directory -Path $env:ZBX_USERPARAMETERDIR | Out-Null; `
`
net accounts /MaxPWAge:unlimited; `
net user /add zabbix /expire:never /passwordreq:no; `
$acl = Get-Acl -Path $env:ZABBIX_USER_HOME_DIR; `
$ace = New-Object Security.AccessControl.FileSystemAccessRule ('zabbix', 'Modify', 'ContainerInherit, ObjectInherit', 'InheritOnly', 'Allow'); `
$acl.AddAccessRule($ace); `
Set-Acl -AclObject $acl -Path $env:ZABBIX_USER_HOME_DIR;
USER zabbix
EXPOSE 10050/TCP 31999/TCP
CMD C:\zabbix\docker-entrypoint.ps1 C:\zabbix\sbin\zabbix_agent2.exe -c C:\zabbix\conf\zabbix_agent2.conf -f

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1,266 @@
# Script trace mode
if ($env:DEBUG_MODE -eq "true") {
Set-PSDebug -trace 1
}
# Default Zabbix server host
if ($env:ZBX_SERVER_HOST -eq $null) {
$env:ZBX_SERVER_HOST="zabbix-server"
}
# Default Zabbix server port number
if ($env:ZBX_SERVER_PORT -eq $null) {
$env:ZBX_SERVER_PORT="10051"
}
# Default directories
# Internal directory for TLS related files, used when TLS*File specified as plain text values
$ZabbixInternalEncDir="$env:ZABBIX_USER_HOME_DIR/enc_internal"
function Update-Config-Var {
Param (
[Parameter(Mandatory=$true, Position=0)]
[ValidateNotNullOrEmpty()]
[string] $ConfigPath,
[Parameter(Mandatory=$true, Position=1)]
[ValidateNotNullOrEmpty()]
[string]$VarName,
[Parameter(Mandatory=$false, Position=2)]
[string]$VarValue = $null,
[Parameter(Mandatory=$false, Position=3)]
[bool]$IsMultiple
)
$MaskList = "TLSPSKIdentity"
if (-not(Test-Path -Path $ConfigPath -PathType Leaf)) {
throw "**** Configuration file '$ConfigPath' does not exist"
}
if ($MaskList.Contains($VarName) -eq $true -And [string]::IsNullOrWhitespace($VarValue) -ne $true) {
Write-Host -NoNewline "** Updating '$ConfigPath' parameter ""$VarName"": '****'. Enable DEBUG_MODE to view value ..."
}
else {
Write-Host -NoNewline "** Updating '$ConfigPath' parameter ""$VarName"": '$VarValue'..."
}
if ([string]::IsNullOrWhitespace($VarValue)) {
if ((Get-Content $ConfigPath | %{$_ -match "^$VarName="}) -contains $true) {
(Get-Content $ConfigPath) |
Where-Object {$_ -notmatch "^$VarName=" } |
Set-Content $ConfigPath
}
Write-Host "removed"
return
}
if ($VarValue -eq '""') {
(Get-Content $ConfigPath) | Foreach-Object { $_ -Replace "^($VarName=)(.*)", '$1' } | Set-Content $ConfigPath
Write-Host "undefined"
return
}
if ($VarName -match '^TLS.*File$') {
$VarValue="$env:ZABBIX_USER_HOME_DIR\enc\$VarValue"
}
if ((Get-Content $ConfigPath | %{$_ -match "^$VarName="}) -contains $true -And $IsMultiple -ne $true) {
(Get-Content $ConfigPath) | Foreach-Object { $_ -Replace "^$VarName=.+", "$VarName=$VarValue" } | Set-Content $ConfigPath
Write-Host updated
}
elseif ((Get-Content $ConfigPath | select-string -pattern "^[#;] $VarName=").length -gt 1) {
(Get-Content $ConfigPath) |
Foreach-Object {
$_
if ($_ -match "^[#;] $VarName=$") {
"$VarName=$VarValue"
}
} | Set-Content $ConfigPath
Write-Host "added first occurrence"
}
elseif ((Get-Content $ConfigPath | select-string -pattern "^[#;] $VarName=").length -gt 0) {
(Get-Content $ConfigPath) |
Foreach-Object {
$_
if ($_ -match "^[#;] $VarName=") {
"$VarName=$VarValue"
}
} | Set-Content $ConfigPath
Write-Host "added"
}
else {
Add-Content -Path $ConfigPath -Value "$VarName=$VarValue"
Write-Host "added at the end"
}
}
function Update-Config-Multiple-Var {
Param (
[Parameter(Mandatory=$true, Position=0)]
[ValidateNotNullOrEmpty()]
[string] $ConfigPath,
[Parameter(Mandatory=$true, Position=1)]
[ValidateNotNullOrEmpty()]
[string]$VarName,
[Parameter(Mandatory=$false, Position=2)]
[string]$VarValue = $null
)
foreach ($value in $VarValue.split(',')) {
Update-Config-Var $ConfigPath $VarName $value $true
}
}
function File-Process-From-Env {
Param (
[Parameter(Mandatory=$true, Position=0)]
[ValidateNotNullOrEmpty()]
[string] $VarName,
[Parameter(Mandatory=$false, Position=1)]
[string]$FileName = $null,
[Parameter(Mandatory=$false, Position=2)]
[string]$VarValue = $null
)
if (![string]::IsNullOrEmpty($VarValue)) {
$VarValue | Set-Content "$ZabbixInternalEncDir\$VarName"
$FileName="$ZabbixInternalEncDir\$VarName"
}
if (![string]::IsNullOrEmpty($FileName)) {
Set-Item env:$VarName -Value $FileName
}
$VarName=$VarName -replace 'FILE$'
Set-Item env:$VarName -Value $null
}
function Prepare-Zbx-Agent-Config {
if ($env:ZBX_PASSIVESERVERS -eq $null) {
$env:ZBX_PASSIVESERVERS=""
}
if ($env:ZBX_ACTIVESERVERS -eq $null) {
$env:ZBX_ACTIVESERVERS=""
}
if (![string]::IsNullOrEmpty($env:ZBX_SERVER_HOST) -And ![string]::IsNullOrEmpty($env:ZBX_PASSIVESERVERS)) {
$env:ZBX_PASSIVESERVERS="$env:ZBX_SERVER_HOST,$env:ZBX_PASSIVESERVERS"
}
elseif (![string]::IsNullOrEmpty($env:ZBX_SERVER_HOST)) {
$env:ZBX_PASSIVESERVERS=$env:ZBX_SERVER_HOST
}
if (![string]::IsNullOrEmpty($env:ZBX_SERVER_HOST)) {
if (![string]::IsNullOrEmpty($env:ZBX_SERVER_PORT) -And $env:ZBX_SERVER_PORT -ne "10051") {
$env:ZBX_SERVER_HOST="$env:ZBX_SERVER_HOST:$env:ZBX_SERVER_PORT"
}
if (![string]::IsNullOrEmpty($env:ZBX_ACTIVESERVERS)) {
$env:ZBX_ACTIVESERVERS="$env:ZBX_SERVER_HOST,$env:ZBX_ACTIVESERVERS"
}
else {
$env:ZBX_ACTIVESERVERS=$env:ZBX_SERVER_HOST
}
}
if ([string]::IsNullOrWhitespace($env:ZBX_PASSIVE_ALLOW)) {
$env:ZBX_PASSIVE_ALLOW="true"
}
if ($env:ZBX_PASSIVE_ALLOW -eq "true") {
Write-Host "** Using '$env:ZBX_PASSIVESERVERS' servers for passive checks"
}
else {
Set-Item env:ZBX_PASSIVESERVERS -Value $null
}
if ([string]::IsNullOrWhitespace($env:ZBX_ACTIVE_ALLOW)) {
$env:ZBX_ACTIVE_ALLOW="true"
}
if ($env:ZBX_ACTIVE_ALLOW -eq "true") {
Write-Host "** Using '$env:ZBX_ACTIVESERVERS' servers for active checks"
}
else {
Set-Item env:ZBX_ACTIVESERVERS -Value $null
}
Set-Item env:ZBX_SERVER_HOST -Value $null
Set-Item env:ZBX_SERVER_PORT -Value $null
if ([string]::IsNullOrWhitespace($env:ZBX_ENABLEPERSISTENTBUFFER)) {
$env:ZBX_ENABLEPERSISTENTBUFFER="true"
}
if ($env:ZBX_ENABLEPERSISTENTBUFFER -eq "true") {
$env:ZBX_ENABLEPERSISTENTBUFFER="1"
}
else {
Set-Item env:ZBX_ENABLEPERSISTENTBUFFER -Value $null
Set-Item env:ZBX_PERSISTENTBUFFERFILE -Value $null
}
if ([string]::IsNullOrWhitespace($env:ZBX_ENABLESTATUSPORT)) {
$env:ZBX_ENABLESTATUSPORT="true"
}
if ($env:ZBX_ENABLESTATUSPORT -eq "true") {
$env:ZBX_STATUSPORT="31999"
}
Update-Config-Multiple-Var "$env:ZABBIX_CONF_DIR\zabbix_agent2_item_keys.conf" "DenyKey" "$env:ZBX_DENYKEY"
Update-Config-Multiple-Var "$env:ZABBIX_CONF_DIR\zabbix_agent2_item_keys.conf" "AllowKey" "$env:ZBX_ALLOWKEY"
File-Process-From-Env "ZBX_TLSCAFILE" "$env:ZBX_TLSCAFILE" "$env:ZBX_TLSCA"
File-Process-From-Env "ZBX_TLSCRLFILE" "$env:ZBX_TLSCRLFILE" "$env:ZBX_TLSCRL"
File-Process-From-Env "ZBX_TLSCERTFILE" "$env:ZBX_TLSCERTFILE" "$env:ZBX_TLSCERT"
File-Process-From-Env "ZBX_TLSKEYFILE" "$env:ZBX_TLSKEYFILE" "$env:ZBX_TLSKEY"
File-Process-From-Env "ZBX_TLSPSKFILE" "$env:ZBX_TLSPSKFILE" "$env:ZBX_TLSPSK"
}
function Prepare-Zbx-Agent-Plugins-Config {
Write-Host "** Preparing Zabbix agent 2 (plugins) configuration files"
Update-Config-Var "$env:ZABBIX_CONF_DIR\zabbix_agent2.d\plugins.d\mongodb.conf" "Plugins.MongoDB.System.Path" "$env:ZABBIX_USER_HOME_DIR\zabbix-agent2-plugin\mongodb.exe"
Update-Config-Var "$env:ZABBIX_CONF_DIR\zabbix_agent2.d\plugins.d\postgresql.conf" "Plugins.PostgreSQL.System.Path" "$env:ZABBIX_USER_HOME_DIR\zabbix-agent2-plugin\postgresql.exe"
Update-Config-Var "$env:ZABBIX_CONF_DIR\zabbix_agent2.d\plugins.d\mssql.conf" "Plugins.MSSQL.System.Path" "$env:ZABBIX_USER_HOME_DIR\zabbix-agent2-plugin\mssql.exe"
Update-Config-Var "$env:ZABBIX_CONF_DIR\zabbix_agent2.d\plugins.d\ember.conf" "Plugins.EmberPlus.System.Path" "$env:ZABBIX_USER_HOME_DIR\zabbix-agent2-plugin\ember-plus.exe"
if (Get-Command nvidia-smi.exe -errorAction SilentlyContinue) {
Update-Config-Var "$env:ZABBIX_CONF_DIR\zabbix_agent2.d\plugins.d\nvidia.conf" "Plugins.NVIDIA.System.Path" "$env:ZABBIX_USER_HOME_DIR\zabbix-agent2-plugin\nvidia-gpu.exe"
}
}
function ClearZbxEnv() {
if ([string]::IsNullOrWhitespace($env:ZBX_CLEAR_ENV)) {
return
}
$env_vars=Get-ChildItem env:* | Where-Object {$_.Name -match "^ZABBIX_.*" } | foreach { $_.Name }
foreach ($env_var in $env_vars) {
Set-Item env:$env_var -Value $null
}
}
function PrepareAgent {
Write-Host "** Preparing Zabbix agent 2"
Prepare-Zbx-Agent-Config
Prepare-Zbx-Agent-Plugins-Config
ClearZbxEnv
}
$commandArgs=$args
if ($args.length -gt 0 -And $args[0].Substring(0, 1) -eq '-') {
$commandArgs = "C:\zabbix\sbin\zabbix_agent2.exe " + $commandArgs
}
if ($args.length -gt 0 -And $args[0] -eq "C:\zabbix\sbin\zabbix_agent2.exe") {
PrepareAgent
}
if ($args.length -gt 0) {
Invoke-Expression "$CommandArgs"
}

View File

@ -0,0 +1,88 @@
![logo](https://assets.zabbix.com/img/logo/zabbix_logo_500x131.png)
# What is Zabbix?
Zabbix is an enterprise-class open source distributed monitoring solution.
Zabbix is software that monitors numerous parameters of a network and the health and integrity of servers. Zabbix uses a flexible notification mechanism that allows users to configure e-mail based alerts for virtually any event. This allows a fast reaction to server problems. Zabbix offers excellent reporting and data visualisation features based on the stored data. This makes Zabbix ideal for capacity planning.
For more information and related downloads for Zabbix components, please visit https://hub.docker.com/u/zabbix/ and https://zabbix.com
# What is Zabbix build base?
Zabbix build base image is prepared build environment for building Zabbix components. It contains all required packages, binaries and tools.
# Zabbix build base images
These are the only official Zabbix build base Docker images. They are based on Alpine Linux v3.23, Ubuntu 24.04 (noble), CentOS Stream 10 and Oracle Linux 10 images. The available versions of the image are:
Zabbix build base 6.0 (tags: alpine-6.0-latest, ubuntu-6.0-latest, ol-6.0-latest)
Zabbix build base 6.0.* (tags: alpine-6.0.*, ubuntu-6.0.*, ol-6.0.*)
Zabbix build base 7.0 (tags: alpine-7.0-latest, ubuntu-7.0-latest, ol-7.0-latest)
Zabbix build base 7.0.* (tags: alpine-7.0.*, ubuntu-7.0.*, ol-7.0.*, ltsc2019-7.0.*, ltsc2022-7.0.*)
Zabbix build base 7.2 (tags: alpine-7.2-latest, ubuntu-7.2-latest, ol-7.2-latest)
Zabbix build base 7.2.* (tags: alpine-7.2.*, ubuntu-7.2.*, ol-7.2.*, ltsc2019-7.2.*, ltsc2022-7.2.*)
Zabbix build base 7.4 (tags: alpine-7.4-latest, ubuntu-7.4-latest, ol-7.4-latest, alpine-latest, ubuntu-latest, ol-latest, latest)
Zabbix build base 7.4.* (tags: alpine-7.4.*, ubuntu-7.4.*, ol-7.4.*, ltsc2019-7.4.*, ltsc2022-7.4.*)
Zabbix build base 8.0 (tags: alpine-trunk, ubuntu-trunk, ol-trunk, ltsc2019-trunk, ltsc2022-trunk)
Images are updated when new releases are published. The image with ``latest`` tag is based on Alpine Linux.
# How to use this image
The image is required to build Zabbix components. It is base image for [MySQL](https://github.com/zabbix/zabbix-docker/tree/7.4/Dockerfiles/build-mysql), [PostgreSQL](https://github.com/zabbix/zabbix-docker/tree/7.4/Dockerfiles/build-pgsql) and [SQLite3](https://github.com/zabbix/zabbix-docker/tree/7.4/Dockerfiles/build-sqlite3) base images. While the image contains only required packages, MySQL, PostgreSQL and SQLite3 base images compile Zabbix component and prepare them for usage.
# The image variants
The `zabbix-build-base` images come in many flavors, each designed for a specific use case.
## `zabbix-build-base:alpine-<version>`
This image is based on the popular [Alpine Linux project](http://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
This variant is highly recommended when final image size being as small as possible is desired. The main caveat to note is that it does use [musl libc](http://www.musl-libc.org) instead of [glibc and friends](http://www.etalabs.net/compare_libcs.html), so certain software might run into issues depending on the depth of their libc requirements. However, most software doesn't have an issue with this, so this variant is usually a very safe choice. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images.
To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar).
## `zabbix-build-base:ubuntu-<version>`
This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
## `zabbix-build-base:ol-<version>`
Oracle Linux is an open-source operating system available under the GNU General Public License (GPLv2). Suitable for general purpose or Oracle workloads, it benefits from rigorous testing of more than 128,000 hours per day with real-world workloads and includes unique innovations such as Ksplice for zero-downtime kernel patching, DTrace for real-time diagnostics, the powerful Btrfs file system, and more.
# Supported Docker versions
This image is officially supported on Docker version 1.12.0.
Support for older versions (down to 1.6) is provided on a best-effort basis.
Please see [the Docker installation documentation](https://docs.docker.com/installation/) for details on how to upgrade your Docker daemon.
# User Feedback
## Documentation
Documentation for this image is stored in the [`build-base/` directory](https://github.com/zabbix/zabbix-docker/tree/7.4/Dockerfiles/build-base) of the [`zabbix/zabbix-docker` GitHub repo](https://github.com/zabbix/zabbix-docker/). Be sure to familiarize yourself with the [repository's `README.md` file](https://github.com/zabbix/zabbix-docker/blob/master/README.md) before attempting a pull request.
## Issues
If you have any problems with or questions about this image, please contact us through a [GitHub issue](https://github.com/zabbix/zabbix-docker/issues).
### Known issues
## Contributing
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
Before you start to code, we recommend discussing your plans through a [GitHub issue](https://github.com/zabbix/zabbix-docker/issues), especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
## License
Starting from Zabbix version 7.0, all subsequent Zabbix versions will be released under the GNU Affero General Public License version 3 (AGPLv3).
You can modify the relevant version and propagate such modified version under the terms of the AGPLv3 as published by the Free Software Foundation.
For additional details, including answers to common questions about the AGPLv3, see the generic FAQ from the [Free Software Foundation](http://www.fsf.org/licenses/gpl-faq.html).
Zabbix is Open Source Software, however, if you use Zabbix in a commercial context we kindly ask you to support the development of Zabbix by purchasing some level of technical support.
All previous Zabbix software versions up to 6.4 are released under the GNU General Public License version 2 (GPLv2). The formal terms of the GPLv2 and AGPLv3 can be found at http://www.fsf.org/licenses/.

View File

@ -0,0 +1,62 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=alpine:3.23
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} \
PATH=/usr/lib/jvm/default-jvm/bin:$PATH \
JAVA_HOME=/usr/lib/jvm/default-jvm
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix build base image contains all required packages to build Zabbix images" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.title="Zabbix build base" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
RUN set -eux && \
ARCH_SUFFIX="$(cat /etc/apk/arch)"; \
case "$ARCH_SUFFIX" in \
riscv64) \
openjdk_packages='openjdk21 openjdk21-jre-headless'; \
;; \
*) openjdk_packages='openjdk17 openjdk17-jre-headless'; \
esac; \
INSTALL_PKGS="bash \
autoconf \
automake \
c-ares-dev \
coreutils \
curl \
curl-dev \
libevent-dev \
libssh-dev \
sqlite-dev \
libmodbus-dev \
libxml2-dev \
linux-headers \
mysql-dev \
net-snmp-dev \
openipmi-dev \
openldap-dev \
openssl-dev \
patch \
pcre2-dev \
libpq-dev \
gettext \
git \
g++ \
go \
make \
$openjdk_packages \
unixodbc-dev \
zlib-dev" && \
apk add \
--no-cache \
--clean-protected \
${INSTALL_PKGS}

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,69 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=quay.io/centos/centos:stream10-minimal
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} \
PATH=/usr/local/go/bin:$PATH \
GOPROXY=direct
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix build base image contains all required packages to build Zabbix images" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.title="Zabbix build base" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="autoconf \
automake \
bash \
gcc \
patch \
c-ares-devel \
pcre2-devel \
libcurl-devel \
libevent-devel \
libssh-devel \
# libmodbus-devel \
libxml2-devel \
openssl-devel \
openldap-devel \
make \
mysql8.4-devel \
net-snmp-devel \
OpenIPMI-devel \
openldap-devel \
sqlite-devel \
postgresql-private-devel \
postgresql-server-devel \
java-21-openjdk-devel \
git \
gettext \
go-toolset \
unixODBC-devel \
zlib-devel" && \
microdnf -y install \
--disablerepo "*" \
--enablerepo "extras-common" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs epel-release && \
microdnf -y install \
--disablerepo "*" \
--enablerepo "baseos" \
--enablerepo "appstream" \
--enablerepo "crb" \
--enablerepo="epel" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs ${INSTALL_PKGS}

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,63 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION=7.4
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} \
PATH=/usr/local/go/bin:$PATH
LABEL org.opencontainers.image.authors="Alexey Pustovalov <alexey.pustovalov@zabbix.com>" \
org.opencontainers.image.description="Zabbix build base image contains all required packages to build Zabbix images" \
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" \
org.opencontainers.image.licenses="AGPL v3.0" \
org.opencontainers.image.title="Zabbix build base" \
org.opencontainers.image.url="https://zabbix.com/" \
org.opencontainers.image.vendor="Zabbix SIA" \
org.opencontainers.image.version="${ZBX_VERSION}"
COPY ["conf/etc/yum.repos.d/oracle-epel-ol10.repo", "/etc/yum.repos.d/oracle-epel-ol10.repo"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
set -eux && \
INSTALL_PKGS="autoconf \
automake \
bash \
gcc \
go-toolset \
patch \
c-ares-devel \
pcre2-devel \
libcurl-devel \
libevent-devel \
libssh-devel \
# libmodbus-devel \
libxml2-devel \
openssl-devel \
openldap-devel \
make \
mysql8.4-devel \
net-snmp-devel \
OpenIPMI-devel \
openldap-devel \
sqlite-devel \
postgresql-private-devel \
postgresql-server-devel \
java-21-openjdk-devel \
git \
gettext \
unixODBC-devel \
zlib-devel" && \
microdnf -y install \
--disablerepo "*" \
--enablerepo "ol10_baseos_latest" \
--enablerepo "ol10_appstream" \
--enablerepo "ol10_codeready_builder" \
--enablerepo="ol10_u0_developer_EPEL" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--nodocs ${INSTALL_PKGS}

View File

@ -0,0 +1 @@
../README.md

View File

@ -0,0 +1 @@
../../../build.sh

View File

@ -0,0 +1,6 @@
[ol10_u0_developer_EPEL]
name=Oracle Linux $releasever.0 EPEL Packages for Development ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL10/0/developer/EPEL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

View File

@ -0,0 +1,82 @@
# syntax=docker/dockerfile:1
ARG OS_BASE_IMAGE=registry.access.redhat.com/ubi10/ubi-minimal:10.1
FROM ${OS_BASE_IMAGE}
ARG MAJOR_VERSION=7.4
ARG RELEASE=6
ARG ZBX_VERSION=${MAJOR_VERSION}.6
ENV TERM=xterm \
ZBX_VERSION=${ZBX_VERSION} \
PATH=/usr/local/go/bin:$PATH
LABEL description="Prepared environment to build Zabbix components" \
maintainer="alexey.pustovalov@zabbix.com" \
name="zabbix/zabbix-build-base-trunk" \
release="${RELEASE}" \
summary="Zabbix build base" \
url="https://www.zabbix.com/" \
vendor="Zabbix SIA" \
version="${MAJOR_VERSION}" \
io.k8s.description="Prepared environment to build Zabbix components" \
io.k8s.display-name="Zabbix build base" \
io.openshift.expose-services="" \
io.openshift.tags="zabbix,build" \
org.label-schema.description="Prepared environment to build Zabbix components" \
org.label-schema.license="AGPL v3.0" \
org.label-schema.name="zabbix-build-base-rhel" \
org.label-schema.url="https://zabbix.com/" \
org.label-schema.vcs-ref="${VCS_REF}" \
org.label-schema.vendor="Zabbix SIA"
COPY ["licenses", "/licenses"]
RUN --mount=type=tmpfs,target=/var/lib/dnf/ \
--mount=type=tmpfs,target=/var/cache/yum/ \
# --mount=type=bind,target=/run/secrets/,src=secrets/ \
set -eux && \
INSTALL_PKGS="autoconf \
automake \
bash \
gcc \
go-toolset \
patch \
c-ares-devel \
pcre2-devel \
libcurl-devel \
libevent-devel \
libssh-devel \
# libmodbus-devel \
libxml2-devel \
openssl-devel \
openldap-devel \
make \
mysql8.4-devel \
net-snmp-devel \
OpenIPMI-devel \
openldap-devel \
sqlite-devel \
postgresql-private-devel \
postgresql-server-devel \
java-21-openjdk-devel \
git \
gettext \
unixODBC-devel \
zlib-devel" && \
curl --tlsv1.2 -sSf -L https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm -o /tmp/epel-release-latest-10.noarch.rpm && \
rpm -ivh /tmp/epel-release-latest-10.noarch.rpm && \
rm -rf /tmp/epel-release-latest-10.noarch.rpm && \
ARCH_SUFFIX="$(arch)"; \
microdnf -y install \
--disablerepo "*" \
--enablerepo "ubi-10-baseos-rpms" \
--enablerepo "ubi-10-appstream-rpms" \
--enablerepo "rhel-10-for-$ARCH_SUFFIX-baseos-rpms" \
--enablerepo "rhel-10-for-$ARCH_SUFFIX-appstream-rpms" \
--enablerepo "codeready-builder-for-rhel-10-$ARCH_SUFFIX-rpms" \
--enablerepo "epel" \
--setopt=install_weak_deps=0 \
--setopt=keepcache=0 \
--best \
--setopt=tsflags=nodocs \
${INSTALL_PKGS}

View File

@ -0,0 +1 @@
../README.md

Some files were not shown because too many files have changed in this diff Show More