본문 바로가기
Util/일반

[APM] Skywalking 설치 - 2. Linux 서버 연결

by hongdor 2022. 5. 1.
728x90

Linux 서버를 Skywalking에 연결하는 과정이다.

 

설치 과정 

1. Docker를 이용해 Skywalking 설치

2. Linux 서버 연결

3. node 서비스 연결

 

 

1. node_exporter와 opentelemetry collector 설치

Linux 서버에서 Skywalking 데이터를 전송하기 위해 필요하다.

Skywalking Linux연결 공식 문서 : Linux Monitoring | Apache SkyWalking

 

node_exporter는 pc의 데이터를 추출하고

opentelemetry collector 가 데이터를 수집해서 skywalking으로 전송한다.

 

 

2. node_exporter 설치

node_exporter 설치 공식문서 : Monitoring Linux host metrics with the Node Exporter | Prometheus

 

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
nohup ./node_exporter &

공식 문서와는 조금 다른데, 공식 문서에 나와있는 버전이 다운로드 되지 않아 직접 명시해 주었다.

위와 같이 설치후 curl http://localhost:9100/metrics 로 테스트하면 node_exporter 정보를 볼 수 있다.

 

 

3. opentelemetry collector 설치

opentelemetry collector 설치 공식문서 : Getting Started | OpenTelemetry

 

apt-get update
apt-get -y install wget systemctl
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.44.0/otelcol_0.44.0_linux_amd64.deb
dpkg -i otelcol_0.44.0_linux_amd64.deb

위와 같은 과정을 거치면 opentelemetry collector (이하 otelcol) 설치과 완료된다.

이후 otelcol 설정 변경이 필요하다.

 

 

3-1. otelcol 설정 변경 - vm.yaml 파일 생성

/etc/otelcol 에 vm.yaml 파일을 만들어준다.

receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: 'vm-monitoring' # vm-monitoring 으로 해야한다. 변경하면 안된다.
          scrape_interval: 10s
          static_configs:
            - targets: [ '127.0.0.1:9100' ] # node_exporter 서버
              labels:
                node_identifier_host_name: '표시할 서버 이름'


processors:
  batch:

exporters:
  opencensus:
    endpoint: "127.0.0.1:11800" # Skywalking Banckend server
    tls:
      insecure: true # 보안 설정 끄기
  # Exports data to the console  
  logging:
    logLevel: error # 로그 레벨

service:
  pipelines:
    metrics:
      receivers: [prometheus]
      processors: [batch]
      exporters: [opencensus,logging]

job_name 이름으로 skywaking 에서 필터링한다. job_name을 변경하면 안된다. 

커스텀 하고 싶은 경우 OpenTelemetry receiver | Apache SkyWalking  공식문서를 참고한다.

디버깅시 logLevel: error 를 logLevel: debug로 바꿔준다.

공식문서와 다르게 insecure: true 앞단에 tls 항목이 추가되었다. 최근버전과 문서가 다른 것 같다.

labels.node_identifier_host_name 같은 경우 원래대로라면 서버 ip가 service name으로 표시되어야 하는데,

비어있는 이름으로 인식이 되어서, prometheus 설정에 labels로 node_identifier_host_name 를 추가해줬다.

 

* prometheus의 labels 관련 표기 양식

Configuration | Prometheus

* skywalking의 node_identifier_host_name 관련 내용

OpenTelemetry receiver | Apache SkyWalking

 

 

3-2. otelcol 설정 변경 - vm.yaml 파일 적용

/etc/otelcol 에서 otelcol.conf 의 내용을 수정해준다.

OTELCOL_OPTIONS="--config=/etc/otelcol/vm.yaml"

이후 재시작하고, 로그를 확인한다.

sudo systemctl restart otelcol
sudo journalctl -u otelcol

디버깅시 로그가 많이쌓이면 sudo journalctl -r -u otelcol 로 로그를 뒤집어 볼 수 있다.

 

이후 Skywalking UI로 들어가서 데이터가 들어오는 것을 확인한다.

 

728x90

'Util > 일반' 카테고리의 다른 글

[APM] Skywalking 설치 - 3. Node.js 연결  (0) 2022.05.01
[APM] Skywalking 설치 - 1. Skywalking 설치  (0) 2022.05.01

댓글