◆ 머리말
■ 소프트웨어 별 주요 기능/역할
- Alloy (수집) : 데이터 수집 및 전송 ( 메트릭, 로그, 트레이스 통합 수집)
https://grafana.com/docs/alloy/latest/set-up/install/
- Loki (저장/검색) : 데이터 저장 및 검색 (수집된 로그 보관, 레이블로 관리)
- https://grafana.com/docs/loki/latest/setup/install/
- free forever access to 10,000 측정지표, 50GB 로그, 50GB 추적활동, 월별 6k 테스트 500 가상 사용자 시간
- Grafana (시각화) : 데이터 시각화 및 분석 (수집된 로그와 측정지표룰 그래프 등으로 시각화)
https://grafana.com/docs/grafana/latest/setup-grafana/installation/
◆ 사전작업
■ 아키텍처
- 시스템 구성도

- 시스템 사양
-
◆ 본작업
■ Alloy 설치 (Ubuntu)
- Step01. GPG 도구를 설치
CMD] sudo apt install gpg
- Step02. GPG 키 가져 오기 및 그라파나 패키지 저장소 추가
CMD] sudo mkdir -p /etc/apt/keyrings
CMD] sudo wget -O /etc/apt/keyrings/grafana.asc https://apt.grafana.com/gpg-full.key
CMD] sudo chmod 644 /etc/apt/keyrings/grafana.asc
CMD] echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
# 레파지토리 업데이트
CMD] sudo apt-get update
- Step03. Alloy 설치
CMD] sudo apt-get install alloy
# Download the package and all its dependencies to the current directory
#CMD] sudo apt-get install apt-rdepends
#CMD] apt-get download $(apt-rdepends alloy | grep -v "^ " | grep -v "^libc-dev$")
- Step04. (선택) Alloy 삭제
CMD] sudo apt-get remove alloy
# Optional: Remove the Grafana repository.
CMD] sudo rm -i /etc/apt/sources.list.d/grafana.list
- Step05. Alloy 실행
CMD] systemctl daemon-reload
CMD] sudo systemctl start alloy
CMD] sudo systemctl status alloy
# 부팅 시, 서비스 자동 시작 설정
CMD] sudo systemctl enable --now alloy.service
# 서비스 중지
CMD] sudo systemctl stop alloy
# Alloy 로그 보기
CMD] sudo journalctl -u alloy -f


- Step06. Alloy 설정 (with rsyslog)
1. /etc/alloy/config.alloy 파일의 설정값 추가
CMD] sudo vi /etc/alloy/config.alloy
--------------------ADD--------------------------
//logging {
// level = "warn"
//}
loki.source.syslog "syslog_receiver" {
forward_to = [loki.process.filter_logs.receiver]
listener {
address = "0.0.0.0:1514"
protocol = "tcp"
labels = { "job" = "syslog",
"service_name" = "ns1.internal.uenters.com",
}
}
}
loki.process "filter_logs" {
forward_to = [loki.write.remote.receiver]
// stage.match {
// selector = "{message =~ \"clock\"}"
// action = "drop"
// drop_counter_reason = "not_backend_with_request_id"
// }
}
loki.write "remote" {
endpoint {
url = "http://192.168.31.181:3100/loki/api/v1/push"
}
}
--------------------ADD--------------------------
CMD] sudo systemctl daemon-reload
CMD] sudo systemctl restart alloy
CMD] sudo systemctl status alloy
CMD] sudo journalctl -xeu alloy -f
CMD] sudo netstat -nltp | grep alloy

2. 방화벽 허용 정책 등록
CMD] sudo ufw allow 1514/tcp
CMD] sudo ufw reload
3. rsyslog에 alloy에 전달 설정
CMD] sudo vi /etc/rsyslog.d/40-grafana-alloy.conf
----------------ADD----------------
# Grafana Alloy로 *.internal.uenters.com 호스트에서 생성한 로그 전달 예시
if re_match($hostname, ".*\\.internal\\.uenters\\.com") then {
action(type="omfwd" target="127.0.0.1" port="1514" protocol="tcp"
Template="RSYSLOG_SyslogProtocol23Format"
queue.type="linkedlist" queue.filename="agent_fwd" action.resumeRetryCount="-1"
queue.saveOnShutdown="on")
}
----------------ADD----------------END
CMD] sudo systemctl restart rsyslog
CMD] sudo systemctl status rsyslog
- Step07.
- Step08.
- Step09.
- Step10.
■ Loki 설치 (Rocky)
- Step01. Loki 설치
CMD] sudo dnf update
CMD] sudo dnf install gpg
CMD] wget -q -O gpg.key https://rpm.grafana.com/gpg.key
CMD] sudo rpm --import gpg.key
CMD] echo -e '[grafana]\nname=grafana\nbaseurl=https://rpm.grafana.com\nrepo_gpgcheck=1\nenabled=1\ngpgcheck=1\ngpgkey=https://rpm.grafana.com/gpg.key\nsslverify=1\nsslcacert=/etc/pki/tls/certs/ca-bundle.crt' | sudo tee /etc/yum.repos.d/grafana.repo
CMD] sudo dnf install loki
# promtail 설치 (2026년 3월 종료(EOL)예정. Grafana Alloy로의 마이그레이션을 권장)
# CMD] sudo dnf install promtail

- Step02. Loki 설정
CMD] sudo vi /etc/loki/config.yml
------------CHANGE-----------------
...
server:
http_listen_port: 3100
grpc_listen_port: 9096
#log_level: debug
log_level: error
grpc_server_max_concurrent_streams: 1000
...
------------CHANGE-----------------END
- Step03. 부팅 시, Loki 서비스 자동 시작으로 설정
CMD] sudo systemctl daemon-reload
CMD] sudo systemctl enable --now loki
CMD] sudo systemctl restart loki
CMD] sudo systemctl status loki
- Step04. Loki 서비스 방화벽 허용 정책 등록
# 방화벽 실행 상태 확인
CMD] sudo systemctl status firewalld
CMD] sudo firewall-cmd --state
CMD] sudo firewall-cmd --list-all-zones
CMD] sudo firewall-cmd --list-ports --zone=public
# Loki 서비스 포트 추가 (기본 3100/tcp, gRPC포트 9096/tcp)
CMD] sudo firewall-cmd --permanent --zone=public --add-port=3100/tcp --add-port=9096/tcp
# 추가된 내용 적용
CMD] sudo firewall-cmd --reload
# 추가된 내용 확인
CMD] sudo firewall-cmd --list-ports --zone=public
- Step05. Loki 기본 포트 원격 접속 확인
CMD] curl -v telnet://192.168.31.181:3100

- Step06. Loki CLI 설치 (https://github.com/grafana/loki/releases)
CMD] sudo mkdir -p /app/instl/loki
CMD] sudo chown uenter:uenters /app/instl/loki
CMD] cd /app/instl/loki
CMD] wget https://github.com/grafana/loki/releases/download/v3.6.3/logcli-3.6.3.x86_64.rpm
CMD] sudo rpm -Uvh logcli-3.6.3.x86_64.rpm
CMD] logcli --version


- Step07. Loki 수집 데이터 조회
CMD] export LOKI_ADDR=http://192.168.31.181:3100
# 인증이 필요한 경우:
#CMD] export LOKI_USERNAME=<사용자 이름>
#CMD] export LOKI_PASSWORD=<비밀번호>
# 레이블 확인
CMD] logcli labels
# 레이블 분석
CMD] logcli series --analyze-labels '{service_name=~".+"}'
# job 리스트 확인
CMD] logcli labels job

■ Grafana 설치
- Step01. GPG 키 추가하기
CMD] sudo mkdir -p /app/instl/grafana
CMD] sudo chown uenter:uenters /app/instl/grafana
CMD] cd /app/instl/grafana
CMD] wget -q -O gpg.key https://rpm.grafana.com/gpg.key
CMD] sudo rpm --import gpg.key
- Step02. Grafana 레파지토리 등록
CMD] sudo vi /etc/yum.repos.d/grafana.repo
---------------ADD---------------------
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
---------------ADD---------------------END
- Step03. Grafana OSS 버젼 설치
CMD] sudo dnf install grafana
# Enterprise 버젼 설치 명령어
#CMD] sudo dnf install grafana-enterprise
- Step04. (선택) Grafana 삭제
CMD] sudo systemctl stop grafana-server
CMD] sudo dnf remove grafana
CMD] sudo rm -i /etc/yum.repos.d/grafana.repo
- Step05. Grafana 서버 시작
CMD] sudo systemctl daemon-reload
CMD] sudo systemctl enable --now grafana-server
CMD] sudo systemctl start grafana-server
- Step06. Grafana 서비스 방화벽 허용 정책 등록
# 방화벽 실행 상태 확인
CMD] sudo systemctl status firewalld
CMD] sudo firewall-cmd --state
CMD] sudo firewall-cmd --list-all-zones
CMD] sudo firewall-cmd --list-ports --zone=public
# Loki 서비스 포트 추가 (기본 3000/tcp)
CMD] sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
# 추가된 내용 적용
CMD] sudo firewall-cmd --reload
# 추가된 내용 확인
CMD] sudo firewall-cmd --list-ports --zone=public
- Step07. Grafana 웹UI 접속 및 로그인 (계정:admin / 비번:admin)
CMD> http://192.168.31.181:3000/
# 계정: admin / 초기비번: admin

- Step08. Loki 데이터 소스 등록
① 메뉴 [Connections] → [Add new connection] → [Loki] 선택

② 메뉴 [Add new data source] 선택

③ "Default" 지정 및 Connection 주소 등록

④ 메뉴 [Save & Test} 클릭 및 연결 확인


- Step09.
- Step10.
◆ 사후작업
■ ㅇㅇㅇ.
- ㅇㅇㅇ
◆ 맺음말
■ ㅇㅇㅇ.
- ㅇㅇㅇ
반응형
'Linux > Rocky' 카테고리의 다른 글
| Splunk로 SIEM 환경 만들기 (splunk) (0) | 2026.01.19 |
|---|---|
| [Rocky/v9.6] 신뢰할 수 있는 root ca 인증서 등록 (0) | 2026.01.12 |
| [Mint/v22.2] http 웹페이지 접속 테스트 30초 단위 백그라운드 스케줄링 작업 등록 (0) | 2025.12.26 |