Zabbix is an open source network monitoring solution that allows users to monitor network services, servers and applications. It uses agents that run on monitored servers to collect monitoring data and sends it to a central Zabbix server. The server collects and stores the data and allows users to view monitoring dashboards and receive alerts. Zabbix supports monitoring Linux, Unix and Windows servers and uses a web-based frontend for configuration and monitoring. Common tasks in Zabbix include installing the server and agents, creating hosts, templates, user accounts and actions to define monitoring and receive notifications.
3. Introduction
? We hope to know and perform actions when network, hosts, and services
go wrong. Also, we can fix the issue manually as early as possible. In
addition, we can define some actions for system to achieve self-healing
? Popular monitoring tools
? Cacti
? Nagios (1996)
? Zabbix (2001)
? Graphite (2008)
? Grafana/Prometheus (2012)
? Open falcon (2015)
? CloudWatch (AWS)
? Datadog ¡..
4. zabbix
? Monitored hosts: a zabbix agent is used collect
monitoring items
? Zabbix server
? A zabbix server process collects (or polls) all
information from zabbix agent
? Active mode: A zabbix agent actively send
metrics to zabbix server
? Passive mode: the zabbix server polls
zabbix agents.
? Web: users/admin can logon and set up
monitoring items or explore dashboard.
? Database: zabbix supports
? MySQL
? PostgreSQL (Our case)
? Oracle
? SQLite
? TimescaleDB
Picture source: http://www.kjkoster.org/zapcat/Architecture.html
5. Installation (zabbix 5.0) ¨C Zabbix server
? On PostgreSQL server
? Create a database ¡°zabbix¡± and user ¡°zabbix¡± with password. User ¡°zabbix¡± can have full
privileges on database ¡°zabbix¡±
? Please execute the following command with ¡°root¡± on zabbix server
? https://www.zabbix.com/download?zabbix=5.0&os_distribution=red_hat_enterprise_linux&
os_version=8&db=postgresql&ws=nginx
? Zabbix version: 5.0
? OS distribution: Redhat Enterprise(depends on your environment)
? OS version: 7 (depends on your environment)
? Database: PostgreSQL (I use PostgreSQL)
? Web server: Nginx (I prefer Nginx)
? About zabbix agent, I prefer to use zabbix-agent2 on zabbix server
? modify /etc/zabbix/zabbix_agent2.conf
? Server=127.0.0.1,YOUR_NETWORK_SUBNET (eg: 10.0.0.0/16)
? ServerActive=ZABBIX_SERVER_IP:10051
? Hostname=SERVER_NAME (the result of issuing linux command ¡°hostname¡± on zabbix server)
6. Installation (zabbix 5.0) ¨C Zabbix agent
? On monitored server
? Install zabbix-agent2-x.x.x-x.xxx.x86_64.rpm
? Modify /etc/zabbix/zabbix_agent2.conf
? Server=127.0.0.1, YOUR_NETWORK_SUBNET (eg: 10.0.0.0/16)
? ServerActive=ZABBIX_SERVER_IP:10051
? Hostname=SERVER_NAME (the result of issuing linux command ¡°hostname¡± on
monitored server)
7. Configuration-logon
? Explore the page: http://YOUR_ZABBIX_SERVER or
http://YOUR_ZABBIX_SERVER:8080
? Default logon user:
? Username: Admin (A: must be uppercase)
? Password: zabbix (z: must be lowercase)
8. Configuration-email
? Set up email notification
? Administration -> Media Types -> Choose ¡°Email¡± -> Test after configuration
9. Template
? Create or clone a Template
? Configuration -> Templates -> Choose ¡°Template App HTTP service¡± -> Click
¡°Full clone¡±
? Applications -> modify ¡°name¡±
? Items
? Name: Modify it
? Key: select net.tcp.service[service, <ip>, <port>] and modify a little bit
? Triggers: there is only 1 item, just click it
? Name: modify it
? Expression: modify it
? Severity: high
10. Host
? Create a host
? Configuration -> Hosts -> Choose ¡°Create host¡±
? Host
? Host name: the result of issuing the command `hostname`
? Groups: select an existing group or just type in a new group name. You can choose multiple
groups here.
? Interfaces:
? IP address: fill in IP of monitored host
? DNS name: leave as empty
? Port: 10050
? Templates
? Choose the template we create in previous step and ¡°Template OS Linux by Zabbix agent¡±
11. Hostgroup (Optional)
? Configuration -> Host groups -> Create host group
? Fill in a host group name
? Assign a host to this host group
? Configuration -> Hosts -> Choose ¡°host¡± you¡¯d like to assign -> in ¡°Groups¡±, choose a
correct a host group
12. User
? Create a user
? Administration -> choose ¡°create user¡±
? Alias: logon account name
? Group: choose a suitable group
? Password: type in password
? Click ¡°Media¡±
? Add -> Choose ¡°Email¡± -> fill in recipient¡¯s email
? Click ¡°Permissions¡±
? User type: please refer to
13. User group
? Administration -> Create use group
? Group name: fill in a group name
? Users: select users you need
? Click on ¡°Permissions¡±
? Click ¡°select¡± to choose the host group if this user group want to receive any notification
about this host group.
? Choose ¡°read¡± at least
14. Action
? Configuration -> Actions -> Choose ¡°create action¡±
? Fill in ¡°Name¡±
? Conditions
? Trigger: select a host group. -> select a trigger -> operator : equal -> choose ¡°Add¡±
? Operations
? Default operation step duration: 1m
? Operations: choose ¡°add¡±
? Operation type: ¡°Send message¡±
? Steps: 1 ¨C 0
? Step duration: 3m or 5m
? Send to User groups: choose the user group
? Recovery operations: choose ¡°add¡±
? Operation type: ¡°Notify all involved¡±
? Click ¡°Update¡±