Deploying Tempo on Linux

Download and Install the Package

Go to [official website](https://github.com/grafana/tempo/releases/) to download the latest version of the installation package. Here we take tempo_2.9.0_linux_amd64.tar.gz as an example.

1wget https://github.com/grafana/tempo/releases/download/v2.9.0/tempo_2.9.0_linux_amd64.tar.gz
2tar -zxvf tempo_2.9.0_linux_amd64.tar.gz

Extract and Install

1tar -zxvf tempo_2.9.0_linux_amd64.tar.gz
2mv tempo_2.9.0_linux_amd64 /opt/tempo

Modify Configuration

Create and modify the /opt/tempo/tempo.yaml file.

1server:
2  http_listen_port: 3200 # Tempo's own HTTP interface, can be used for health checks or cluster management
3  grpc_listen_port: 3201 # Internal gRPC module communication, e.g., frontend ↔ distributor / ingester / compactor
4distributor:
5  receivers:
6    otlp:
7      protocols:
8        grpc:
9          endpoint: "0.0.0.0:3217" # Receives OTLP gRPC trace data
10        http:
11          endpoint: "0.0.0.0:3218" # Receives OTLP HTTP trace data
12ingester:
13  trace_idle_period: 5m
14storage:
15  trace:
16    backend: local
17    local:
18      path: /opt/tempo/data/traces
19    wal:
20      path: /opt/tempo/data/wal
21    pool:
22      max_workers: 100
23      queue_depth: 10000
24compactor:
25  compaction:
26    # block retention time
27    block_retention: 168h

Start the Service

1/opt/tempo/tempo --config.file=/opt/tempo/tempo.yaml

Verify the Service

Access http://192.168.0.1:3200/metrics, if you can see the corresponding metrics, it indicates that the installation was successful.

Configure Auto-Start on Boot

Create a systemd service file:

1# /etc/systemd/system/tempo.service
2[Unit]
3Description=Tempo Monitoring
4After=network.target
5[Service]
6ExecStart=/opt/tempo/tempo --config.file=/opt/tempo/tempo.yaml
7Restart=always
8[Install]
9WantedBy=multi-user.target

Reload the systemd configuration and enable the service:

1systemctl daemon-reload
2systemctl enable tempo
3systemctl start tempo

Now, Tempo should automatically run at system startup. You can use the following commands to check the service status:

1# Check service status
2systemctl status tempo
3# View service logs
4journalctl -u tempo -f

Leave a Comment