96 lines
2.5 KiB
Bash
96 lines
2.5 KiB
Bash
|
|
mkdir -p /data/tempo/{conf,data,metrics-generator}
|
|||
|
|
mkdir -p /data/tempo/data/wal
|
|||
|
|
mkdir -p /data/tempo/metrics-generator/wal
|
|||
|
|
|
|||
|
|
chown -R tempo:tempo /data/tempo
|
|||
|
|
|
|||
|
|
chown -R tempo:tempo /data/tempo/data/traces
|
|||
|
|
|
|||
|
|
# 创建一个专用用户并配置服务,确保 Tempo 在后台稳定运行
|
|||
|
|
sudo useradd --no-create-home --shell /bin/false tempo || true
|
|||
|
|
|
|||
|
|
# 下载tar包
|
|||
|
|
wget https://github.com/grafana/tempo/releases/download/v2.9.0/tempo_2.9.0_linux_amd64.tar.gz
|
|||
|
|
# 解压
|
|||
|
|
tar -xzf tempo_2.9.0_linux_amd64.tar.gz -C /data/tempo/
|
|||
|
|
# 移动可执行文件到 /usr/local/bin/
|
|||
|
|
mv /data/tempo/tempo /data/tempo/tempo-cli /data/tempo/tempo-query /usr/local/bin/
|
|||
|
|
# 检查版本
|
|||
|
|
tempo --version
|
|||
|
|
|
|||
|
|
# 创建配置文件(本地为存储介质)
|
|||
|
|
vim local-tempo.yaml
|
|||
|
|
server:
|
|||
|
|
http_listen_port: 3200 # Tempo Web 端口(Grafana 对接用)
|
|||
|
|
grpc_listen_port: 9095 # gRPC 端口(可选)
|
|||
|
|
|
|||
|
|
distributor:
|
|||
|
|
receivers: # 接收 OTel 追踪数据的协议(核心)
|
|||
|
|
otlp:
|
|||
|
|
protocols:
|
|||
|
|
grpc: # 监听 4317 端口(和 OTel Collector 一致,接收 OTLP gRPC 数据)
|
|||
|
|
endpoint: 0.0.0.0:4317
|
|||
|
|
http: # 监听 4318 端口(接收 OTLP HTTP 数据)
|
|||
|
|
endpoint: 0.0.0.0:4318
|
|||
|
|
|
|||
|
|
ingester:
|
|||
|
|
max_block_duration: 5m # 数据块存储时长(测试环境可设小)
|
|||
|
|
trace_idle_period: 10s # 追踪会话空闲超时
|
|||
|
|
|
|||
|
|
compactor:
|
|||
|
|
compaction:
|
|||
|
|
block_retention: 30d # 追踪数据保留 30 天(可按需调整)
|
|||
|
|
|
|||
|
|
storage:
|
|||
|
|
trace:
|
|||
|
|
backend: local # 单节点本地存储(生产可换 S3/MinIO)
|
|||
|
|
local:
|
|||
|
|
path: /data/tempo/data # 追踪数据存储目录(指定到 /data/tempo/data)
|
|||
|
|
wal:
|
|||
|
|
path: /data/tempo/data/wal # 预写日志目录(保证数据不丢)
|
|||
|
|
|
|||
|
|
# 存储桶为存储对象
|
|||
|
|
vim cos-tempo.yaml
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 前台启动
|
|||
|
|
/usr/local/bin/tempo \
|
|||
|
|
-config.file=/data/tempo/conf/tempo.yaml \
|
|||
|
|
-config.expand-env=true
|
|||
|
|
|
|||
|
|
# 检查服务状态
|
|||
|
|
systemctl is-active tempo
|
|||
|
|
|
|||
|
|
# Systemd 服务守护进程
|
|||
|
|
vim /etc/systemd/system/tempo.service
|
|||
|
|
|
|||
|
|
[Unit]
|
|||
|
|
Description=Grafana Tempo
|
|||
|
|
Wants=network-online.target
|
|||
|
|
After=network-online.target
|
|||
|
|
|
|||
|
|
[Service]
|
|||
|
|
User=tempo
|
|||
|
|
Group=tempo
|
|||
|
|
Type=simple
|
|||
|
|
# config.file 指定配置文件路径,这里的配置文件注意文件名
|
|||
|
|
ExecStart=/usr/local/bin/tempo \
|
|||
|
|
-config.file=/data/tempo/conf/tempo.yaml \
|
|||
|
|
-config.expand-env=true
|
|||
|
|
|
|||
|
|
Restart=always
|
|||
|
|
LimitNOFILE=65536
|
|||
|
|
|
|||
|
|
[Install]
|
|||
|
|
WantedBy=multi-user.target
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 加载配置
|
|||
|
|
sudo systemctl daemon-reload
|
|||
|
|
# 启动并设置自启
|
|||
|
|
sudo systemctl enable --now tempo
|
|||
|
|
# 检查状态
|
|||
|
|
sudo systemctl status tempo
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
journalctl -u tempo --no-pager -n 50
|