sudo dnf install wget -y
wget https://github.com/prometheus/prometheus/releases/download/v3.11.0/prometheus-3.11.0.linux-amd64.tar.gz
tar xzvf prometheus-3.11.0.linux-amd64.tar.gz
sudo mv prometheus-3.11.0.linux-amd64/prometheus /usr/local/bin/
sudo mv prometheus-3.11.0.linux-amd64/promtool /usr/local/bin/
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
sudo tee -a /etc/prometheus/prometheus.yml << EOF
global:
scrape_interval: 30s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
scrape_timeout : 30s # scrape_timeout is set to the global default (10s)
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs:
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
EOF
sudo tee -a /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.enable-remote-write-receiver
# --web.console.templates=/etc/prometheus/consoles
# --web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl restart prometheus
sudo systemctl status prometheus
접속 방법
http://<server_IP>:9090
Grafana Repo 설정
sudo tee /etc/yum.repos.d/grafana.repo > /dev/null <<EOF
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
sudo dnf install loki
sudo systemctl disable loki
sudo systemctl stop loki
아래와 같이 수정.
sudo vi /etc/loki/config.yml
..
# enable_multi_variant_queries: true
..
limits_config:
# 초당 수신할 수 있는 전체 로그 용량 (MB) (기본값 4)
ingestion_rate_mb: 10
# 초당 수신할 수 있는 최대 버스트 용량 (MB) (기본값 6)
ingestion_burst_size_mb: 20
sudo systemctl start loki
sudo systemctl status loki
export EDB_SUBSCRIPTION_TOKEN=<TOKEN 입력>
export EDB_REPO=gpsupp
curl -1sSLf "https://downloads.enterprisedb.com/$EDB_SUBSCRIPTION_TOKEN/$EDB_REPO/setup.rpm.sh" | sudo -E bash
sudo dnf download edb-whpg-observability-collector
tee -a all_host << EOF
whpg-m
whpg-sm
whpg-s1
whpg-s2
EOF
모든 노드에 rpm 복사 후 설치.
gpssh -f all_hosts -u gpadmin -e "scp gpadmin@$(hostname):edb-whpg-observability-collector*.rpm /tmp/ && sudo dnf install -y /tmp/edb-whpg-observability-collector*.rpm"
구성 파일 설정.
tee -a /var/lib/whpg-observability-collector/collector.conf << EOF
WHPG_OBS_DSN="host=whpg-m port=5432 dbname=gpadmin user=gpadmin password=gpadmin sslmode=disable"
LOKI_ENDPOINT="http://whpg-m:3100/loki/api/v1/push"
PROMETHEUS_ENDPOINT="http://whpg-m:9090/api/v1/write"
EOF
sudo visudo
gpadmin ALL=(ALL) NOPASSWD: ALL
cd /var/lib/whpg-observability-collector
./deploy-observability
sudo systemctl status alloy
sudo systemctl enable alloy
sudo dnf install -y whpg-enterprise-manager
export PATH=/usr/local/greenplum-db/wem:$PATH
tee -a /etc/wem/wem.conf << EOF
PORT=8082
WEM_COOKIE_SECRET=
WEM_INSECURE_COOKIES=1
WHPG_HOST=whpg-m
WHPG_PORT=5432
WHPG_DATABASE=gpadmin
WHPG_USER=gpadmin
WHPG_PASSWORD=gpadmin
PROMETHEUS_URL=http://whpg-m:9090
LOKI_URL=http://whpg-s:3100
#ALERTMANAGER_URL= http://whpg-m:9093
#ANTHROPIC_API_KEY=YOUR_API_KEY_HERE
EOF
/usr/local/greenplum-db/wem/wem setup
systemctl enable wem
systemctl start wem