Zabbix Documentation 5.0

3.04.04.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


manual:installation:install_from_packages:rhel_centos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
manual:installation:install_from_packages:rhel_centos [2020/01/29 14:45]
martins-v explicitly stating zabbix user in commands
manual:installation:install_from_packages:rhel_centos [2020/03/11 06:59] (current)
martins-v fixing link target
Line 5: Line 5:
 Official Zabbix packages are available for: Official Zabbix packages are available for:
  
-  * RHEL 8, CentOS 8 and Oracle Linux 8 +|RHEL 8, CentOS 8 and Oracle Linux 8  ​|[[https://​www.zabbix.com/​download?​zabbix=5.0&​os_distribution=red_hat_enterprise_linux&​os_version=8&​db=mysql|Download]] ​ | 
-  RHEL 7, CentOS 7 and Oracle Linux 7+|RHEL 7, CentOS 7 and Oracle Linux 7  ​|[[https://​www.zabbix.com/​download?​zabbix=5.0&​os_distribution=red_hat_enterprise_linux&​os_version=7&​db=mysql|Download]] ​ |
  
-In this documentation we will refer to all 3 using the term ''​RHEL''​.+Packages are available with either MySQL/​PostgreSQL database and Apache/​Nginx webserver support.
  
-Some agent and proxy packages are available for [[https://​repo.zabbix.com/​zabbix/​3.5/​rhel/​6/​x86_64/​|RHEL 6]] and [[https://​repo.zabbix.com/zabbix/​3.5/​rhel/​5/​x86_64|RHEL 5]] as well.+<note important>​Zabbix 5.0 is not released yetThe download links lead to pre-5.0 packages.</note>
  
-==== Adding Zabbix repository ====+Some agent and proxy packages are available for [[https://​repo.zabbix.com/​zabbix/​5.0/​rhel/​6/​x86_64/​|RHEL 6]] and [[https://​repo.zabbix.com/​zabbix/​5.0/​rhel/​5/​x86_64|RHEL 5]] as well.
  
-Install the repository ​configuration packageThis package contains yum (software package manager) configuration files.+Zabbix official ​repository ​provides fping, iksemel, libssh2 packages as well. These packages are located in the [[https://​repo.zabbix.com/​non-supported/​|non-supported]] directory.
  
-<note important>​Zabbix 5.0 is not released yet. The links below lead to pre-5.0 packages.</​note>​+==== Notes on installation ====
  
-RHEL 8:+See [[https://​www.zabbix.com/​download?​zabbix=5.0&​os_distribution=red_hat_enterprise_linux&​os_version=8&​db=mysql|installation instructions]] per platform in the download page for:
  
-  ​# rpm -Uvh https://repo.zabbix.com/zabbix/​4.5/​rhel/​8/​x86_64/​zabbix-release-4.5-1.el8.noarch.rpm+  ​* installing the repository 
 +  * installing server/agent/frontend 
 +  * creating initial database, importing initial data 
 +  * configuring database for Zabbix server 
 +  * configuring PHP for Zabbix frontend 
 +  * starting server/agent processes 
 +  * configuring Zabbix frontend
  
-RHEL 7:+Zabbix agent 2 (zabbix-agent2) is supported only on RHEL 8. 
  
-  # rpm -Uvh https://repo.zabbix.com/​zabbix/4.5/rhel/7/x86_64/zabbix-release-4.5-1.el7.noarch.rpm+If you want to run Zabbix agent as root, see [[https://www.zabbix.com/​documentation/5.0/manual/appendix/install/run_agent_as_root|Running agent as root]].
  
-RHEL 6:+=== Importing data with Timescale DB ===
  
-  # rpm -Uvh https://​repo.zabbix.com/​zabbix/​4.5/​rhel/​6/​x86_64/​zabbix-release-4.5-1.el6.noarch.rpm+With TimescaleDB,​ in addition to the import command for PostgreSQL, also run:
  
-RHEL 5:+  # zcat /​usr/​share/​doc/​zabbix-server-pgsql*/​timescaledb.sql.gz | sudo -u zabbix psql zabbix
  
-  # rpm -Uvh https://​repo.zabbix.com/zabbix/​4.5/​rhel/​5/​x86_64/​zabbix-release-4.5-1.el5.noarch.rpm+<note warning>​TimescaleDB is supported with Zabbix server only.</note>
  
 === Frontend installation prerequisites === === Frontend installation prerequisites ===
Line 42: Line 48:
   # yum-config-manager --enable rhel-7-server-optional-rpms   # yum-config-manager --enable rhel-7-server-optional-rpms
  
-==== Server/proxy/frontend installation ====+<​note>​ Note that Nginx for RHEL is available in Red Hat Software Collections and in [[https://fedoraproject.org/​wiki/​EPEL|EPEL]]. If Red Hat Software Collections are used, simply install zabbix-nginx-conf-scl package. </​note>​
  
-To install Zabbix server on RHEL 7/8 ([[manual/​installation/​install_from_packages/​rhel_centos#​zabbix_frontend_and_server_on_rhel_6|deprecated on RHEL 6]]) with MySQL support:+=== PHP 7.2 ===
  
-  # yum install zabbix-server-mysql+Zabbix frontend requires PHP version **7.2 or newer** starting with Zabbix 5.0. 
  
-To install Zabbix proxy with MySQL support:+Note that RHEL/CentOS 7 only provide PHP 5.4. See [[:manual/​installation/​install_from_packages/​frontend_on_rhel7|instructions]] for installing Zabbix frontend on Red Hat Enterprise Linux/​CentOS 7.
  
-  ​yum install zabbix-proxy-mysql+If you use RHEL 6 please read the section about [[manual/​installation/​install_from_packages/​rhel_centos#zabbix_frontend_and_server_on_rhel_6|using Zabbix frontend on RHEL 6]] on how to configure the frontend.
  
-Substitute '​mysql'​ in the commands with '​pgsql'​ to use PostgreSQL, or with '​sqlite3'​ to use SQLite3 (proxy only).+=== SELinux configuration ===
  
-To install ​Zabbix frontend ​on RHEL 8 with MySQL/​Apache support:+Having SELinux status enabled in enforcing mode, you need to execute the following commands to enable communication between ​Zabbix frontend ​and server:
  
-  ​yum install zabbix-web-mysql zabbix-apache-conf+RHEL 7 and later: 
 +  ​setsebool ​-P httpd_can_connect_zabbix on 
 +  If the database is accessible over network (including '​localhost'​ in case of PostgreSQL),​ you need to allow Zabbix frontend to connect to the database too: 
 +  # setsebool ​-P httpd_can_network_connect_db on
  
-To install Zabbix frontend on RHEL 7 ([[manual/​installation/​install_from_packages/​rhel_centos#zabbix_frontend_and_server_on_rhel_6|deprecated ​on RHEL 6]]) with MySQL/​Apache support:+RHEL prior to 7
 +  ​setsebool -P httpd_can_network_connect on 
 +  # setsebool -P zabbix_can_network ​on
  
-  # yum install zabbix-web-mysql+After the frontend and SELinux configuration is done, restart the Apache ​web server:
  
-To install Zabbix frontend on RHEL 7/8 with MySQL/Nginx support:+  # service httpd restart
  
-  # yum install epel-release +==== Proxy installation ====
-  # yum install zabbix-web-mysql zabbix-nginx-conf+
  
-Note that Nginx for RHEL is available only in [[https://​fedoraproject.org/​wiki/​EPEL|EPEL]].+Once the required repository ​is added, you can install Zabbix proxy by running:
  
 +  # yum install zabbix-proxy-mysql
  
-=== Creating database ===+Substitute '​mysql'​ in the commands with '​pgsql'​ to use PostgreSQL, or with '​sqlite3'​ to use SQLite3 (proxy only).
  
-For Zabbix [[manual:​concepts:​server|server]] and [[manual:​concepts:​proxy|proxy]] daemons a database ​is required. It is not needed to run Zabbix [[manual:​concepts:​agent|agent]].+== Creating ​database ​==
  
-<note warning>​Separate databases are needed ​for Zabbix server and Zabbix proxy; they cannot use the same databaseTherefore, if they are installed on the same host, their databases must be created with different names!</​note>​+[[:​manual/​appendix/​install/​db_scripts|Create]] a separate database ​for Zabbix proxy.
  
-Create ​the database ​using the provided instructions for [[manual:​appendix:​install:​db_scripts#​mysql|MySQL]] or [[manual:​appendix:​install:​db_scripts#​postgresql|PostgreSQL]].+Zabbix server and Zabbix proxy cannot use the same database. If they are installed on the same host, the proxy database must have a different name.
  
-=== Importing data === +== Importing data ===
- +
-Now import initial schema and data for the **server** with MySQL: +
- +
-  # zcat /​usr/​share/​doc/​zabbix-server-mysql*/​create.sql.gz | mysql -uzabbix -p zabbix +
- +
-You will be prompted to enter your newly created database password. +
- +
-With PostgreSQL:​ +
- +
-  # zcat /​usr/​share/​doc/​zabbix-server-pgsql*/​create.sql.gz | sudo -u zabbix psql zabbix +
- +
-With TimescaleDB,​ in addition to the previous command, also run: +
- +
-  # zcat /​usr/​share/​doc/​zabbix-server-pgsql*/​timescaledb.sql.gz | sudo -u zabbix psql zabbix +
- +
-<note warning>​TimescaleDB is supported with Zabbix server only.</​note>​+
  
-For **proxy**, import ​initial schema:+Import ​initial schema:
  
   # zcat /​usr/​share/​doc/​zabbix-proxy-mysql*/​schema.sql.gz | mysql -uzabbix -p zabbix   # zcat /​usr/​share/​doc/​zabbix-proxy-mysql*/​schema.sql.gz | mysql -uzabbix -p zabbix
Line 105: Line 100:
   # zcat /​usr/​share/​doc/​zabbix-proxy-sqlite3*/​schema.sql.gz | sqlite3 zabbix.db   # zcat /​usr/​share/​doc/​zabbix-proxy-sqlite3*/​schema.sql.gz | sqlite3 zabbix.db
  
-=== Configure database for Zabbix ​server/proxy ===+== Configure database for Zabbix proxy ==
  
-Edit zabbix_server.conf (and zabbix_proxy.conf) to use their respective databases. For example:+Edit zabbix_proxy.conf:​
  
   # vi /​etc/​zabbix/​zabbix_server.conf   # vi /​etc/​zabbix/​zabbix_server.conf
Line 114: Line 109:
   DBUser=zabbix   DBUser=zabbix
   DBPassword=<​password>​   DBPassword=<​password>​
 +
 +In DBName for Zabbix proxy use a separate database from Zabbix server.
  
 In DBPassword use Zabbix database password for MySQL; PosgreSQL user password for PosgreSQL. In DBPassword use Zabbix database password for MySQL; PosgreSQL user password for PosgreSQL.
  
-Use ''​DBHost=''​ with PostgreSQL. You might want to keep the default setting ''​DBHost=localhost''​ (or an IP address), but this would make PostgreSQL use a network socket for connecting to Zabbix. See **SELinux configuration** below for instructions.+Use ''​DBHost=''​ with PostgreSQL. You might want to keep the default setting ''​DBHost=localhost''​ (or an IP address), but this would make PostgreSQL use a network socket for connecting to Zabbix. See [[:​manual/​installation/​install_from_packages/​rhel_centos#​selinux_configuration|SELinux configuration]] for instructions.
  
-=== Starting Zabbix ​server ​process ​===+== Starting Zabbix ​proxy process ==
  
-To start Zabbix ​server ​process ​on RHEL8:+To start Zabbix ​proxy process ​and make it start at system boot:
  
-  # service zabbix-server httpd php-fpm ​start+  # service zabbix-proxy start 
 +  # systemctl enable zabbix-proxy
  
-On RHEL 7:+== Frontend configuration ==
  
-  # service zabbix-server ​httpd start+A Zabbix proxy does not have a frontend; it communicates with Zabbix ​server ​only.
  
-On RHEL 7/8 with Nginx:+==== Java gateway installation ====
  
-  # service zabbix-server nginx php-fpm start+It is required to install [[:​manual/​concepts/​java|Java gateway]] only if you want to monitor JMX applications. Java gateway is lightweight and does not require a database.
  
-To make it start at system boot on RHEL 8:+Once the required repository is added, you can install Zabbix Java gateway by running:
  
-  # systemctl enable ​zabbix-server httpd php-fpm+  # yum install ​zabbix-java-gateway
  
-On RHEL 7: +Proceed ​to [[:manual/concepts/java/from_rhel_centos|setup]] for more details ​on configuring and running Java gateway.
- +
-  # systemctl enable zabbix-server httpd +
- +
-On RHEL 7/8 with Nginx: +
- +
-  # systemctl enable zabbix-server nginx php-fpm +
- +
-RHEL prior to 7: +
-  # chkconfig --level 12345 zabbix-server on +
- +
-Substitute '​zabbix-server'​ with '​zabbix-proxy'​ if you are installing Zabbix proxy. +
- +
-=== Zabbix frontend configuration === +
- +
-Depending on the web server used (Apache/​Nginx) edit the corresponding configuration file for Zabbix frontend: +
- +
-  * For Apache the configuration file is located in ''/​etc/​httpd/​conf.d/​zabbix.conf''​. Some PHP settings are already configured. Note that in RHEL 7 (but not in RHEL 8) it's necessary to uncomment and set the right [[http://php.net/manual/en/timezones.php|date.timezone]] setting for you. +
- +
-  php_value max_execution_time 300 +
-  php_value memory_limit 128M +
-  php_value post_max_size 16M +
-  php_value upload_max_filesize 2M +
-  php_value max_input_time 300 +
-  php_value max_input_vars 10000 +
-  php_value always_populate_raw_post_data -1 +
-  # php_value date.timezone Europe/Riga +
- +
-  * The zabbix-nginx-conf package installs a separate Nginx server for Zabbix frontend. Its configuration file is located in ''/​etc/​nginx/​conf.d/​zabbix.conf''​. For Zabbix frontend to work, it's necessary to uncomment and set ''​listen''​ and/or ''​server_name''​ directives. +
- +
-  # listen 80; +
-  # server_name example.com;​ +
- +
-  * Zabbix uses its own dedicated php-fpm connection pool: +
-    * In RHEL 8 with both Apache and Nginx  +
-    * In RHEL 7 only with Nginx  +
- +
-Its configuration file is located in ''/​etc/​php-fpm.d/​zabbix.conf''​. Some PHP settings are already configured. But it's necessary to set the right [[http://​php.net/​manual/​en/​timezones.php|date.timezone]] setting ​for you in this file. +
- +
-  php_value[max_execution_time] = 300 +
-  php_value[memory_limit] = 128M +
-  php_value[post_max_size] = 16M +
-  php_value[upload_max_filesize] = 2M +
-  php_value[max_input_time] = 300 +
-  php_value[max_input_vars] = 10000 +
-  ; php_value[date.timezone] = Europe/​Riga +
- +
-Now you are ready to proceed with [[manual/​installation/​install#​installing_frontend|frontend installation steps]] which will allow you to access your newly installed Zabbix. +
- +
-Note that a Zabbix proxy does not have a frontend; it communicates with Zabbix server only. +
- +
-<​note>​Zabbix official repository provides fping, iksemel, libssh2 packages as well. These packages are located in the //​[[https://​repo.zabbix.com/​non-supported/​|non-supported]]//​ directory.</​note>​ +
- +
-If you use RHEL 6 please read the section about [[manual/​installation/​install_from_packages/​rhel_centos#​zabbix_frontend_and_server_on_rhel_6|using Zabbix frontend ​on RHEL 6]] on how to configure the frontend. +
- +
-=== SELinux configuration === +
- +
-Having SELinux status enabled in enforcing mode, you need to execute the following commands to enable communication between Zabbix frontend and server: +
- +
-RHEL 7 and later: +
-  # setsebool -P httpd_can_connect_zabbix on +
-  If the database is accessible over network (including '​localhost'​ in case of PostgreSQL),​ you need to allow Zabbix frontend to connect to the database too: +
-  # setsebool -P httpd_can_network_connect_db on +
- +
-RHEL prior to 7: +
-  # setsebool -P httpd_can_network_connect on +
-  # setsebool -P zabbix_can_network on +
- +
-As frontend and SELinux configuration is done, you need to restart Apache web server:\\ +
- +
-  # service httpd restart+
  
 === Zabbix frontend and server on RHEL 6 === === Zabbix frontend and server on RHEL 6 ===
Line 230: Line 158:
  
   $ rpm -ql zabbix-web | grep example.conf   $ rpm -ql zabbix-web | grep example.conf
- 
-==== Agent installation ==== 
- 
-To install the agent, run 
- 
-  # yum install zabbix-agent 
- 
-To start the agent, run: 
- 
-  # service zabbix-agent start 
- 
-Substitute '​zabbix-agent'​ with '​zabbix-agent2'​ in these commands if using Zabbix agent 2 (only RHEL/CentOS 8). 
- 
-If you want to run Zabbix agent as root, see here [[https://​www.zabbix.com/​documentation/​5.0/​manual/​appendix/​install/​run_agent_as_root]]. 
-==== Java gateway installation ==== 
- 
-It is required to install [[:​manual/​concepts/​java|Java gateway]] only if you want to monitor JMX applications. Java gateway is lightweight and does not require a database. 
- 
-Once the required [[#​adding_zabbix_repository|repository]] is added, you can install Zabbix Java gateway by running: 
- 
-  # yum install zabbix-java-gateway 
- 
-Proceed to [[:​manual/​concepts/​java/​from_rhel_centos|setup]] for more details on configuring and running Java gateway. 
  
 ==== Installing debuginfo packages ==== ==== Installing debuginfo packages ====