728x90
우분투에서 Promtail을 설치하고 설정하는 방법
Promtail
- 역할 : 로그 수집 에이전트.
- 기능 : Promtail은 Loki에 로그를 전송하는 역할을 하며 로그 파일을 모니터링하고 이를 Loki에 전송합니다. Promtail은 다양한 로그 소스(예: 파일, 시스템 로그 등)에서 로그를 수집하고 수집된 로그에 레이블을 추가하여 Loki에 전달합니다.
1. Promtail 사용자 생성
sudo useradd --system --no-create-home --shell /usr/sbin/nologin promtail
sudo usermod -aG syslog promtail
2. Promtail 설치
Grafana Loki 버전 정보
PROMTAIL_VERSION=$(curl -fsSL https://api.github.com/repos/grafana/loki/releases/latest | grep '"tag_name"' | cut -d '"' -f 4 | sed 's/^v//')
echo $PROMTAIL_VERSION
Promtail 바이너리 다운로드
PROMTAIL_VERSION="3.2.1"
sudo mkdir -p /usr/local/bin /etc/promtail
curl -O -fsSL "https://github.com/grafana/loki/releases/download/v${PROMTAIL_VERSION}/promtail-linux-$(dpkg --print-architecture).zip"
압축 해제
unzip promtail-linux-amd64.zip
실행 권한 부여
chmod +x promtail-linux-amd64
sudo mv promtail-linux-amd64 /usr/local/bin/promtail
3. Promtail 설정
Promtail 설정 파일 다운로드 및 편집
sudo mkdir -p /etc/promtail
curl -O https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml
sudo mv promtail-local-config.yaml /etc/promtail/config.yml
vim /etc/promtail/config.yml
또는
sudo tee /etc/promtail/config.yml > /dev/null <<EOF
server:
http_listen_port: 9080
clients:
- url: http://localhost:3100/loki/api/v1/push
positions:
filename: /var/lib/promtail/positions.yaml
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*.log
server_name: server2
EOF
4. Promtail 서비스 등록
Promtail 시스템 서비스 구성
vim /etc/systemd/system/promtail.service
sudo tee /etc/systemd/system/promtail.service > /dev/null <<EOF
[Unit]
Description=Promtail service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=promtail
ExecStart=/usr/local/bin/promtail -config.file /etc/promtail/config.yml
TimeoutSec=60
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
EOF
Promtail 서비스 시작 및 자동 시작 설정
sudo systemctl daemon-reload
sudo systemctl enable --now promtail
sudo systemctl restart promtail
5. Promtail 상태 확인
sudo systemctl status promtail
또는
sudo systemctl status promtail --no-pager
6. Promtail 로그 및 시스템 로그 확인
Promtail의 최근 로그를 확인할 수 있습니다.
sudo journalctl -u promtail -f
7. Promtail을 자동으로 설치하고 구성하는 스크립트
vim install_promtail.sh
#!/bin/bash
# Promtail 버전 설정
PROMTAIL_VERSION="3.2.1"
# unzip 설치
if ! command -v unzip &>/dev/null; then
echo "Installing unzip..."
sudo apt update && sudo apt install -y unzip
fi
# Promtail 사용자 생성
if ! id "promtail" &>/dev/null; then
sudo useradd --system --no-create-home --shell /usr/sbin/nologin promtail
fi
# Promtail 바이너리 다운로드
if ! curl -O -fsSL "https://github.com/grafana/loki/releases/download/v${PROMTAIL_VERSION}/promtail-linux-amd64.zip"; then
echo "Promtail 다운로드에 실패했습니다."
exit 1
fi
# Promtail 설치
if [[ -f "promtail-linux-amd64.zip" ]]; then
unzip -o promtail-linux-amd64.zip
chmod +x promtail-linux-amd64
sudo mv promtail-linux-amd64 /usr/local/bin/promtail
rm promtail-linux-amd64.zip
else
echo "다운로드된 파일이 존재하지 않습니다."
exit 1
fi
# 필요한 디렉터리 생성
sudo mkdir -p /etc/promtail /var/lib/promtail
# Promtail 설정 파일 생성 (이미 있는 경우 덮어쓰지 않음)
if [[ ! -f /etc/promtail/config.yml ]]; then
sudo tee /etc/promtail/config.yml > /dev/null <<EOF
server:
http_listen_port: 9080
clients:
- url: http://localhost:3100/loki/api/v1/push
positions:
filename: /var/lib/promtail/positions.yaml
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*.log
server_name: server2
EOF
fi
# Promtail 서비스 파일 생성 (이미 있는 경우 덮어쓰지 않음)
if [[ ! -f /etc/systemd/system/promtail.service ]]; then
sudo tee /etc/systemd/system/promtail.service > /dev/null <<EOF
[Unit]
Description=Promtail service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=promtail
ExecStart=/usr/local/bin/promtail -config.file /etc/promtail/config.yml
TimeoutSec=60
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
EOF
fi
# systemd 데몬 갱신 및 Promtail 서비스 시작
sudo systemctl daemon-reload
sudo systemctl enable --now promtail
# Promtail 서비스 재시작
sudo systemctl restart promtail
chmod +x install_promtail.sh
bash install_promtail.sh
Promtail이 정상적으로 실행되면 Loki에 로그가 전송됩니다.
728x90
'리눅스' 카테고리의 다른 글
[draft] 우분투에서 NetBox를 설치하고 설정하는 방법 (0) | 2024.11.01 |
---|---|
[draft] PLG vs EFK 스택 (0) | 2024.11.01 |
[draft] 우분투에서 apt 패키지 매니저를 사용하여 최신 버전의 Grafana와 Loki를 설치하는 방법 (1) | 2024.11.01 |
[draft] Zabbix에서 그래프에 한글이 깨지는 문제를 해결하는 방법 (2) | 2024.10.31 |
[draft] 우분투에서 Zabbix Agent 2를 설치하고 설정하는 방법 (1) | 2024.10.31 |