2017-11-09 2 views
0

저는 AWS의 세계를 초보자로 삼아 EC2 인스턴스를 설정하고 ElasticSearch를 설치하여 기능을 조금만 재생하고 자세히 알아볼 수 있도록했습니다. ElasticSearch가 작동 중입니다. curl 요청을 원격으로 ES 서비스에 보내고 결과를 얻을 수 있습니다.EC2 인스턴스에서 원격으로 Kibana에 액세스 할 수 없습니다.

그러나 원격으로 키 바나에 액세스 할 수 없습니다. 내가 먼저 내 kibana.yml 파일에 가서 다음과 같은 설정을 사용 :

# Kibana is served by a back end server. This setting specifies the port to use. 
server.port: 5601 

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values. 
# The default is 'localhost', which usually means remote machines will not be able to connect. 
# To allow connections from remote users, set this parameter to a non-loopback address. 
server.host: "127.0.0.1" 

참고 :server.host를 들어, 내가 0.0.0.0, 내 EC2 인스턴스의 실제 IP 주소, 127.0.0.1, 그리고 그들 중 누구도 시도했습니다 허용을 내 연결 액세스. 내 SSH 터미널 내에서

service kibana start

: enter image description here

내가 다음 내 키바 서비스를 시작 :

나는 다음 내 AWS 콘솔에 가서 내 보안 그룹에 올바른 사용 권한을 가지고 있는지 확인하기 위해 검사 curl localhost:5601을 실행하고 유효한 응답을받을 수 있습니다.

<script>var hashRoute = '/app/kibana'; 
var defaultRoute = '/app/kibana'; 

var hash = window.location.hash; 
if (hash.length) { 
    window.location = hashRoute + hash; 
} else { 
    window.location = defaultRoute; 
} 

그러나 우편함, 내 브라우저 또는 curl을 로컬 컴퓨터에서 Kibana (curl XXX.XX.XX.XXX:5601) 원격 액세스에 사용하면 Connection refused 오류가 발생합니다.

나는 다음 vi /var/log/kibana/kibana.stderr를 사용하여 내 키바 로그를 검사하는 것을 시도하고 흥미로운 오류 메시지가 발견 다음 XX.XX... 내 EC2 인스턴스의 IP 주소를 나타냅니다

at net.js:1408:9 
    at _combinedTickCallback (internal/process/next_tick.js:83:11) 
    at process._tickCallback (internal/process/next_tick.js:104:9) 
    cause: 
    { Error: listen EADDRNOTAVAIL XX.XXX.XX.XX:5601 
     at Object.exports._errnoException (util.js:1020:11) 
     at exports._exceptionWithHostPort (util.js:1043:20) 
     at Server._listen2 (net.js:1249:19) 
     at listen (net.js:1298:10) 
     at net.js:1408:9 
     at _combinedTickCallback (internal/process/next_tick.js:83:11) 
     at process._tickCallback (internal/process/next_tick.js:104:9) 
    code: 'EADDRNOTAVAIL', 
    errno: 'EADDRNOTAVAIL', 
    syscall: 'listen', 
    address: 'XX.XX.XX.XX', 
    port: 5601 }, 
    isOperational: true, 
    code: 'EADDRNOTAVAIL', 
    errno: 'EADDRNOTAVAIL', 
    syscall: 'listen', 
    address: 'XX.XXX.XX.XXX', 
    port: 5601 } 

합니다. 뭔가가 이미 5601 그래서 나는 다음 sudo lsof -i:5601를 발행 포트에 바인딩이 출력 본 것처럼 보인다 :

> COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 3676 
> kibana 11u IPv4 14951  0t0 TCP localhost:esmagent (LISTEN) 

나는 모든 리눅스 경험이 아니에요,하지만이는 키바가 제대로이 결합되어 말할 나타납니다 포트. 그래서이 시점에서 저는 신선한 생각에서 벗어났습니다. 나는 같은 게시물에 대해 like this one 게시물을 살펴본 결과 (위의 워크 플로우에서) 답변을 시도했습니다. 누구든지이 오류의 원인을 파악할 수 있습니까?

EDIT : 로컬 인스턴스에서 Kibana를 시작하고 ElasticSearch 서비스에 연결할 수 있습니다. 방금 내 로컬 kibana.yml 파일의 설정을 내 EC2 인스턴스 포트 9200을 가리 키도록 변경했습니다.하지만 EC2 인스턴스에서 Kibana에 액세스 할 수없는 이유를 알고 싶습니다.

+0

바인드 키바 내 노트에 did- @DusanBajic'0.0.0.0' –

+0

에 나는 0.0.0.0뿐만 아니라 시도 말했다 EC2 IP –

+0

당신은 당신이 (때문에 0.0.0.0에 결합 할 때 오류가 무엇인지 보여줄 수 위의 상태'XX.XX는 내 EC2 인스턴스 IP 주소를 나타냅니다 .') –

답변

0

이 문제를 해결 한 정확한 이유는 모르겠지만 비슷한 두통을 겪고있는 미래의 사용자를 위해 인스턴스를 종료하고 Java 8, Elastic Search 및 Kibana를 완전히 다시 설치했습니다. I 은 ES 및 Kibana 버전 번호가과 일치하는지 확인했습니다. 예를 들어, 5.6 Kibana를 사용했지만 2.x Elastic Search는 원래 사용했습니다.

그런 다음 인바운드 보안 그룹 설정에서 ES 및 Kibana의 포트 9200 및 5601에 대한 TCP 액세스를 허용하는지 확인하십시오.

그런 다음 주석에 언급 된대로 Kibana를 0.0.0.0으로 바인딩하십시오. 그게 내 일을하는거야.

오류에 대한 이론적 인 이유는 분명하지 않지만 아마도 다음 사용자 목록에서 몇 가지 사항을 확인하는 데 도움이 될 것입니다.

관련 문제