请参考docker 官网 https://hub.docker.com/
1)Prometheus: docker run -d --net=host -p 9090:9090 -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /data/prometheus/prometheus-data:/prometheus -v /data/prometheus/conf:/etc/prometheus/conf --name prometheus prom/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus 2)Grafana: docker run -d --net=host -p 3000:3000 -v /data/grafana/grafana.ini:/etc/grafana/grafana.ini -v /data/grafana/grafana_data:/var/lib/grafana --name grafana grafana/grafana
其中,/data/prometheus/prometheus.yml为prometheus的主要配置文件,/data/prometheus/conf为各种target的子配置文件
prometheus和grafana的镜像为官方镜像即可
version: "2"
services:
prometheus:
image: prom/prometheus
network_mode: "host"
container_name: prometheus-compose
ports:
- "9090:9090"
volumes:
- /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml #prometheus主配置文件
- /data/prometheus/prometheus-data:/prometheus #数据存储映射
- /data/prometheus/conf:/etc/prometheus/conf #prometheus子配置文件路径
command:
- '--config.file=/etc/prometheus/prometheus.yml' #加载主配置文件
- '--storage.tsdb.path=/prometheus' #启动数据持久存储
restart: always
grafana:
image: grafana/grafana
network_mode: "host"
container_name: grafana-compose
ports:
- "3000:3000"
volumes:
- /data/grafana/grafana.ini:/etc/grafana/grafana.ini #grafana配置文件
- /data/grafana/grafana_data:/var/lib/grafana #数据存储映射
restart: always
docker-compose up -d 来启动两个镜像;或者
docker-compose start/restart prometheus/grafana 来单独启动两个服务
运行成功完成以后,就可以在本地浏览器通过127.0.0.1:9090
来访问,如果需要外网域名来访问,需要对nginx或者apache进行进一步设置,以nginx为例,配置如下:
location ^~ /prometheus/ {
proxy_pass http://127.0.0.1:9090;
}
并且在prometheus的启动参数,以docker-compose为例,需要在command下额外添加一个配置:
- '--web.external-url=http://your_domain/prometheus'
修改主配置文件prometheus.yml,添加要监控的job以及target的路径
- job_name: mysql
scrape_interval: 5s
metrics_path: /metrics
file_sd_configs:
- files:
- conf/mysql/*.json
refresh_interval: 1m
- job_name: etcd
scheme: https
scrape_interval: 5s
metrics_path: /metrics
file_sd_configs:
- files:
- conf/etcd/*.json
refresh_interval: 1m
tls_config:
ca_file: conf/tls/ca.crt
cert_file: conf/tls/etcd-server.crt
key_file: conf/tls/etcd-server.key
每当需要添加新的任务的时候,在此添加一个job以及对于的metrics_path即可
修改子配置文件
[
{
"targets": ["ip:port"],
"labels": {
"env": "dev"
}
},
{
"targets": ["ip:port", "ip:port"],
"labels": {
"env": "prod"
}
}
]
4.1)prometheus官方文档 https://prometheus.io/docs/introduction/overview/
4.2)prometheus中文文档 https://yunlzheng.gitbook.io/prometheus-book/introduction
4.3)Grafana官方文档 https://grafana.com/docs/
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。