Use an HTTP/HTTPS proxy
StackState Self-hosted v5.1.x
Overview
The Agent can be configured to use a proxy for HTTP and HTTPS requests. Proxy settings can be configured in two ways:
Proxy for all Agent communication. This includes Agent checks and communication with StackState. Configured with:
Environment variables
HTTPS_PROXY/HTTP_PROXY
Proxy for communication with StackState only. Can be configured in 2 places:
Environment variables
STS_PROXY_HTTPS/STS_PROXY_HTTPAgent configuration file
Configured proxy settings will be used by the Agent in the following sequence:
Environment variables
STS_PROXY_HTTPS/STS_PROXY_HTTPEnvironment variables
HTTPS_PROXY/HTTP_PROXYProxy settings in the Agent configuration file.
For example, if the environment variable STS_PROXY_HTTPS="" is set and the Agent configuration file includes the proxy setting https: https://example.com:1234, the Agent will use the proxy "" for HTTPS requests to StackState.
Proxy for all Agent communication
To use a proxy for all Agent communication including checks and communication with StackState, set the following environment variables:
HTTP_PROXY- proxy to use for all HTTP communication.HTTPS_PROXY- proxy to use for all HTTPS communication.
To configure a proxy for an Agent running on Linux, add the required environment variables to the StackState Agent systemd service.
Add environment variables to the StackState Agent systemd service:
Stop the service:
sudo systemctl stop stackstate-agent.serviceEdit the service:
sudo systemctl edit stackstate-agent.serviceAdd the environment variables below to use a proxy for Agent checks and communication with StackState - note that this setting will be overridden by the environment variables
STS_PROXY_HTTPS/STS_PROXY_HTTPif they're also set:[Service] Environment="HTTP_PROXY=http://example.com:1234" Environment="HTTPS_PROXY=https://example.com:1234"You can also use a proxy only for communication with StackState.
Restart the service:
sudo systemctl start stackstate-agent.service
Remove environment variables from the StackState Agent systemd service:
Stop the service:
sudo systemctl stop stackstate-agent.serviceDelete the settings file:
sudo rm /etc/systemd/system/stackstate-agent.service.d/override.confRestart the service:
sudo systemctl daemon-reload sudo systemctl start stackstate-agent.service
To configure a proxy for an Agent running in a Docker container, use one of the commands below to pass the required environment variables when starting StackState Agent.
Single container
Run the command:
docker run -d \
--name stackstate-agent \
--privileged \
--network="host" \
--pid="host" \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e STS_API_KEY="<STACKSTATE_RECEIVER_API_KEY>>" \
-e STS_STS_URL="<STACKSTATE_RECEIVER_API_ADDRESS>" \
-e HOST_PROC="/host/proc" \
-e HTTP_PROXY="http://example.com:1234" \
-e HTTPS_PROXY="https://example.com:1234" \
quay.io/stackstate/stackstate-agent:latestDocker compose
Add the following to the
environmentsection of the compose file on each node where the Agent will run and should use a proxy:environment: HTTP_PROXY="http://example.com:1234" HTTPS_PROXY="https://example.com:1234"Run the command:
docker-compose up -d
Docker Swarm
Add the following to the
environmentsection of thedocker-compose.ymlfile used to deploy the Agent:environment: HTTP_PROXY="http://example.com:1234" HTTPS_PROXY="https://example.com:1234"\Run the command:
docker stack deploy -c docker-compose.yml
To configure a proxy for an Agent running on Windows, add the required environment variables to the StackState Agent systemd service.
Stop the Agent.
# CMD "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" stopservice # PowerShell & "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" stopserviceAdd the environment variables
setx HTTP_PROXY http://example.com:1234 setx HTTPS_PROXY https://example.com:1234Start the Agent.
# CMD "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" start-service # PowerShell & "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" start-service
Proxy for communication with StackState only
A proxy can be configured to be used only for communication between StackState Agent V3 and StackState. This can be set up either by using environment variables or by updating the Agent configuration file.
Environment variables
To use a proxy for communication with StackState only, set the following environment variables:
STS_PROXY_HTTPS- proxy to use for HTTP communication with StackState.STS_PROXY_HTTP- proxy to use for HTTPS communication with StackState.
To configure a proxy for an Agent running on Linux, add the required environment variables to the StackState Agent systemd service.
Add environment variables to the StackState Agent systemd service:
Stop the service:
sudo systemctl stop stackstate-agent.serviceEdit the service:
sudo systemctl edit stackstate-agent.serviceAdd the environment variables below to use a proxy for communication with StackState only:
[Service] Environment="STS_PROXY_HTTP=http://example.com:1234" Environment="STS_PROXY_HTTPS=https://example.com:1234"You can also use a proxy for all Agent communication.
Restart the service:
sudo systemctl start stackstate-agent.service
Remove environment variables from the StackState Agent systemd service:
Stop the service:
sudo systemctl stop stackstate-agent.serviceDelete the settings file:
sudo rm /etc/systemd/system/stackstate-agent.service.d/override.confRestart the service:
sudo systemctl daemon-reload sudo systemctl start stackstate-agent.service
To configure a proxy for an Agent running in a Docker container, use one of the commands below to pass the required environment variables when starting StackState Agent.
Single container
Run the command:
docker run -d \
--name stackstate-agent \
--privileged \
--network="host" \
--pid="host" \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e STS_API_KEY="<STACKSTATE_RECEIVER_API_KEY>" \
-e STS_STS_URL="<STACKSTATE_RECEIVER_API_ADDRESS>" \
-e HOST_PROC="/host/proc" \
-e STS_PROXY_HTTP="http://example.com:1234" \
-e STS_PROXY_HTTPS="https://example.com:1234" \
quay.io/stackstate/stackstate-agent:latestDocker compose
Add the following to the
environmentsection of the compose file on each node where the Agent will run and should use a proxy:environment: STS_PROXY_HTTP="http://example.com:1234" STS_PROXY_HTTPS="https://example.com:1234"Run the command:
docker-compose up -d
Docker Swarm
Add the following to the
environmentsection of thedocker-compose.ymlfile used to deploy the Agent:environment: STS_PROXY_HTTP="http://example.com:1234" STS_PROXY_HTTPS="https://example.com:1234"Run the command:
docker stack deploy -c docker-compose.yml
To configure a proxy for an Agent running on Windows, add the required environment variables to the StackState Agent systemd service.
Stop the Agent.
# CMD "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" stopservice # PowerShell & "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" stopserviceAdd the environment variables
setx STS_PROXY_HTTP http://example.com:1234 setx STS_PROXY_HTTPS https://example.com:1234Start the Agent.
# CMD "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" start-service # PowerShell & "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" start-service
Agent configuration
A proxy set in the Agent configuration file will be used for communication with StackState only. Checks configured on the Agent won't use this proxy for communication with external systems. To use a proxy for Agent checks and communication with StackState, see how to use a proxy for all Agent communication.
To use a proxy for communication with StackState add the following items to the Agent configuration file:
proxy.http- proxy to use for HTTP communication with StackState.proxy.https- proxy to use for HTTPS communication with StackState.
To update the configuration file for an Agent running on Linux:
Edit the Agent configuration file:
sudo vi /etc/stackstate-agent/stackstate.yamlUncomment the proxy settings:
proxy: https: https://example.com:1234 http: http://example.com:1234Restart the Agent.
sudo systemctl start stackstate-agent.service
To update the configuration file for an Agent running in a Docker container:
Set the proxy details in
/etc/stackstate-agent/stackstate.yaml:proxy: https: https://example.com:1234 http: http://example.com:1234Mount the config files as a volume into the container running the Agent as described in Docker Agent integration configuration.
To update the configuration file for an Agent running on Windows:
Edit the Agent configuration file:
C:\ProgramData\StackState\stackstate.yamlUncomment the proxy settings:
proxy: https: https://example.com:1234 http: http://example.com:1234Restart the Agent.
# CMD "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" restart-service # PowerShell & "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" restart-service
Last updated