Total: Today: Yesterday:
노하우/Linux | 2019. 4. 23. 00:25 | Posted by 자수씨

지난번 포스팅 에서 내려받았던 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
        });
    }
    ...
}

정상적으로 접근이 됩니다.

'노하우 > Linux' 카테고리의 다른 글

[EC2] htop, iftop, iotop  (0) 2021.07.22
[Redis] AWS EC2 인스턴스에 redis-server 설치  (0) 2020.05.31
[AWS] EC2 인스턴스에 nodejs 설치  (0) 2019.04.23
Linux 에 OpenJDK 8 설치  (0) 2019.04.13
포트 우회하기  (0) 2019.04.12