-
-
Notifications
You must be signed in to change notification settings - Fork 227
Multi node Zabbix Proxy setup
This page will describe how to setup an multinode Zabbix Proxy with the wdijkerman-zabbix puppet module. Before you continue, you’ll need to know which database you want to use.
We will discuss 2 setups which are supported with the wdijkerman-zabbix puppet module. This is using the following backends:
-
PostgreSQL
-
MySQL
Zabbix can also use other backends like Oracle Database, as I don’t have the ability to create/maintain Oracle databases this is something I can’t support now. If you do have examples which shows how to setup an multi node setup for Zabbix Server with an Oracle Database as backend, please let me know. We can update this document so other can use it too.
In the next paragraph each earlier mentioned database will be explained. Examples will be given for an 2 node setup and an 3 node setup.
The following configuration can be used when PostgreSQL is the preferred database.
node 'server11.example.com' { # My ip: 192.168.30.11 class { 'postgresql::client': } class { 'zabbix::proxy': zabbix_server_host => '192.168.30.11', manage_database => false, database_host => 'server12.example.com', database_type => 'postgresql', } } node 'server12.example.com' { # My ip: 192.168.30.12 class { 'postgresql::server': listen_addresses => '192.168.30.12' } class { 'zabbix::database': database_type => 'postgresql', zabbix_type => 'proxy', zabbix_proxy_ip => '192.168.30.11', database_name => 'zabbix-proxy', database_user => 'zabbix-proxy', database_password => 'zabbix-proxy', } }
server11.example.com This is the server running the Zabbix Proxy. It needs to have the postgres client software installed, to connect to the database.
server12.example.com This is the host running the PostgreSQL database. The `zabbix::database` will configure the database and will create the Zabbix database user. We have to tell the database on which nodes the other components are running: Users will be created which can only login from these hosts. We have to add the database_name, database_user and database_password parameters, as these are default set to 'zabbix-server'.
The following configuration can be used when MySQL is the preferred database.
node 'server11.example.com' { # My ip: 192.168.30.11 class { 'mysql::client': } class { 'zabbix::proxy': zabbix_server_host => '192.168.30.11', manage_database => false, database_host => 'server12.example.com', database_type => 'mysql', } } node 'server12.example.com' { # My ip: 192.168.30.12 class { 'mysql::server': override_options => { 'mysqld' => { 'bind_address' => '192.168.30.12', }, }, } class { 'zabbix::database': database_type => 'mysql', zabbix_type => 'proxy', zabbix_proxy => 'server11.example.com', database_name => 'zabbix-proxy', database_user => 'zabbix-proxy', database_password => 'zabbix-proxy', } }
server11.example.com This is the server running the Zabbix Proxy. It needs to have the postgres client software installed, to connect to the database.
server12.example.com This is the host running the MySQL database. The `zabbix::database` will configure the database and will create the Zabbix database user. We have to tell the database on which nodes the other components are running: Users will be created which can only login from these hosts. We have to add the database_name, database_user and database_password parameters, as these are default set to 'zabbix-server'.