This alert monitors the number of failed v3/v5 PUBLISH operations in the last minute for VerneMQ, an MQTT broker. If you receive this alert, it means that there is an issue with the MQTT message publishing process in your VerneMQ broker.
MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol designed for constrained devices and low-bandwidth, high latency, or unreliable networks. It is based on the publish-subscribe model, where clients (devices or applications) can subscribe and publish messages to topics.
VerneMQ is a high-performance, distributed MQTT message broker. It is designed to handle thousands of concurrent clients while providing low latency and high throughput.
Check the VerneMQ log files for any error messages or warnings related to the MQTT PUBLISH operation failures. The log files are usually located in the /var/log/vernemq
directory.
sudo tail -f /var/log/vernemq/vernemq.log
Check VerneMQ metrics to identify any bottlenecks in the system's performance. You can do this by using the vmq-admin
tool, which comes with VerneMQ. Run the following command to get an overview of the broker's performance:
sudo vmq-admin metrics show
Pay attention to the metrics related to PUBLISH operation failures, such as mqtt.publish.error_code.*
.
Assess the performance of connected clients. Use the vmq-admin
tool to list client connections along with details like the client's state and the number of published messages:
sudo vmq-admin session show --client_id --is_online --is_authenticated --session_publish_errors
Investigate the clients with session_publish_errors
to find out if there's an issue with specific clients.
Review your MQTT topic configuration, such as the retained flag, QoS levels, and the permissions for publishing to ensure your setup aligns with the intended behavior.
If the issue persists or requires further investigation, consider examining the network conditions, such as latency or connection issues, which might hinder the MQTT PUBLISH operation's efficiency.