지난번 포스팅 에서 내려받았던 scouter 에 paper 기능을 설치하였습니다.
webapps 설정
인증된 사용자만 노출할 것이므로 net_http_api_auth_bearer_token_enabled
설정을 해주고 collector 서버 설정도 합니다.
net_collector_ip_port_id_pws=127.0.0.1:6100:<계정>:<패스워드>
net_http_port=6180
net_http_api_auth_bearer_token_enabled=true
/scouter/webapps 에서 ./startup.sh
로 실행을 하면 아래와 같이 지정된 포트로 LISTEN 상태를 확인할 수 있습니다.
[ec2-user@~ webapp]$ netstat -na | grep LISTEN
...
tcp 0 0 :::6180 :::* LISTEN
nat 설정으로 외부포트를 내부 6180 연결하여 로그인이 정상적으로 되지 않습니다.
네트워크 탭을 보면 loginGetToken
에서 오류가 납니다. (외부포트와 내부포트가 달라서 발생하는 문제)
scouter-paper 수정
github 에서 소스를 내려받은 후 강제로 외부포트를 설정하였습니다. 그리고 빌드 후 다시 webapps/extweb 에 배포
/src/App.js
componentWillMount() {
...
// URL로부터 스카우터 서버 정보를 세팅
let params = getParam(this.props, "address,port,protocol,authentification");
if (params[0] && params[1]) {
let paramAddress = params[0];
let paramPort = params[1];
let paramProtocol = params[2] ? params[2] : "http";
let paramAuthentification = params[3] ? params[3] : "none";
let found = false;
for (let i=0; i<config.servers.length; i++) {
let server = config.servers[i];
if (server.protocol === paramProtocol && server.address === paramAddress && String(server.port) === String(paramPort) && server.authentification === paramAuthentification) {
found = true;
server.default = true;
} else {
server.default = false;
}
}
if (!found) {
config.servers.push({
protocol: paramProtocol,
address: paramAddress,
port: paramPort,
authentification :paramAuthentification,
default : true
});
}
}
config.servers[0].port = <외부포트>;
if (config && config.servers) {
config.servers.forEach((server) => {
server.name = server.protocol + "://" + server.address + ":" + server.port
});
}
...
}
정상적으로 접근이 됩니다.