When we edit apm-server.yml for giving ip and restart, service wont start

Hi All,
I am trying out with APM,
In have two test instance of the same versions, OS and mode of installation
one in my virtualbox
one in my aws account

In virtualbox for making apm-service available to all, I edited the
/etc/apm-server/apm-server.yml

 host: "192.168.10.104:8200"

I restart it works fine, I am able to restart the service, status shows the apm-server running and I am able to telnet to the service 192.168.10.104:8200, Good

But for a demo I preparing at my aws account (I am aware of the security group and had done the necessary settings)
in my
“/etc/apm-server/apm-server.yml”
I edit

host: "1X.1X.1x.1xx:8200"

then I stop the service and start, check the service, then service status shows it is down

when I check the logs I see
Sep 16 13:02:43 ip-1XX-1X-1x-1xx apm-server[3348]: 2019-09-16T13:02:43.018Z#011ERROR#011[beater]#011beater/beater.go:191#011failed to listen:listen tcp 1X.1X.x.x:8200: bind: cannot assign requested address

This IP “ 1X.1X.1x.1xx” is the elasticIP address given to the instance


Kibana version:
7.3.1
Elasticsearch version:
7.3.1
APM Server version:
7.3.1
APM Agent language and version:
elastic-apm-agent-1.9.0.jar
Browser version:
Firefox 69
Original install method (e.g. download page, yum, deb, from source, etc.) and version:
deb
Fresh install or upgraded from other version?
Fresh
Is there anything special in your setup? For example, are you using the Logstash or Kafka outputs? Are you using a load balancer in front of the APM Servers? Have you changed index pattern, generated custom templates, changed agent configuration etc.
No
Description of the problem including expected versus actual behavior. Please include screenshots (if relevant):

Steps to reproduce:

  1. install in AWS ec2 instance
  2. assign elastic IP
  3. edit the

/etc/apm-server/apm-server.yml and give the "host: "elaticIP:8200"

  1. restart it and check the status

Note:- from morning on wards I am only doing this, it is not related with the aws security group or acl or anything, because I am checking for the service running or not with localhost:8200 it works, but wont work with the assigned elasticIP address assigned to the instance

Just a small update, the error message which we are getting at the AWS is

Sep 16 13:59:33 apm apm-server[2321]: 2019-09-16T13:59:33.585Z#011ERROR#011[beater]#011beater/beater.go:191#011failed to listen:listen tcp X.X.X.X:8200: bind: cannot assign requested address

Seeing this error, what this is my assumtion the IP address cannot be bind by the application, ie when we restart the apm-server it is UN-success, the same error message will be thrown when we are giving a wrong IP

So my assumption is that AWS is restricting to bind the IP address with the application somehow.

I may be wrong, correct me if I am wrong.
At least 5-6 virtual box installation I did, every time it worked, but in AWS spend more than 8 hours troubleshooting was not able to work.
thanks
Joseph John

You should be using the EC2 instance's private IP address for the host configuration. The Elastic IP will be mapped to the private IP using NAT.

You can use the output of ifconfig to identify the private IP address. Alternatively you can set host: ":8200", which will configure apm-server to listen on all network interfaces.

1 Like

Thanks Andrew, I will check it and update the results
thanks a lot for the post

Thanks it is working
I gave the private IP address, for me the

host: ":8200"

Did not work
it worked with private IP
thanks
Joseph John

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