[ZBXNEXT-6501] Add possibility for remote check UDP services and ports Created: 2021 Feb 10 Updated: 2021 Jun 02 |
|
Status: | Open |
Project: | ZABBIX FEATURE REQUESTS |
Component/s: | Agent (G), Agent2 plugin (G), Server (S) |
Affects Version/s: | 5.0.8 |
Fix Version/s: | None |
Type: | Change Request | Priority: | Minor |
Reporter: | Igor Gorbach (Inactive) | Assignee: | Zabbix Development Team |
Resolution: | Unresolved | Votes: | 4 |
Labels: | None | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified |
Issue Links: |
|
Description |
We want to have a possibility to use simple checks for checking UDP port availability with items like net.udp.service[udp,<ip>,port] It is very important in case of Video Services monitoring Now, the only ntp service available Also, we want to check packets loss for checking UDP traffic to remote host Now, we're able to use nping for that, for example
nping --udp -c 2 -p 5001 <ip>
Starting Nping 0.7.40 ( https://nmap.org/nping ) at 2020-08-31 22:41 PDT
SENT (0.0977s) UDP <ip>:53 > 172.31.0.25:5001 ttl=64 id=48591 iplen=28
SENT (1.0981s) UDP <ip>:53 > 172.31.0.25:5001 ttl=64 id=48591 iplen=28
RCVD (1.3151s) UDP <ip>:5001 > 172.31.0.69:53 ttl=64 id=42729 iplen=1498
Max rtt: 216.701ms | Min rtt: 216.701ms | Avg rtt: 216.701ms Raw packets sent: 2 (56B) | Rcvd: 1 (1.498KB) |
Lost: 1 (50.00%) Nping done: 1 IP address pinged in 1.40 seconds
Please, add native support for those checks to simple checks and agent checks
|
Comments |
Comment by Alex Kalimulin [ 2021 Jun 02 ] |
There is no universal way to do a generic ping over UDP that would work in all cases. UDP is a connectionless protocol that, in contrast with TCP, does not provide any kinds of delivery confirmations. When a client sends a UDP packet to some port, the packet gets delivered to the target OS which in turn checks whether there is a listener process registered in the OS. If there is then the packet gets delivered to the process which is free to either respond or keep silence, depending on the application logic. If there is no listener process, then the packet gets discarded and the OS sends back ICMP packet “port unreachable”. In theory, one can tell the UDP port is closed by checking such ICMP responses. In practice, however, firewalled environments just block such packets more often than not. Utilities, like nping —udp just send UDP packets and hope for the best. You can rely on their results only when you either know for sure that ICMP packets are always delivered from your target to the sender or know that the application does always immediately respond to UDP requests with some response. |