ls -la /run/zabbix/ # or your configured SocketDir
Increase values gradually (e.g., double each). Restart Zabbix server: systemctl restart zabbix-server .
# For MySQL/MariaDB mysql -u zabbix_proxy -p -h localhost -e "SELECT 1"
A: Check if other limits are in effect. Some systems require both ulimit -n changes in /etc/security/limits.conf and LimitNOFILE in systemd. Also verify that your Zabbix version supports the limits you've set. zabbix cannot write to ipc socket broken pipe upd
The database backend became unresponsive, causing Zabbix processes to time out and drop internal socket connections. 📋 Step-by-Step Diagnostic & Resolution Workflow
In the complex world of enterprise infrastructure monitoring, Zabbix stands out as a robust, open-source solution capable of tracking millions of metrics. However, even the most resilient systems encounter cryptic errors that can halt data collection and create gaps in your monitoring history.
If the script runs, prints nothing, and exits before Zabbix can read the output, the pipe breaks. ls -la /run/zabbix/ # or your configured SocketDir
Edit the service file: systemctl edit --full zabbix-server
Zabbix processes need many file descriptors (sockets, pipes, DB connections).
Add or modify the [Service] section:
tail -n 500 /var/log/zabbix/zabbix_server.log | grep -B 5 -A 5 "broken pipe"
Inter-Process Communication (IPC) sockets are a high-speed data exchange mechanism used by Zabbix components to communicate on the same machine. For example, a discovery worker process uses an IPC socket to send data to the history syncer process. A "Broken pipe" error occurs when a write operation is attempted on a socket whose connection has already been closed by the receiving process, making it a symptom of larger instability.
Modern Zabbix relies heavily on between its internal processes. Specifically, this mechanism is used to pass collected values from data gatherers—such as pollers, trappers, and discovery workers—to the preprocessing manager and its worker processes. In other words, every metric that goes through preprocessing (which is most of them) travels over an IPC socket. Some systems require both ulimit -n changes in