Monitor HAProxy Server
Overview
HAProxy is a free, very fast and reliable solution offering high availability, load balancing and proxying for TCP and Http-based applications. HAProxy monitoring involves monitoring of the following aspects:
- HAProxy Access Logs
- HAProxy Logs
- HAProxy Metrics
The configurations given below apply only to the HAProxy server running on an instance.
Prerequisites
- Configure HAProxy Access Logs 
- Configure HAProxy Stats 
- Set socket path and enable logs to send desired log file under global section in below haproxy config path. - Path: - /etc/haproxy/haproxy.cfg- Example - Global
 log /dev/log local0
 stats socket /run/haproxy/admin.sock mode 660 level admin
- Configure the HAProxy in following manner to enable server logs. - Refer link for configuration of haproxy to send access logs to a log file in centos also configure Rsyslog to collect haproxy logs.
- Create a directory to run haproxy service using sudo.- mkdir /run/haproxy
 
- Under listen section add below lines to capture access logs:
 - Capture request header User-Agent len 128.
 
 log-format %ci:%cp\ [%tr]\ %ft\ %b/%s\ %TR/%Tw/%Tc/%Tr/%Ta\ %ST\ %B\ %CC\ %CS\ %tsc\ %ac/%fc/%bc/%sc/%rc\ %sq/%bq\ %hr\ %hs\ %{+Q}r- Under defaults section add below lines to capture access logs - log-format %ci:%cp\ [%tr]\ %ft\ %b/%s\ %TR/%Tw/%Tc/%Tr/%Ta\ %ST\ %B\ %CC\ %CS\ %tsc\ %ac/%fc/%bc/%sc/%rc\ %sq/%bq\ %hr\ %hs\ %{+Q}r
 
- Add below line to frontend configuration to capture requests:- capture request header User-Agent len 128.
 
Configuration
sfAgent section provides steps to install and automatically generate plugin configurations. User can also manually add the configuration shown below to config.yaml under /opt/sfagent/ directory.
key: <profile key> 
generate_name: true 
tags: 
  Name: <unique instance name or will be generated from IP> 
  appName: <add application name> 
  projectName: <add project name> 
metrics: 
  metrics: 
  plugins: 
    - name: haproxy     
      enabled: true     
      interval: 30 
logging: 
  plugins: 
    - name: haproxy-access 
      enabled: true 
      config: 
        geo_info: true 
        log_path: /var/log/haproxy.log 
        ua_parser: false 
    - name: haproxy-general 
      enabled: true 
      config: 
        log_level:
          - emerg 
          - alert 
          - error 
        log_path: /var/log/haproxy.log 
Viewing data and dashboards
Data collected by plugins can be viewed in SnappyFlow’s browse data section under metrics section
plugin: haproxy, haproxy-access, haproxy-general
documentType: frontEndStats, backEndStats, systemInfo, backEndServerDetails, haproxyAccessLogs, haproxyGeneralLogs
Dashboard template: HAProxy_Server, HAProxy_Access
Test Matrix
Ubuntu: HAProxy version (1.6.3)
Centos: HAProxy version (1.5.18)