安装依赖
先下载node 因为sqlserver的exporter是node语言写的
wget https://nodejs.org/dist/v14.17.6/node-v14.17.6-linux-x64.tar.xz
tar -xvf node-v14.17.6-linux-x64.tar.xz
mv node-v14.17.6-linux-x64/usr/local/
mv /usr/local/{node-v14.17.6-linux-x64,node}
echo "export PATH=$PATH:/usr/local/node/bin" >> /etc/profile;source /etc/profile
node --version
安装sqlserver-exporter
#官方地址
https://github.com/awaragi/prometheus-mssql-exporter
#下载镜像
docker pull awaragi/prometheus-mssql-exporter
--使用宿主机IP(sqlserver 是docker方式部署的)
docker run -e SERVER=172.17.0.1 -e USERNAME=SA -e PASSWORD=密码 -e DEBUG=app -p 4000:4000 --name mssql-exporter awaragi/prometheus-mssql-exporter
--使用host网络
docker run --net=host --privileged=true -e SERVER=本地ip -e USERNAME=SA -e PASSWORD=密码 -e DEBUG=app --name mssql-exporter -d awaragi/prometheus-mssql-exporter
#访问接口
http://IP:4000/metrics
使用consul注册服务
curl -X PUT -d '{"id": "prometheus-01-sqlservr-export","name": "sqlservr-export","address": "192.168.168.156","port": 4000,"tags": ["sqlservr-export"],"meta": {"instance": "prometheus", "group": "sqlserver"}, "checks": [{"http": "http://192.168.168.156:4000/metrics", "interval": "5s"}]}' http://192.168.168.155:8500/v1/agent/service/register > /dev/null 2>&1 && echo -e "\033[92m 注册成功 \033[0m"
id: 必须唯一 ,如果本机上配置多个exporter 最好是ip+exporter
name: 在consul上可以理解为一个目录
address:本地的ip地址
prometheus.yaml 配置
- job_name: 'sql-server'
consul_sd_configs:
- server: '192.168.168.155:8500'
services: []
refresh_interval: 3s
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*sqlservr-export.* #consul上注册的tag 用来匹配
action: keep
- source_labels: [__meta_consul_service_metadata_group]
target_label: 'group'