标签(空格分隔): Prometheus系列
一:thanos 底层 存储
1.1 thanos storage 存储
Thanos 的 Sidecar 和 Querier 组件,已经可以做到 Prometheus 的高可用,
通过 Querier 提供一个统一的入口来查询多个Prometheus的监控数据,而且还可以对监控数据自动去重,
但是还有一个非常重要的地方是还没有配置对象存储,
如果想要查看历史监控数据就不行了,这个时候我们就需要去配置 Thanos Store 组件,
将历史监控指标存储在对象存储中去。
1.2 thanos storage 支持的存储类型
要在生产环境使用最好使用 Stable 状态的,比如 S3 或者兼容 S3 的服务,比如 Ceph、Minio 等等。
对于国内用户当然最方便的还是直接使用阿里云 OSS 或者腾讯云 COS 这样的服务,
但是很多时候可能我们的服务并不是跑在公有云上面的,
所以这里我们用 Minio 来部署一个兼容 S3 协议的对象存储服务。
1.3 安装MinIO
MinIO 是一个基于 Apache License v2.0 开源协议的高性能分布式对象存储服务,为大规模私有云基础设施
而设计。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,
例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,
而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
MinIO 的官网:
https://www.minio.org.cn/overview.shtml
minio 的安装:
在flyfish11/flyfish12/flyfish14/flyfish15 上面安装minio flyfish13 nginx 做代理
使用以下命令在 macOS 上下载并运行独立的 MinIO 服务器。 将/data 替换为您希望 MinIO 存储数据的驱动器或目录的路径。
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/bin
minio -version
minio的client
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/bin/
mc -version
配置初始化目录: [全部4台机器]
mkdir /data/minio
ln -s /data/minio /minio
mkdir /minio/data -p
mkdir /minio/run -p
mkdir /minio/logs -p
mkdir /etc/minio/config -p
每个节点minio 的run.sh 启动脚本
vim /minio/run/run.sh
----
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin@minio
/usr/bin/minio server --address ":9000" --config-dir /etc/minio/config --console-address ":9001" http://172.16.10.11:9000/minio/data http://172.16.10.12:9000/minio/data http://172.16.10.13:9000/minio/data http://172.16.10.14:9000/minio/data > /minio/logs/start.txt 2>&1 &
----
chmod +x /minio/run/run.sh
sh /minio/run/run.sh &
minio 自启动文件
vim /usr/lib/systemd/system/minio.service
------
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/minio/run
ExecStart=/minio/run/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
-----
chmod +x /usr/lib/systemd/system/minio.service
systemctl daemon-reload
systemctl start minio
systemctl enable minio
同步所有4台机器
cd /usr/bin/
scp minio mc root@flyfish12:/usr/bin/
scp minio mc root@flyfish13:/usr/bin/
scp minio mc root@flyfish14:/usr/bin/
cd /usr/lib/systemd/system/
scp minio.service root@flyfish12:/usr/lib/systemd/system/
scp minio.service root@flyfish13:/usr/lib/systemd/system/
scp minio.service root@flyfish14:/usr/lib/systemd/system/
cd /minio/run/
scp run.sh root@flyfish12:/minio/run/
scp run.sh root@flyfish13:/minio/run/
scp run.sh root@flyfish14:/minio/run/
1.4 部署nginx
启用flyfish15 主机做 minio 的nginx 负载
安装Nginx依赖
yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake httpd-tools yum-utils
配置Nginx源
vim /etc/yum.repos.d/nginx.repo
----
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
----
yum install -y nginx
nginx -v
cd /etc/nginx/conf.d/
vim minio.conf
----
upstream minio {
server 172.16.10.11:9000;
server 172.16.10.12:9000;
server 172.16.10.13:9000;
server 172.16.10.14:9000;
}
upstream console {
ip_hash;
server 172.16.10.11:9001;
server 172.16.10.12:9001;
server 172.16.10.13:9001;
server 172.16.10.14:9001;
}
server {
listen 9000;
server_name localhost;
ignore_invalid_headers off;
client_max_body_size 0;
proxy_buffering off;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://minio;
}
}
server {
listen 9001;
server_name localhost;
ignore_invalid_headers off;
client_max_body_size 0;
proxy_buffering off;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://console;
}
}
----
打开页面:
http://172.16.10.15:9001/login
用户名:admin
密码: admin@minio