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
linux:monitoring:zabbix:install [2019/11/05 09:20]
jlucas [OpenBSD updates]
linux:monitoring:zabbix:install [2019/11/06 12:43] (current)
jlucas
Line 37: Line 37:
 Install utilities needed to configure and install Zabbix Install utilities needed to configure and install Zabbix
  
-  doas pkg_add wget net-snmp curl libssh2 pcre+  doas pkg_add curl htop libssh2 net-snmp pcre wget
  
 ===Install PostgreSQL=== ===Install PostgreSQL===
Line 88: Line 88:
  
   doas rcctl enable postgresql   doas rcctl enable postgresql
 +
 +Populate the Zabbix DB within PostgreSQL
 +
 +Create Zabbix PostgreSQL user
 +
 +  doas -u _postgresql createuser -U postgres --pwprompt zabbix
 +  Enter password for new role: 
 +  Enter it again: 
 +  Password: 
 +
 +Setup the database for Zabbix with the just create Zabbix user
 +
 +  doas -u _postgresql createdb -U postgres -O zabbix -E Unicode -T template0 zabbix
 +
 +Configure the database for Zabbix server.  Edit file /etc/zabbix/zabbix_server.conf
 +
 +  DBPassword=password
  
 ====Zabbix Server from packages==== ====Zabbix Server from packages====
Line 93: Line 110:
 Install Zabbix server and agent from the package tree Install Zabbix server and agent from the package tree
  
-  doas pkg_add zabbix_server zabbix_agent+  doas pkg_add zabbix-server-4.0.11-pgsql zabbix-agent-4.0.11 
 + 
 +Import the initial schema and data 
 + 
 +  cat /usr/local/share/zabbix/schema/postgresql/schema.sql | doas psql -U zabbix zabbix 
 +  # stop here if you are creating database for Zabbix proxy 
 +  cat /usr/local/share/zabbix/schema/postgresql/images.sql | doas psql -U zabbix zabbix 
 +  cat /usr/local/share/zabbix/schema/postgresql/data.sql | doas psql -U zabbix zabbix
  
 Enable and start daemons Enable and start daemons
Line 99: Line 123:
   doas rcctl enable zabbix_server   doas rcctl enable zabbix_server
   doas rcctl start zabbix_server   doas rcctl start zabbix_server
-  doas rcctl enable zabbix_agent +  doas rcctl enable zabbix_agentd 
-  doas rcctl start zabbix_agent+  doas rcctl start zabbix_agentd
  
 Tail log file to make sure zabbix is running and working as expected Tail log file to make sure zabbix is running and working as expected
Line 122: Line 146:
   doas useradd -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix   doas useradd -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
   doas chown zabbix:zabbix /usr/lib/zabbix   doas chown zabbix:zabbix /usr/lib/zabbix
- 
-Populate the Zabbix DB within PostgreSQL 
- 
-Create Zabbix PostgreSQL user 
- 
-  doas -u _postgresql createuser -U postgres --pwprompt zabbix 
-  Enter password for new role:  
-  Enter it again:  
-  Password:  
- 
-Setup the database for Zabbix with the just create Zabbix user 
- 
-  doas -u _postgresql createdb -U postgres -O zabbix -E Unicode -T template0 zabbix 
  
 Import the initial schema and data Import the initial schema and data
  
   cd zabbix-4.4.0/database/postgresql   cd zabbix-4.4.0/database/postgresql
-  cat schema.sql | doas -zabbix psql zabbix+  cat schema.sql | doas psql -zabbix zabbix
   # stop here if you are creating database for Zabbix proxy   # stop here if you are creating database for Zabbix proxy
-  cat images.sql | doas -zabbix psql zabbix +  cat images.sql | doas psql -zabbix zabbix 
-  cat data.sql | doas -zabbix psql zabbix+  cat data.sql | doas psql -zabbix zabbix
  
 Configure Zabbix source Configure Zabbix source
Line 155: Line 166:
   doas make install   doas make install
  
-====Zabbix frontend system prep====+====Zabbix frontend from packages==== 
 + 
 +Install package(s) 
 + 
 +  doas pkg_add zabbix-web-4.0.11p0 
 + 
 +Update the **//zabbix.conf.php//** with the following 
 + 
 +  $DB['TYPE'                    = 'POSTGRESQL'; 
 +  $DB['PASSWORD'                = '<YOUR_PASSWORD>'; 
 + 
 +====Install PHP-FPM & enable httpd====
  
-===Install Apache and PHP===+===Install PHP===
  
   doas pkg_add php-7.3.10 php-pgsql-7.3.10 php-gd-7.3.10 php-ldap-7.3.10   doas pkg_add php-7.3.10 php-pgsql-7.3.10 php-gd-7.3.10 php-ldap-7.3.10
  
-Enable the PgSQL entension for PHP+Enable PHP extension
  
   doas ln -sf /etc/php-7.3.sample/pgsql.ini /etc/php-7.3/   doas ln -sf /etc/php-7.3.sample/pgsql.ini /etc/php-7.3/
Line 174: Line 196:
   max_execution_time = 300   max_execution_time = 300
   max_input_time = 300   max_input_time = 300
 +  date.timezone = America/Los_Angeles
  
 ===Configure /etc/httpd.conf=== ===Configure /etc/httpd.conf===
Line 182: Line 205:
      
   types {   types {
-  include "/usr/share/misc/mime.types"+    include "/usr/share/misc/mime.types"
   }   }
-   +  server "HOSTNAME" { 
-  server "default" { +    listen on * tls port 443 
-   listen on * port 80 +    tls { 
-   +      certificate "/etc/ssl/HOSTNAME.pem" 
-   root "/htdocs+      key "/etc/ssl/private/HOSTNAME.key" 
-   directory index index.php +    } 
-   +    root "/zabbix
-   location "*.php*"+    directory index index.php } 
-   fastcgi socket "/run/php-fpm.sock" +    # Increase connection limits to extend the lifetime 
-   }+    connection { max requests 500, timeout 3600 } 
 +    connection { max request body 8388608 } 
 +    location "/conf/*"
 +      block return 401 
 +    } 
 +    location "*.php*"
 +      fastcgi socket "/run/php-fpm.sock" 
 +    } 
 +    location "/.well-known/acme-challenge/*"
 +      root "/acme" 
 +      request strip 2 
 +    }
   }   }
  
-Enable and start the bundled httpd daemon+Enable and start both the httpd and php73_fpm daemons:
  
 +  doas rcctl enable php73_fpm
 +  doas rcctl start php73_fpm
   doas rcctl enable httpd   doas rcctl enable httpd
   doas rcctl start httpd   doas rcctl start httpd
  
-====Zabbix frontend from packages==== +If you want to have a TLS secured connection, follow these instructions [[https://www.romanzolotarev.com/openbsd/acme-client.html|here]].
- +
-Install package(s) +
- +
-  doas pkg_add zabbix_web +
- +
-Update the **//zabbix.conf.php//** with the following +
- +
-  $DB['TYPE'                    = 'POSTGRESQL'; +
-  $DB['PASSWORD'                = '<YOUR_PASSWORD>';+
  
 ====Zabbix frontend from source==== ====Zabbix frontend from source====