113 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
# HAProxy Input Plugin
 | 
						|
 | 
						|
The [HAProxy](http://www.haproxy.org/) input plugin gathers
 | 
						|
[statistics](https://cbonte.github.io/haproxy-dconv/1.9/intro.html#3.3.16)
 | 
						|
using the [stats socket](https://cbonte.github.io/haproxy-dconv/1.9/management.html#9.3)
 | 
						|
or [HTTP statistics page](https://cbonte.github.io/haproxy-dconv/1.9/management.html#9) of a HAProxy server.
 | 
						|
 | 
						|
### Configuration:
 | 
						|
 | 
						|
```toml
 | 
						|
# Read metrics of HAProxy, via socket or HTTP stats page
 | 
						|
[[inputs.haproxy]]
 | 
						|
  ## An array of address to gather stats about. Specify an ip on hostname
 | 
						|
  ## with optional port. ie localhost, 10.10.3.33:1936, etc.
 | 
						|
  ## Make sure you specify the complete path to the stats endpoint
 | 
						|
  ## including the protocol, ie http://10.10.3.33:1936/haproxy?stats
 | 
						|
 | 
						|
  ## If no servers are specified, then default to 127.0.0.1:1936/haproxy?stats
 | 
						|
  servers = ["http://myhaproxy.com:1936/haproxy?stats"]
 | 
						|
 | 
						|
  ## You can also use local socket with standard wildcard globbing.
 | 
						|
  ## Server address not starting with 'http' will be treated as a possible
 | 
						|
  ## socket, so both examples below are valid.
 | 
						|
  # servers = ["socket:/run/haproxy/admin.sock", "/run/haproxy/*.sock"]
 | 
						|
 | 
						|
  ## By default, some of the fields are renamed from what haproxy calls them.
 | 
						|
  ## Setting this option to true results in the plugin keeping the original
 | 
						|
  ## field names.
 | 
						|
  # keep_field_names = false
 | 
						|
 | 
						|
  ## Optional TLS Config
 | 
						|
  # tls_ca = "/etc/telegraf/ca.pem"
 | 
						|
  # tls_cert = "/etc/telegraf/cert.pem"
 | 
						|
  # tls_key = "/etc/telegraf/key.pem"
 | 
						|
  ## Use TLS but skip chain & host verification
 | 
						|
  # insecure_skip_verify = false
 | 
						|
```
 | 
						|
 | 
						|
#### HAProxy Configuration
 | 
						|
 | 
						|
The following information may be useful when getting started, but please
 | 
						|
consult the HAProxy documentation for complete and up to date instructions.
 | 
						|
 | 
						|
The [`stats enable`](https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#4-stats%20enable)
 | 
						|
option can be used to add unauthenticated access over HTTP using the default
 | 
						|
settings.  To enable the unix socket begin by reading about the
 | 
						|
[`stats socket`](https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-stats%20socket)
 | 
						|
option.
 | 
						|
 | 
						|
 | 
						|
#### servers
 | 
						|
 | 
						|
Server addresses must explicitly start with 'http' if you wish to use HAProxy
 | 
						|
status page.  Otherwise, addresses will be assumed to be an UNIX socket and
 | 
						|
any protocol (if present) will be discarded.
 | 
						|
 | 
						|
When using socket names, wildcard expansion is supported so plugin can gather
 | 
						|
stats from multiple sockets at once.
 | 
						|
 | 
						|
To use HTTP Basic Auth add the username and password in the userinfo section
 | 
						|
of the URL: `http://user:password@1.2.3.4/haproxy?stats`.  The credentials are
 | 
						|
sent via the `Authorization` header and not using the request URL.
 | 
						|
 | 
						|
 | 
						|
#### keep_field_names
 | 
						|
 | 
						|
By default, some of the fields are renamed from what haproxy calls them.
 | 
						|
Setting the `keep_field_names` parameter to `true` will result in the plugin
 | 
						|
keeping the original field names.
 | 
						|
 | 
						|
The following renames are made:
 | 
						|
- `pxname` -> `proxy`
 | 
						|
- `svname` -> `sv`
 | 
						|
- `act` -> `active_servers`
 | 
						|
- `bck` -> `backup_servers`
 | 
						|
- `cli_abrt` -> `cli_abort`
 | 
						|
- `srv_abrt` -> `srv_abort`
 | 
						|
- `hrsp_1xx` -> `http_response.1xx`
 | 
						|
- `hrsp_2xx` -> `http_response.2xx`
 | 
						|
- `hrsp_3xx` -> `http_response.3xx`
 | 
						|
- `hrsp_4xx` -> `http_response.4xx`
 | 
						|
- `hrsp_5xx` -> `http_response.5xx`
 | 
						|
- `hrsp_other` -> `http_response.other`
 | 
						|
 | 
						|
### Metrics:
 | 
						|
 | 
						|
For more details about collected metrics reference the [HAProxy CSV format
 | 
						|
documentation](https://cbonte.github.io/haproxy-dconv/1.8/management.html#9.1).
 | 
						|
 | 
						|
- haproxy
 | 
						|
  - tags:
 | 
						|
    - `server` - address of the server data was gathered from
 | 
						|
    - `proxy` - proxy name
 | 
						|
    - `sv` - service name
 | 
						|
    - `type` - proxy session type
 | 
						|
  - fields:
 | 
						|
    - `status` (string)
 | 
						|
    - `check_status` (string)
 | 
						|
    - `last_chk` (string)
 | 
						|
    - `mode` (string)
 | 
						|
    - `tracked` (string)
 | 
						|
    - `agent_status` (string)
 | 
						|
    - `last_agt` (string)
 | 
						|
    - `addr` (string)
 | 
						|
    - `cookie` (string)
 | 
						|
    - `lastsess` (int)
 | 
						|
    - **all other stats** (int)
 | 
						|
 | 
						|
### Example Output:
 | 
						|
```
 | 
						|
haproxy,server=/run/haproxy/admin.sock,proxy=public,sv=FRONTEND,type=frontend http_response.other=0i,req_rate_max=1i,comp_byp=0i,status="OPEN",rate_lim=0i,dses=0i,req_rate=0i,comp_rsp=0i,bout=9287i,comp_in=0i,mode="http",smax=1i,slim=2000i,http_response.1xx=0i,conn_rate=0i,dreq=0i,ereq=0i,iid=2i,rate_max=1i,http_response.2xx=1i,comp_out=0i,intercepted=1i,stot=2i,pid=1i,http_response.5xx=1i,http_response.3xx=0i,http_response.4xx=0i,conn_rate_max=1i,conn_tot=2i,dcon=0i,bin=294i,rate=0i,sid=0i,req_tot=2i,scur=0i,dresp=0i 1513293519000000000
 | 
						|
```
 |