How to Install Zabbix Agent on Rocky Linux and AlmaLinux 8/9 (Step-by-Step)

Install and configure the Zabbix agent on Rocky Linux or AlmaLinux 8/9 with dnf, systemd, and firewalld. Configure Server, ServerActive, Hostname, and open port 10050 for monitoring.

The Zabbix agent is a lightweight daemon that runs on hosts you want to monitor. It collects metrics (CPU, memory, disk, processes, logs, and more) and sends them to the Zabbix server or proxy on demand (passive checks) or on a schedule (active checks). This guide walks you through installing and configuring the Zabbix agent on Rocky Linux and AlmaLinux 8 or 9, enabling it with systemd, and opening the correct firewall port.

In this guide you’ll learn:

  • How to add the Zabbix repository and install the Zabbix agent on Rocky Linux / AlmaLinux
  • How to configure Server, ServerActive, and Hostname in zabbix_agentd.conf
  • How to allow port 10050 (firewalld), handle SELinux, and start/enable the agent

Check types:

  • Passive checks – The Zabbix server or proxy connects to the agent on port 10050 and requests data.
  • Active checks – The agent connects out to the server/proxy and pushes data periodically.

If you need to set up the server, see How to Install and Configure Zabbix Server 5 on Rocky Linux/Alma Linux 8 or Zabbix Server 6 on Rocky Linux/Alma Linux 9.

Related Zabbix guides:

Ensure the server packages are up to date

Before proceeding, let us make sure that our server packages are up to date with this command:

1
sudo dnf -y update

Let us also install some common packages that we will need:

1
sudo dnf install -y vim

Install the Zabbix Agent

The Zabbix agent packages are not available under the default Rocky Linux 8 repositories. We will need to configure the Zabbix repository in our system before installing the agent.

At the time this article was written, the Zabbix 5.4 repository was current. If you want a newer major version, use the appropriate repo (for example Zabbix 6.x/7.x) and package names from Zabbix.

Install the Zabbix 5.4 repository using this command:

1
sudo dnf install -y https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm

Once the repository is installed, we can install the agent:

1
sudo dnf install -y zabbix-agent

Confirm the software version installed:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
rpm -qi zabbix-agent

Name        : zabbix-agent
Version     : 5.4.9
Release     : 1.el8
Architecture: x86_64
Install Date: Mon 17 Jan 2022 06:23:27 AM UTC
Group       : Applications/Internet
Size        : 2353430
License     : GPLv2+
Signature   : RSA/SHA512, Thu 23 Dec 2021 12:54:16 PM UTC, Key ID 082ab56ba14fe591
Source RPM  : zabbix-5.4.9-1.el8.src.rpm
Build Date  : Thu 23 Dec 2021 12:28:37 PM UTC
Build Host  : 3a869a1545a8
Relocations : (not relocatable)
URL         : http://www.zabbix.com/
Summary     : Old Zabbix Agent
Description :
Old implementation of zabbix agent.
To be installed on monitored systems.

Configure Zabbix Agent

Now configure the agent so it knows which Zabbix server/proxy to talk to, and so the host is identified correctly.

Edit the Zabbix agent configuration file:

1
sudo vim /etc/zabbix/zabbix_agentd.conf

Update (or add) these settings (replace the IP and hostname with your values):

1
2
3
Server=10.70.5.218
ServerActive=10.70.5.218
Hostname=dev-rockysrv1

Notes:

  • Server is used for passive checks (server/proxy connects to the agent).
  • ServerActive is used for active checks (agent connects out to server/proxy).
  • Hostname must match the host name you create in the Zabbix UI (unless you use auto-registration).

Adjust the firewall (if enabled)

If firewalld is enabled, allow inbound TCP port 10050 so the server/proxy can reach the agent for passive checks.

Note: port 10051 is used by the Zabbix server/proxy, not the agent, so you usually do not need it open on an agent host.

1
2
sudo firewall-cmd --permanent --add-port=10050/tcp
sudo firewall-cmd --reload

SELinux

You do not need to disable SELinux just to run the Zabbix agent. The “frontend in a browser” applies to the Zabbix server host, not the agent host.

If you run into SELinux-related issues, check logs with sudo ausearch -m AVC -ts recent and address the specific denial rather than setting the whole system to permissive.

Start and enable the Zabbix agent

Start the agent (it is not started by default):

1
sudo systemctl start zabbix-agent

Check the status to confirm that it is started.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sudo systemctl status zabbix-agent

● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-01-17 06:57:33 UTC; 19s ago
  Process: 39725 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 39728 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 39730 (zabbix_agentd)
    Tasks: 6 (limit: 23176)
   Memory: 3.9M
   CGroup: /system.slice/zabbix-agent.service
           /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
           /usr/sbin/zabbix_agentd: collector  [idle 1 sec]
           /usr/sbin/zabbix_agentd: listener #1  [waiting for connection]
          /usr/sbin/zabbix_agentd: listener #2  [waiting for connection]
           /usr/sbin/zabbix_agentd: listener #3  [waiting for connection]
           /usr/sbin/zabbix_agentd: active checks #1  [idle 1 sec]

Jan 17 06:57:33 dev-rockysrv1.inv.re systemd [1]: zabbix-agent.service: Succeeded.
Jan 17 06:57:33 dev-rockysrv1.inv.re systemd [1]: Stopped Zabbix Agent.
Jan 17 06:57:33 dev-rockysrv1.inv.re systemd [1]: Starting Zabbix Agent...
Jan 17 06:57:33 dev-rockysrv1.inv.re systemd [1]: zabbix-agent.service: Can't open PID file /run/zabbix/zabbix_agentd.pid (yet?) after start: No such file or directory
Jan 17 06:57:33 dev-rockysrv1.inv.re systemd [1]: Started Zabbix Agent.

From the above output, we can confirm that the agent is running. To enable the agent to start on boot, use this command:

1
sudo systemctl enable zabbix-agent

Frequently Asked Questions (FAQ)

What is the Zabbix agent?

The Zabbix agent is a small service installed on each host you want to monitor. It gathers system and application metrics and provides them to the Zabbix server (or proxy) via passive checks (server pulls) or active checks (agent pushes). It listens on TCP port 10050 by default.

What port does the Zabbix agent use?

The Zabbix agent listens on TCP port 10050. The Zabbix server uses port 10051. On the agent host you only need to open 10050 (e.g. with firewalld) so the server can perform passive checks.

Where is the Zabbix agent config file?

The main config file is /etc/zabbix/zabbix_agentd.conf. Key settings include Server (allowed server IPs for passive checks), ServerActive (server/proxy for active checks), and Hostname (must match the host name in the Zabbix UI).

Do I need to disable SELinux for the Zabbix agent?

No. The Zabbix agent runs fine with SELinux enabled. If you see denials, use sudo ausearch -m AVC -ts recent and fix the specific rule instead of setting SELinux to permissive.

Conclusion

You now have the Zabbix agent installed and configured on Rocky Linux or AlmaLinux 8/9, with the service enabled and (if applicable) firewall port 10050 open. Add this host in the Zabbix frontend using the same Hostname as in zabbix_agentd.conf; see How to Add Host in Zabbix Server to Monitor for the steps.

comments powered by Disqus
Citizix Ltd
Built with Hugo
Theme Stack designed by Jimmy