README.Slackware
================

This file contains some specific instructions to complete the
installation of zabbix_proxy on Slackware.

You will need to have a working installation of MariaDB (*) for zabbix_proxy
to run. MariaDB server does not have to be on the same box as your
zabbix_proxy, but they need to be able to communicate and you will need at
least the MariaDB client on the box that will run zabbix_proxy.

(*) zabbix can work with MySQL and its forks, Oracle, PostgreSQL and IBM DB2
databases, but these instructions are for MariaDB, as it is included with
Slackware.

0) Before running the SlackBuild script
---------------------------------------

0.1) zabbix group & user

Before running the zabbix_proxy.SlackBuild script, you will need to create
the 'zabbix' user and group. The script won't run if these do not exist.

The suggested UID and GID is 228, but you can change this as needed:

  # groupadd -g 228 zabbix
  # useradd -u 228 -g zabbix -d /dev/null -s /bin/false zabbix

1) Configuring zabbix_proxy
---------------------------

For those in a hurry, here are some basic steps to get zabbix proxy up &
running:

1.1) Create initial database

Never use the same DB, as the zabbix server uses. That will defenetly break it.

On your MariaDB server, connect with full privileges:

  # mysql -u <your_user> -p<your_password>

Create the zabbix database & user:

  mysql> create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
  mysql> use mysql;
  mysql> grant all on zabbix_proxy.* to zabbix_proxy@<your_zabbix_proxy> identified by '<your_password>';
  mysql> flush privileges;
  mysql> quit

(note: if your MariaDB server and zabbix proxy are the same, use "localhost"
 for <your_zabbix_proxy>)

On your zabbix proxy, connect to the new database:

  # cd /usr/share/zabbix_proxy/database/mysql
  # mysql -h <your_mysql_server> -u zabbix_proxy -p<your_password> zabbix_proxy

In MariaDB, create the schema & add initial data:

  mysql> source schema.sql;
  mysql> quit

1.2) zabbix_proxy configuration file

A standard configuration file is installed as /etc/zabbix/zabbix_proxy.conf

You will need to change at least the following lines:

  Server=<ip_of_your_zabbix_server>
  Hostname=<hostname_of_your_zabbix_proxy>

  DBHost=<your_mysql_server>            (Change if MariaDB is not on localhost)
  DBName=zabbix_proxy
  DBUser=zabbix_proxy                   ("root" doesn't sound like a good idea)
  DBPassword=<your_password>            (Change as defined above)

2) Start & Stop scripts for zabbix proxy
-----------------------------------------

2.1) Automatic startup and shutdown

If you want to start zabbix_proxy on system bootup, include these lines in
your /etc/rc.d/rc.local:

  # Start zabbix_proxy
  if [ -x /etc/rc.d/rc.zabbix_proxy ]; then
    echo "Starting zabbix proxy..."
    /etc/rc.d/rc.zabbix_proxy start
  fi

To guarantee a clean shutdown of zabbix_proxy, include this in
/etc/rc.d/rc.local_shutdown:

  # Stop zabbix_proxy
  if [ -x /etc/rc.d/rc.zabbix_proxy ]; then
    echo "Stopping zabbix proxy..."
    /etc/rc.d/rc.zabbix_proxy stop
  fi

2.2) Make /etc/rc.d/rc.zabbix_proxy executable

Additionally, you'll have to set the rc script to be executable just like
any other Slackware rc script:

  # chmod +x /etc/rc.d/rc.zabbix_proxy

3) Starting zabbix proxy daemon
-------------------------------

Now you are ready to start zabbix_proxy by calling the startup script:

  # /etc/rc.d/rc.zabbix_proxy start

You can check the log file (/var/log/zabbix/zabbig_proxy.log) in case of
problems.

Zabbix uses ports 10050 & 10051 to communicate, so make sure these aren't
blocked on your network.
