# MOD system requirement
###### tags: `By_Ivan`
Considering our current data collection system, docker and zabbix are those who needs preperation before install. Most of the system information can be found inside the document or from the pkg manager.
As for those midlewares, the python scripts do require some additional modules. These miscellaneous pieces could be distributed within the docker image, without further adjustment.
On the other hand, although the correct version of libssh is crucial for ssh agent to run (see [ISSUE](https://hackmd.io/WrUQumo9QxWsTk6kQKw97g)), the problem can be solved by docker image as well.
[Deployment scheme]/(NYI)
## Docker Requirement
:::spoiler docker architectures:
aarch64, all, amd64, arm64, armhf, armv7h, armv7hl, armv7hnl, earmv7hf, i386, i586, i686, noarch, x86, x86_64
:::
:::spoiler docker linux packages:
apk, deb, eopkg, rpm, tgz, txz, xz, zst
:::
### OS
https://pkgs.org/download/docker
ubuntu 14.04 LTS ~ ubuntu 20.10
centOS 6 ~ centOS 8
### system
https://docs.docker.com/config/containers/resource_constraints/
By default, a container has no resource constraints and can use as much of a given resource as the host’s kernel scheduler allows.
### Docker for windows
[Docker for Windows](https://docs.docker.com/docker-for-windows/install/)
System Requirements
* Windows 10 64-bit: Pro, Enterprise, or Education (Build 16299 or later). For Windows 10 Home, see [Install Docker Desktop on Windows Home](https://docs.docker.com/docker-for-windows/install-windows-home/).
* Hyper-V and Containers Windows features must be enabled.
* The following hardware prerequisites are required to successfully run Client Hyper-V on Windows 10:
* 64 bit processor with [Second Level Address Translation (SLAT)](https://en.wikipedia.org/wiki/Second_Level_Address_Translation)
* 4GB system RAM
* BIOS-level hardware virtualization support must be enabled in the BIOS settings. For more information, see [Virtualization](https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization-must-be-enabled)
## Zabbix requirement
### AGENT
| Requirement | Status | Description |
| :--------: | :--------: | -------- |
|libpcre| Mandatory |PCRE library is required for Perl Compatible Regular Expression (PCRE) support.</br> The naming may differ depending on the GNU/Linux distribution, for example 'libpcre3' or 'libpcre1'.</br> Note that you need exactly PCRE (v8.x); PCRE2 (v10.x) library is not used.|
|GnuTLS, OpenSSL or LibreSSL |Optional |Required when using encryption.</br>On Microsoft Windows systems OpenSSL 1.1.1 or later is required.|
### SERVER
Mandatory requirements are needed always. Optional requirements are needed for the support of the specific function.
| Requirement | Status | Description |
| :--------: | :--------: | -------- |
|libpcre| Mandatory |PCRE library is required for Perl Compatible Regular Expression (PCRE) support.</br> The naming may differ depending on the GNU/Linux distribution, for example 'libpcre3' or 'libpcre1'.</br> Note that you need exactly PCRE (v8.x); PCRE2 (v10.x) library is not used.|
|libevent||Required for bulk metric support and IPMI monitoring.</br> Version 1.4 or higher.</br>Note that for Zabbix proxy this requirement is optional; it is needed for IPMI monitoring support.
|libpthread ||Required for mutex and read-write lock support.
|zlib ||Required for compression support.
|OpenIPMI |Optional| Required for IPMI support.
|libssh2 or libssh || Required for SSH checks. </br>Version 1.0 or higher (libssh2); 0.6.0 or higher (libssh).</br>libssh is supported since Zabbix 4.4.6.
|fping ||Required for ICMP ping items.
|libcurl || Required for web monitoring, VMware monitoring, SMTP authentication, web.page.* Zabbix agent items, HTTP agent items and Elasticsearch (if used). Version 7.28.0 or higher is recommended.</br>Libcurl version requirements:</br>- SMTP authentication: version 7.20.0 or higher</br>- Elasticsearch: version 7.28.0 or higher
|libxml2 || Required for VMware monitoring and XML XPath preprocessing.
|net-snmp || Required for SNMP support. Version 5.3.0 or higher.
|GnuTLS, OpenSSL or LibreSSL || Required when using encryption.