카이도스의 Tech Blog

Grafana, Loki, Promtail 모니터링+로그 셋팅+zabbix 연동 본문

모니터링

Grafana, Loki, Promtail 모니터링+로그 셋팅+zabbix 연동

카이도스 2023. 4. 26. 10:41
728x90
반응형

설치환경 : ubuntu 20.04, IDC 서버


모니터링 환경 구축 후 로깅모니터링까지 붙이는 방식으로 진행하려고 한다.

기존 모니터링은 자빅스+그레이로그 사용중이지만 그라파나+로키 연동하여 통합해서 사용하려고한다.(Alert은 기존 자빅스 활용)

그라파나 통합만 완료하고 자빅스 연동하면 기존 자빅스에 연결된 IDC 170대 가량의 서버매트릭을 바로 확인가능하다.

목표: 모니터링-grafana, log-grafana, Alert-zabbix

순서는 grafana, prometheus 설치 후 기존 자빅스 모니터링 연동 및 promtail, Loki 를 이용해 로그모니터링까지 진행하려고 한다. 

참고링크 - 링크

1. grafana 설치

# 그라파나 설치
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

sudo apt-get update
sudo apt-get install -y grafana

# 서비스 파일 생성
systemctl edit grafana-server.service
[Service]
# Give the CAP_NET_BIND_SERVICE capability
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE

# A private user cannot have process capabilities on the host's user
# namespace and thus CAP_NET_BIND_SERVICE has no effect.
PrivateUsers=false

붙여넣은후에는 Ctrl+O -> Enter -> Ctrl+X 를 순서대로 눌러서 빠져나옵니다.

# 서비스 시작 및 확인
sudo service grafana-server start
sudo service grafana-server status

sudo update-rc.d grafana-server defaults

http://서버IP:3000

2. 프로메테우스 설치

sudo apt install -y prometheus prometheus-node-exporter
sudo vi /etc/default/prometheus
ARGS="--storage.tsdb.retention=15d"

http://서버IP:9090

3. 자빅스 연동

3-1. configuration → Plugins → zabbix 검색 후 설치 및 enable → 데몬 재구동

# 자빅스 플러그인 설치
grafana-cli plugins install alexanderzobnin-zabbix-app

 

3-2. configuration → Data sources → zabbix 추가(관련설정 입력-URL, username, password) save& test
URL : http://서버IP/zabbix/api_jsonrpc.php

3.3 완료 후 그라파나 대시보드 Import 진행- 참고링크


4. Loki 설치 (Loki와 promtail은 github에서 최신 릴리즈 확인 후 최신버전으로 진행)

# loki 설치
cd /etc/grafana/
curl -O -L "https://github.com/grafana/loki/releases/download/v2.8.1/loki-linux-amd64.zip"
unzip loki-linux-amd64.zip
chmod a+x "loki-linux-amd64"

rm -rf loki-linux-amd64.zip
mv loki-linux-amd64 loki

# loki-local-config.yaml 다운로드
wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml

# grafana-loki.service 파일 생성
cat > /etc/systemd/system/grafana-loki.service <<EOF
[Unit]
Description=Grafana Loki
Documentation=https://github.com/grafana/loki
After=network-online.target

[Service]
User=root
Restart=always
ExecStart=/etc/grafana/loki --config.file=/etc/grafana/loki-local-config.yaml

[Install]
WantedBy=multi-user.target
EOF

# 서비스 시작 및 확인
systemctl daemon-reload
service grafana-loki restart
service grafana-loki status
systemctl enable grafana-loki

설치 완료 후 configuration → Data sources → Loki 추가

관련 대시보드 import하면 완료


5. promtail 설치

# promtail 설치
curl -O -L "https://github.com/grafana/loki/releases/download/v2.8.1/promtail-linux-amd64.zip"
unzip promtail-linux-amd64.zip
chmod a+x "promtail-linux-amd64"

rm -rf promtail-linux-amd64.zip
mv promtail-linux-amd64 promtail

# promtail config 다운로드
wget https://raw.githubusercontent.com/grafana/loki/v2.8.1/clients/cmd/promtail/promtail-local-config.yaml

# grafana-promtail.service 생성
cat > /etc/systemd/system/grafana-promtail.service <<EOF
[Unit]
Description=Grafana promtail
Documentation=https://github.com/grafana/loki
After=network-online.target

[Service]
User=root
Restart=always
ExecStart=/etc/grafana/promtail --config.file=/etc/grafana/promtail-local-config.yaml

[Install]
WantedBy=multi-user.target
EOF

# 재시작
systemctl daemon-reload
service grafana-promtail restart
service grafana-promtail status
systemctl enable grafana-promtail

6. promtail 설치(에이전트 개념으로 로그 수집할 서버에 설치)

# promtail 설치
sudo su -
mkdir -p /etc/promtail
cd /etc/promtail
curl -O -L "https://github.com/grafana/loki/releases/download/v2.8.1/promtail-linux-amd64.zip"
apt install -y unzip
unzip promtail-linux-amd64.zip
chmod a+x "promtail-linux-amd64"

rm -rf promtail-linux-amd64.zip
mv promtail-linux-amd64 promtail

# promtail config 생성
cat > /etc/promtail/promtail-local-config.yaml <<EOF
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://그라파나설치한서버IP:3100/loki/api/v1/push

scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - grafana
    labels:
      job: zabbix-syslog
      __path__: /var/log/*log
EOF


# grafana-promtail.service 생성
cat > /etc/systemd/system/grafana-promtail.service <<EOF
[Unit]
Description=Grafana promtail
Documentation=https://github.com/grafana/loki
After=network-online.target

[Service]
User=root
Restart=always
ExecStart=/etc/promtail/promtail --config.file=/etc/promtail/promtail-local-config.yaml

[Install]
WantedBy=multi-user.target
EOF

# 재시작
systemctl daemon-reload
service grafana-promtail restart
service grafana-promtail status
systemctl enable grafana-promtail

 

job 이름은 호스트네임으로 변경해서 관리하면 좋음.

728x90
반응형

'모니터링' 카테고리의 다른 글

Redis Exporter  (1) 2024.02.04
mongodb_exporter 설치  (0) 2024.02.04
Datadog Agent 설치  (0) 2023.04.04
DATADOG-AWS 연동  (0) 2023.03.29
kafka zabbix 모니터링 설정  (0) 2023.02.09
Comments