Hi everyone. This is my first posting on this forum, and your help is much appreciated. I have been banging my head for the entire day and no progress is made at all.
My situation is that I'm am currently setting up to monitor Proxmox VE through HTTP.
The setup is unsuccessful and after looking around and testing the Proxmox API numerous times, I am dead certain that the API is reachable and working with data returned, no matter from which host I'm querying.
Hence, this excludes the API permission issue from the problem, which is what faced generally by other people who are trying to do the same thing.
However, the script execution of the official Proxmox template in Zabbix always fail, saying that:
So after many many many many hours of research, I can now narrow down the issue to specifically the javascript HttpRequest thingy, or the problem of Zabbix.
Here's my findings:
I have tried to host simple html server on the target host (which is the Proxmox hypervisor) on multiple ports, ie. 80, 443, 1000, 2000, 8007, and so on.
I am able to open the simple html server page from other devices, including the host itself where zabbix agent is installed, using curl, via http.
However, Zabbix is unable to fetch this page via agent.
This is my test script: (you may only focus on the second last line)
So, the test results is like this:
And this happens to every other pages, ***EXCEPT 80 and 443. ***
Which means, no matter is http or https, if the page is on port 80 and 443, it will work. Below is example using port 443 but through http:
So do you know what's the issue here? It's most certainly not firewall because the host itself can access the page via curl and even other devices can access it. It's only that through Zabbix agent script, it won't work. On a side note, no firewall is configured on the host too.
Much appreciated for any suggestions or advice. I really have no idea and I might end up diving into the big sea if I cannot solve this problem TT
If really no choice, I think I will just use nginx to redirect to port 8006 through port 80/443. However, this is production server, hence I don't see the feasibility to setup a reverse proxy just to make this monitoring thing work (trying to touch less things as possible)
Thanks in advance!
My situation is that I'm am currently setting up to monitor Proxmox VE through HTTP.
The setup is unsuccessful and after looking around and testing the Proxmox API numerous times, I am dead certain that the API is reachable and working with data returned, no matter from which host I'm querying.
Hence, this excludes the API permission issue from the problem, which is what faced generally by other people who are trying to do the same thing.
However, the script execution of the official Proxmox template in Zabbix always fail, saying that:
Code:
Cannot execute script: Error: cannot get URL: Couldn't connect to server. at [anon] (httprequest.c:369) internal at [anon] () native strict preventsyield at [anon] (function:5) preventsyield
Here's my findings:
I have tried to host simple html server on the target host (which is the Proxmox hypervisor) on multiple ports, ie. 80, 443, 1000, 2000, 8007, and so on.
I am able to open the simple html server page from other devices, including the host itself where zabbix agent is installed, using curl, via http.
However, Zabbix is unable to fetch this page via agent.
This is my test script: (you may only focus on the second last line)
So, the test results is like this:
And this happens to every other pages, ***EXCEPT 80 and 443. ***
Which means, no matter is http or https, if the page is on port 80 and 443, it will work. Below is example using port 443 but through http:
So do you know what's the issue here? It's most certainly not firewall because the host itself can access the page via curl and even other devices can access it. It's only that through Zabbix agent script, it won't work. On a side note, no firewall is configured on the host too.
Much appreciated for any suggestions or advice. I really have no idea and I might end up diving into the big sea if I cannot solve this problem TT
If really no choice, I think I will just use nginx to redirect to port 8006 through port 80/443. However, this is production server, hence I don't see the feasibility to setup a reverse proxy just to make this monitoring thing work (trying to touch less things as possible)
Thanks in advance!
Comment