Zabbix - mata-elang-stable/MataElang-Platform GitHub Wiki

Back to HOME

We use Zabbix as a monitoring system for Mata Elang.

zabbix

Example Environment

Item Value
Zabbix server 172.16.2.110
Zabbix agent (Installed on all sensors and servers)
Zabbix user / password Admin (default password is zabbix)
MySQL root user / password root (password will be set below)
MySQL zabbix user / password zabbix (password will be set below)

Prerequisite

āœ… Ubuntu 20.04 LTS installed and updated with the following command.

sudo apt update && sudo apt -y upgrade

āœ… Time Zone and NTP already set.

āœ… Docker 20.10 or later installed with the following command.

sudo apt -y install docker.io

āœ… Docker Compose 2.13 or later installed with the following command.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.13.0/docker-compose-$(uname -s)-$(uname -m)"\
 -o /usr/bin/docker-compose && sudo chmod +x /usr/bin/docker-compose

Setup Zabbix Server

1. Download zabbix-asset.

ā–¶ļø Clone Mata-Elang-Stable/zabbix-asset from GitHub to your server.

git clone https://github.com/mata-elang-stable/zabbix-asset.git ~/zabbix

2. Configure Zabbix server.

ā–¶ļø Edit .MYSQL_ROOT_PASSWORD to change the MySQL root password before initial setup.

nano ~/zabbix/env_vars/.MYSQL_ROOT_PASSWORD

ā–¶ļø Edit .MYSQL_PASSWORD to change the MySQL zabbix password before initial setup.

nano ~/zabbix/env_vars/.MYSQL_PASSWORD

3. Start Zabbix server.

ā–¶ļø Start the Zabbix Server.

sudo docker-compose -f ~/zabbix/docker-compose.yaml up -d

āœ… Confirm the containers are running.

sudo docker-compose -f ~/zabbix/docker-compose.yaml ps -a
Result

NAME                              COMMAND                  SERVICE                  STATUS              PORTS
zabbix-db_data_mysql-1            "sh"                     db_data_mysql            exited (0)
zabbix-mysql-server-1             "docker-entrypoint.s…"   mysql-server             running
zabbix-zabbix-server-1            "/usr/bin/tini -- /u…"   zabbix-server            running             0.0.0.0:10051->10051/tcp, :::10051->10051/tcp
zabbix-zabbix-web-nginx-mysql-1   "docker-entrypoint.sh"   zabbix-web-nginx-mysql   running (healthy)   0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp

Setup Zabbix Agent

1. Install Zabbix agent.

ā–¶ļø Download the package.

wget -P ~/zabbix https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-4%2Bubuntu20.04_all.deb

ā–¶ļø Install the agent service.

sudo dpkg -i ~/zabbix/zabbix-release_6.2-4+ubuntu20.04_all.deb
sudo apt update && sudo apt -y install zabbix-agent

2. Configure Zabbix agent.

ā–¶ļø Edit zabbix_agentd.conf to configure the agent.

sudo nano /etc/zabbix/zabbix_agentd.conf
Configuration

šŸ”‘ Set the IP address of the Zabbix servers to ZABBIX_SERVER_IP_OR_NAME.

ā— The additional value 172.16.238.0/24, which was set on docker-compose.yaml, is required when the Zabbix server and agent run on the same host.

šŸ”‘ Set a hostname you like for the Zabbix agent to HOSTNAME_OF_AGENT. It's recommended to name differently for each agent to identify easily.

### Line 117: Set the IP or DNS names of the Zabbix server
#Server=127.0.0.1
Server=<ZABBIX_SERVER_IP_OR_NAME (e.g. 172.16.2.110)>,172.16.238.0/24

### Line 182: Set the hostname of the Zabbix agent.
#Hostname=Zabbix server
Hostname=<HOSTNAME_OF_AGENT (e.g. zabbix)>

3. Start Zabbix agent.

ā–¶ļø Enable service auto-start.

sudo systemctl enable zabbix-agent

ā–¶ļø Restart the agent service.

sudo systemctl restart zabbix-agent

āœ… Confirm the agent service is active.

systemctl status zabbix-agent
Click here to see the result.

ā— zabbix-agent.service - Zabbix Agent
     Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-01-01 00:17:15 WIB; 39s ago

Dashboard Web UI

ā–¶ļø Open the following URL to see the Zabbix Dashboard.

  • URL: http://<ZABBIX_SERVER_IP_OR_NAME (e.g. 172.16.2.110)>/

šŸ”‘ The followings are what you should do for monitoring servers.

  1. Change Admin password.
  2. Change the time zone of the Admin user.
  3. Change the interface (IP address) of the host named "Zabbix server" from 127.0.0.1 to the actual address.
  4. Create hosts in configuration menu, as many as you need to monitor. (name, template, group, interface type, and IP address)
  5. Configure notifications. (media types, users, and actions)
How to change Admin password and time zone.

ā–¶ļø Go to [Administartion] -> [Users] -> Select "Admin" -> Change "Password" and "Time zone" -> [Update].

admin

How to create a host.

ā–¶ļø Go to [Configuration] -> [Hosts] -> [Create Host].

Item Value
Host name Monitored hostname
Templates [Select] -> Templates/Operating systems -> Linux by Zabbix agent
Groups [Select] -> Linux servers
Interfaces [Add] -> Agent -> IP address of Monitored host
  • And then save your configuration.
  • Wait until Zabbix Server identifies your monitored host.
  • If your configuration is correct, the availability sign will turn green.
How to add an email notification.

ā–¶ļø Go to [Administration] -> [Media types] and select Email.

  1. Configure Email settings.
  2. Test the settings.

ā–¶ļø Go to [Administration] -> [Users] and select Admin.

  1. Attach [Media (Email)] to Admin.
  2. Set an email address to [Send to].

ā–¶ļø Go to [Configuration] -> [Actions] -> [Trigger actions] -> [Create action].

  1. Attach Admin (Zabbix Administrator) to [Send to users].
Click to view screen image

Zabbix

Useful Commands

Click to show commands

Service Commands

āœ… Show service status

sudo docker-compose -f ~/zabbix/docker-compose.yaml ps -a
Result

NAME                              COMMAND                  SERVICE                  STATUS              PORTS
zabbix-db_data_mysql-1            "sh"                     db_data_mysql            exited (0)
zabbix-mysql-server-1             "docker-entrypoint.s…"   mysql-server             running
zabbix-zabbix-server-1            "/usr/bin/tini -- /u…"   zabbix-server            running             0.0.0.0:10051->10051/tcp, :::10051->10051/tcp
zabbix-zabbix-web-nginx-mysql-1   "docker-entrypoint.sh"   zabbix-web-nginx-mysql   running (healthy)   0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp

āœ… Start services

sudo docker-compose -f ~/zabbix/docker-compose.yaml up -d

āœ… Stop services (and remove containers)

sudo docker-compose -f ~/zabbix/docker-compose.yaml down

āœ… Stop services (and keep containers)

sudo docker-compose -f ~/zabbix/docker-compose.yaml stop

āœ… Restart services

sudo docker-compose -f ~/zabbix/docker-compose.yaml restart

Agent Commands

āœ… Show agent status

systemctl status zabbix-agent
Result

ā— zabbix-agent.service - Zabbix Agent
     Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-01-01 00:17:15 WIB; 39s ago

āœ… Start agent

sudo systemctl start zabbix-agent

āœ… Stop agent

sudo systemctl stop zabbix-agent

āœ… Restart agent

sudo systemctl restart zabbix-agent

Maintenance Commands

āœ… Login to MySQL

sudo docker-compose -f ~/zabbix/docker-compose.yaml exec mysql-server mysql -u zabbix -p
sudo docker-compose -f ~/zabbix/docker-compose.yaml exec mysql-server mysql -u root -p

āœ… Clean up the Zabbix server installation including MySQL database.

sudo docker ps -a
sudo docker images -a
sudo docker network ls
sudo docker volume ls
sudo docker system prune -a
sudo docker volume prune
sudo rm -rf ~/zabbix/zbx_env

Configuration Commands

āœ… Show environment variables

sudo docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' zabbix-zabbix-server-1
sudo docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' zabbix-zabbix-web-nginx-mysql-1
sudo docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' zabbix-mysql-server-1

Log Commands

āœ… Show Zabbix Server log

sudo docker-compose -f ~/zabbix/docker-compose.yaml logs zabbix-server
sudo docker-compose -f ~/zabbix/docker-compose.yaml logs zabbix-web-nginx-mysql
sudo docker-compose -f ~/zabbix/docker-compose.yaml logs mysql-server

āœ… Show Zabbix Agent log

cat /var/log/zabbix/zabbix_agentd.log

Version Commands

āœ… Show Zabbix Server version

sudo docker-compose -f ~/zabbix/docker-compose.yaml exec zabbix-server zabbix_server -V

āœ… Show nginx version

sudo docker-compose -f ~/zabbix/docker-compose.yaml exec zabbix-web-nginx-mysql nginx -v

āœ… Show MySQL version

sudo docker-compose -f ~/zabbix/docker-compose.yaml exec mysql-server mysql --version

āœ… Show Zabbix Agent version

zabbix_agentd --version

āœ… Show Docker version

sudo docker version

āœ… Show Docker Compose version

docker-compose version

āœ… Show OS version

cat /etc/os-release

Back to HOME

āš ļø **GitHub.com Fallback** āš ļø