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 관련 표기 양식
* 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로 들어가서 데이터가 들어오는 것을 확인한다.
'Util > 일반' 카테고리의 다른 글
[APM] Skywalking 설치 - 3. Node.js 연결 (0) | 2022.05.01 |
---|---|
[APM] Skywalking 설치 - 1. Skywalking 설치 (0) | 2022.05.01 |
댓글