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

노하우/Server | 2019. 4. 19. 22:47 | Posted by 자수씨

스카우터 설치

2019.04.19 기준 2.6.1 버전으로 설치

서버 (collector) 설치

서버만 돌릴 거면 agent 는 제거

$ wget https://github.com/scouter-project/scouter/releases/download/v2.6.1/scouter-all-2.6.1.tar.gz
$ tar xzf scouter-all-2.6.1.tar.gz

$ cd scouter
$ rm -rf agent.*

scouter/server/conf/scouter.conf 설정 (6180 은 api 서버에서 쓸 예정이므로 다른 포트로 변경해준다.)

# Agent Control and Service Port(Default : TCP 6100)
net_tcp_listen_port=6100

# UDP Receive Port(Default : 6100)
net_udp_listen_port=6100

# Http Port for scouter-pulse(Default : 6180)
net_http_port=6101

# DB directory(Default : ./database)
db_dir=/<스토리지경로>/scouter/database

# Log directory(Default : ./logs)
log_dir=/<스토리지경로>/scouter/logs

실행법은 startup.sh 로 한다. (java 가 설치안된 경우에는 별도로 설치)

[ec2-user@~~ server]$ ./startup.sh 
nohup: redirecting stderr to stdout
  ____                  _            
 / ___|  ___ ___  _   _| |_ ___ _ __ 
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |   
 |____/ \___\___/ \__,_|\__\___|_|                                      
 Open Source S/W Performance Monitoring  
 Scouter version 2.6.1

[ec2-user@~~ server]$ netstat -na | grep LISTEN    
tcp        0      0 :::6100                     :::*                        LISTEN      
tcp        0      0 :::6101                     :::*                        LISTEN      

client 에서 정상적으로 접근되면 서버는 설치 완료

에이전트 (agent.host) 설치

리눅스 서버에 agent.host 를 설치할 예정이므로 min 버전을 다운 받아 설치한다.
(server 는 필요 없으므로 제거)

$ wget https://github.com/scouter-project/scouter/releases/download/v2.6.1/scouter-min-2.6.1.tar.gz
$ tar xzf scouter-min-2.6.1.tar.gz

$ cd scouter
$ rm -rf server

scouter/agent.host/conf/scouter.conf 설정

obj_name=<agent이름>
net_collector_ip=<collector IP>
net_collector_udp_port=6100
net_collector_tcp_port=6100
#cpu_warning_pct=80
#cpu_fatal_pct=85
#cpu_check_period_ms=60000
#cpu_fatal_history=3
#cpu_alert_interval_ms=300000
#disk_warning_pct=88
#disk_fatal_pct=92

scouter/agent.host 에서 ./host.sh 로 실행시킨다.

[ec2-user@ip~~ agent.host]$ ./host.sh 
nohup: redirecting stderr to stdout
  ____                  _            
 / ___|  ___ ___  _   _| |_ ___ _ __ 
 \___ \ / __/   \| | | | __/ _ \ '__|
  ___) | (_| (+) | |_| | ||  __/ |   
 |____/ \___\___/ \__,_|\__\___|_|                                      
 Open Source S/W Performance Monitoring  
 Scouter version 2.6.1

Configure -Dscouter.config=./conf/scouter.conf
Scouter Host Agent Version 2.6.1 2019-03-17 08:45 GMT
System JRE version : 1.8.0_201

클라이언트에 정상적으로 host 정보가 집계되면 성공

에이전트 (agent.java) 설치

데이터를 집계할 WAS 는 Tomcat 이기 때문에 catalina.sh 에 다음과 같이 추가한다.

$CATALINA_HOME/bin/catalina.sh

# scouter settings
JAVA_OPTS="$JAVA_OPTS -javaagent:/home/ec2-user/scouter/agent.java/scouter.agent.jar"

Tomcat 을 재시작 하면 collector 쪽에 데이터를 전송한다.

참고자료

http://gunsdevlog.blogspot.com/2017/07/scouter-apm-1.html

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

[nginx] websocket forwarding  (0) 2020.05.31
[MongoDB] CentOS 7에 설치하기  (0) 2019.08.10