====== 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.