1. Thanos-frontend

这个组件的主要作用就是提高查询的速度,只要有用户查询过某个时间段的数据,frontend就会把数据缓存起来,其他人再来查的时候就会直接返回给客户端,而不去后端请求了。

文档中提到了三个缓存的地方,IN-Memory,Memcached和Redis。这三个都是使用内存来存储的,如果我们有合适的环境,比如redis集群之类,就使用redis来做,如果没有,就使用IN-MEMORY来做就好了,毕竟memcached和redis的各项指标度对比来说都是没有什么优势的。

1.1. 配置thanos-frontend

配置/etc/systemd/system/thanos-frontend.service

[Unit]
Description=thanos-frontend
Documentation=https://thanos.io/
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/sbin/thanos query-frontend \
          --http-address=0.0.0.0:10913 \
          --query-frontend.downstream-url=http://127.0.0.1:10903
ExecReload=/bin/kill -HUP 
TimeoutStopSec=20s
Restart=always
LimitNOFILE=20480000
[Install]
WantedBy=multi-user.target

如果我们不使用任何其他的配置,默认是使用IN-MEMORY

1.2. 配置查询地址

修改/etc/nginx/conf.d/thanos-frontend.conf

server {
        listen 10913;
        server_name  10.0.0.11;

location / {
        proxy_pass http://thanos-frontend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        }
}

upstream thanos-frontend {
        server 10.0.1.11:10913;
        server 10.0.1.12:10913;
}