Comment on page
Use an HTTP/HTTPS proxy
StackState Self-hosted v5.0.x
This page describes StackState version 5.0.
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
- Environment variables
STS_PROXY_HTTPS
/STS_PROXY_HTTP
- Agent configuration file
Configured proxy settings will be used by the Agent in the following sequence:
- 1.Environment variables
STS_PROXY_HTTPS
/STS_PROXY_HTTP
- 2.Environment variables
HTTPS_PROXY
/HTTP_PROXY
- 3.Proxy settings in the Agent configuration file.
For example, if the environment variable
STS_PROXY_HTTPS=""
is set and the Agent configuration file contains the proxy setting https: https://example.com:1234
, the Agent will use the proxy ""
for HTTPS requests to StackState.Note that these settings will be overridden by the environment variables:
STS_PROXY_HTTPS
/ STS_PROXY_HTTP
. See proxy for communication with StackState only.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.
Linux
Docker
Windows
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:
- 1.Stop the service:sudo systemctl stop stackstate-agent.service
- 2.Edit the service:sudo systemctl edit stackstate-agent.service
- 3.Add 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_HTTP
if they are also set:[Service]Environment="HTTP_PROXY=http://example.com:1234"Environment="HTTPS_PROXY=https://example.com:1234" - 4.Restart the service:sudo systemctl start stackstate-agent.service
Remove environment variables from the StackState Agent systemd service:
- 1.Stop the service:sudo systemctl stop stackstate-agent.service
- 2.Delete the settings file:sudo rm /etc/systemd/system/stackstate-agent.service.d/override.conf
- 3.Restart the service:sudo systemctl daemon-reloadsudo 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" \
docker.io/stackstate/stackstate-agent-2:latest
Docker compose
- 1.Add the following to the
environment
section 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" - 2.Run the command:docker-compose up -d
Docker Swarm
- 1.Add the following to the
environment
section of thedocker-compose.yml
file used to deploy the Agent:environment:HTTP_PROXY="http://example.com:1234"HTTPS_PROXY="https://example.com:1234"\ - 2.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.
- 1.Stop the Agent.# CMD"C:\Program Files\StackState\StackState Agent\embedded\agent.exe" stopservice# PowerShell& "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" stopservice
- 2.Add the environment variablessetx HTTP_PROXY http://example.com:1234setx HTTPS_PROXY https://example.com:1234
- 3.Start 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
A proxy can be configured to be used only for communication between the StackState Agent and StackState. This can be set up either by using environment variables or by updating the Agent configuration file.
Note that these settings will override all other proxy settings either in environment variables or the Agent configuration file.
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.
Linux
Docker
Windows
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:
- 1.Stop the service:sudo systemctl stop stackstate-agent.service
- 2.Edit the service:sudo systemctl edit stackstate-agent.service
- 3.Add 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"
- 4.Restart the service:sudo systemctl start stackstate-agent.service
Remove environment variables from the StackState Agent systemd service:
- 1.Stop the service:sudo systemctl stop stackstate-agent.service
- 2.Delete the settings file:sudo rm /etc/systemd/system/stackstate-agent.service.d/override.conf
- 3.Restart the service:sudo systemctl daemon-reloadsudo 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" \
docker.io/stackstate/stackstate-agent-2:latest
Docker compose
- 1.Add the following to the
environment
section 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" - 2.Run the command:docker-compose up -d
Docker Swarm
- 1.Add the following to the
environment
section of thedocker-compose.yml
file used to deploy the Agent:environment:STS_PROXY_HTTP="http://example.com:1234"STS_PROXY_HTTPS="https://example.com:1234" - 2.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.
- 1.Stop the Agent.# CMD"C:\Program Files\StackState\StackState Agent\embedded\agent.exe" stopservice# PowerShell& "C:\Program Files\StackState\StackState Agent\embedded\agent.exe" stopservice
- 2.Add the environment variablessetx STS_PROXY_HTTP http://example.com:1234setx STS_PROXY_HTTPS https://example.com:1234
- 3.Start 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
Note that proxy settings configured using an environment variable will override any proxy setting in the Agent configuration file.
A proxy set in the Agent configuration file will be used for communication with StackState only. Checks configured on the Agent will not 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.
Linux
Docker
Windows
To update the configuration file for an Agent running on Linux:
- 1.Edit the Agent configuration file:sudo vi /etc/stackstate-agent/stackstate.yaml
- 2.Uncomment the proxy settings:proxy:https: https://example.com:1234http: http://example.com:1234
- 3.Restart the Agent.sudo systemctl start stackstate-agent.service
To update the configuration file for an Agent running in a Docker container:
- 1.Set the proxy details in
/etc/stackstate-agent/stackstate.yaml
:proxy:https: https://example.com:1234http: http://example.com:1234 - 2.Mount 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:
- 1.Edit the Agent configuration file:C:\ProgramData\StackState\stackstate.yaml
- 2.Uncomment the proxy settings:proxy:https: https://example.com:1234http: http://example.com:1234
- 3.Restart 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 modified 1yr ago