====== Install Zabbix Server ======
First, make sure that all of the latest patches are installed.
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
Configure Firewall:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow 10051/tcp
sudo ufw enable
----
- [[linux:install:webserver|Install the NGINX web server and the PHP application engine]].
- Download and extract the source.
cd /tmp
sudo groupadd zabbix
sudo useradd -g zabbix zabbix
sudo mkdir /opt/zabbix
sudo chown zabbix:zabbix /opt/zabbix
wget https://superb-sea2.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.3/zabbix-3.2.3.tar.gz
tar zxvf zabbix-3.2.3.tar.gz
- Install and create the database:
sudo apt-get -y install postgresql postgresql-contrib
sudo -u postgres psql
\password postgres
\q
sudo -u postgres createuser -D -A -P zabbix
sudo -u postgres createdb -O zabbix zabbix
cd /tmp/zabbix-3.2.3/database/postgresql/
sudo -u zabbix psql -U zabbix zabbix < schema.sql
sudo -u zabbix psql -U zabbix zabbix < images.sql
sudo -u zabbix psql -U zabbix zabbix < data.sql
sudo cp /etc/postgresql/9.5/main/pg_hba.conf /tmp/pg_hba.conf
sudo chmod 777 /tmp/pg_hba.conf
cat >> /tmp/pg_hba.conf << EOF
host zabbix zabbix 127.0.0.1 255.255.255.255 trust
EOF
sudo chmod 640 pg_hba.conf
sudo cp /tmp/pg_hba.conf /etc/postgresql/9.5/main/pg_hba.conf
sudo systemctl restart postgresql
- Compile and Install Server:
sudo apt-get -y install build-essential libpq-dev libxml2-dev snmp snmp-mibs-downloader \
libsnmp-dev libssh2-1-dev libopenipmi-dev libcurl4-openssl-dev
cd /tmp/zabbix-3.2.3/
./configure --prefix=/opt/zabbix --enable-server --with-postgresql --with-ssh2 \
--enable-agent --enable-ipv6 --with-net-snmp --with-libcurl \
--with-libxml2 --with-openipmi --with-openssl
make
sudo make install
- Configure the database configuration:
sudo sed -i 's/# DBPassword=/DBPassword=PASSWORD/g' /opt/zabbix/etc/zabbix_server.conf
sudo sed -i 's/# DBPort=3306/DBPort=5432/g' /opt/zabbix/etc/zabbix_server.conf
sudo sed -i 's/LogFile=\/tmp\/zabbix_server.log/LogFile=\/var\/log\/zabbix_server.log/g' /opt/zabbix/etc/zabbix_server.conf
sudo sed -i 's/# LogFileSize=1/LogFileSize=512/g' /opt/zabbix/etc/zabbix_server.conf
- Configure and start Zabbix Server
cat > /tmp/zabbix-server.service << EOF
[Unit]
Description=Zabbix Server
After=syslog.target network.target
[Service]
Type=oneshot
ExecStart=/opt/zabbix/sbin/zabbix_server -c /opt/zabbix/etc/zabbix_server.conf
ExecReload=/opt/zabbix/sbin/zabbix_server -R config_cache_reload
RemainAfterExit=yes
PIDFile=/tmp/zabbix_server.pid
[Install]
WantedBy=multi-user.target
EOF
sudo mv /tmp/zabbix-server.service /etc/systemd/system/
sudo touch /var/log/zabbix_server.log
sudo chown zabbix:zabbix /var/log/zabbix_server.log
sudo systemctl enable zabbix-server
sudo systemctl start zabbix-server
- Update the web server configuration:
sudo sed -i 's/post_max_size = 8M/post_max_size = 16M/g' /etc/php/7.0/fpm/php.ini
sudo sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php/7.0/fpm/php.ini
sudo sed -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php/7.0/fpm/php.ini
sudo apt-get -y install php-pgsql php-bcmath php-mbstring php-gd php-xml
sudo systemctl restart php7.0-fpm
cd /tmp/zabbix-3.2.3/frontends/php
sudo mkdir -p /opt/zabbix/frontend
sudo cp -R * /opt/zabbix/frontend/
cat > /tmp/zabbix << EOF
server {
listen 80;
listen [::]:80;
root /opt/zabbix/frontend;
location / {
index index.php;
error_page 403 404 502 503 504 /index.php;
try_files \$uri \$uri/ index.php;
}
location ~ \.php\$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_param PATH_INFO \$uri; # necessary for URL rewrite
fastcgi_index index.php;
}
location ~ \.(jpg|jpeg|gif|png|ico)$ {
access_log off;
expires 60d;
}
}
EOF
sudo mv /tmp/zabbix /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/zabbix /etc/nginx/sites-enabled/zabbix
sudo chgrp -R www-data /opt/zabbix/frontend/conf
sudo chmod -R g+w /opt/zabbix/frontend/conf
sudo systemctl restart nginx
- Navigate to the Zabbix frontend which should resemble http://fqdn. Default username/password is admin/zabbix.
====== Configure the Zabbix Front End ======
- At the welcome screen, Click ''Next Step''. \\ {{:linux:install:zabbix:step1.png?nolink&600|}}
- All of the pre-requisites should pass... Click ''Next Step''. \\ {{:linux:install:zabbix:step2.png?nolink&600|}}
- Select SQLite3 for the database type, and type ''/opt/zabbix/db/zabbix.db''. Click ''Next Step''. \\ {{:linux:install:zabbix:step3.png?nolink&600|}}
- For the server details, accept the defaults and click ''Next Step''. \\ {{:linux:install:zabbix:step4.png?nolink&600|}}
- On the summary screen, click ''Next Step''. \\ {{:linux:install:zabbix:step5.png?nolink&600|}}
- Click ''Finish'' and then you can log in. \\ {{:linux:install:zabbix:step6.png?nolink&600|}}
====== Use Zabbix ======
You will need to add [[linux:install:zabbix_agent|agents]] for Zabbix to monitor. The [[https://www.zabbix.com/documentation/3.2/manual/quickstart|Zabbix website]] contains great documentation to getting started setting up users, hosts, and triggers.