
For critical production servers and services, monitoring is very critical. One is to get notified about issues immediately and the second is to resolve quickly hence not affecting SLA. Here, I will be showing you how to monitor systemctl services using Zabbix, a basic Zabbix template, and very easy Linux commands. The traditional way of monitoring services is by monitoring the ports associated with the services, however in some cases/environments, critical services have to be monitored E.g. (squid), hence in this post, you will see how to monitor services using service names and not ports on Linux servers. Some other guides can be found in these links: Practical use of SELinux in production: How to locate directory file context and restore it ,how-to-create-a-static-pod-in-kubernetes-with-demos-that-can-help-you-become-a-better-Kubernetes-administrator, and how to create-and-deliver-a-report-on-system-utilization-on-a-Linux-based-os/.
Note: Moreover, You should already have the Zabbix monitoring tool installed in your environment to do this. However, Here is a guide on how to install Zabbix Monitoring Tool on a Linux System, and how-to-use-container-insights-to-get-the-full-benefits-of-azure-monitor-for-azure-Kubernetes-workload.
First, check the services running
systemctl | grep running

Take a note of whatever service name you will want to monitor, Log in to your Zabbix console and create a new template and application.
Configuration -> Templates -> Create template

Create New application on Zabbix console – > systemctl status

Furthermore, Create an item for whatever service name you want to monitor


Create individual Alert triggers

Trigger expression
{service monitoring using systemctl:system.run["systemctl status chronyd | grep -q running;echo $?"].last()}=1
Please change the service name in the expression to your configured service name. Once Items and triggers have been created on the services needed, test or simulate the new configurations by stopping services.

Now check Zabbix console
