How to authorize heartbeat http urls

Hi,

I have installed and configured http url on my heartbeat.yml (Heartbeat version6.3.2). My urls are working fine. Getting the login page. But heartbeat is trying to authorize those urls. I am not getting why? Below is my heartbeat.yml file:

-------------------------------------------------------------------------------------------------------------------------------------
heartbeat.monitors:
- type: http
  enabled: true

  # List or urls to query
  urls:
    - "http://cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com/Plg"
    - "http://cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com/MP/"
    - "http://cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com/VPD/"
    - "http://cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com/EM/"

  # Optional Authentication Credentials
  username: 'abcboot'
  password: 'Go4thabc'

  check.request:
    method: GET
    headers:
      'Authorization': 'Basic'
  check.response.status: 200
  # Configure task schedule
  schedule: '@every 10s'

  ipv4: true
  ipv6: true
  mode: any

- type: icmp
  name: icmp
  enabled: true
  schedule: '*/5 * * * * * *'
  hosts: ["cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com"]
  ipv4: true
  ipv6: true
  mode: any
  timeout: 16s
#============================== Kibana =====================================

setup.kibana.host: "https://elkquest.unx.abc.com:5602"
setup.kibana.ssl.enabled: true
setup.kibana.ssl.certificate_authorities: ["/install/heartbeatinstall/certnew.cer"]
setup.kibana.ssl.certificate: "/install/heartbeatinstall/certnew.cer"
setup.kibana.ssl.key: "/install/heartbeatinstall/privatekey.pem"


#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  hosts: ["elkquest.unx.abc.com:9200"]
  template.name: "heartbeat"
  template.path: "heartbeat.template.json"
  template.overwrite: true
  output.elasticsearch.index: "heartbeat-*"

----------------------------------------------------------------------------------------------------------------------------------
While the output JSON is like this:

2019-07-25T07:54:37.778-0400    DEBUG   [publish]       pipeline/processor.go:291       Publish event: {
  "@timestamp": "2019-07-25T11:54:37.766Z",
  "@metadata": {
    "beat": "heartbeat",
    "type": "doc",
    "version": "6.3.2"
  },
  "tcp": {
    "port": 80,
    "rtt": {
      "connect": {
        "us": 175
      }
    }
  },
  "resolve": {
    "host": "cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com",
    "ip": "10.104.81.47",
    "rtt": {
      "us": 301
    }
  },
  "beat": {
    "name": "cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com",
    "hostname": "cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com",
    "version": "6.3.2"
  },
  "host": {
    "name": "cicdlax.soltstgroupsgs.abchq-d.openstack.abccom"
  },
  "type": "monitor",
  "monitor": {
    "scheme": "http",
    "host": "cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com",
    "ip": "10.104.81.47",
    "duration": {
      "us": 11376
    },
    "status": "down",
    "id": "http@http://cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com/EM/",
    "type": "http",
    "name": "http"
  },
  "error": {
    "type": "validate",
    "message": "received status code 401 expecting 200"
  },
  "http": {
    "url": "http://cicdlax.soltstgroupsgs.abchq-d.openstack.abc.com/EM/",
    "response": {
      "status": 401
    },
    "rtt": {
      "validate": {
        "us": 10737
      },
      "content": {
        "us": 72
      },
      "total": {
        "us": 10968
      },
      "write_request": {
        "us": 64
      },
      "response_header": {
        "us": 10664
      }
    }
  }
}

Please suggest me any changes.

The 401 status is coming from your service. Does curl work when accessing that service from the same box as heartbeat?

Yes, It gives authorization error. But I am passing the authentication credentials as well. It is not taking the credentials I think. Please check the yaml syntax.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.