先在本机 /etc/docker/prometheus/ 下创建一个配置文件 vim prometheus.yml
global: scrape_interval: 15s external_labels: monitor: 'first-monitor' scrape_configs: - job_name: prometheus scrape_interval: 5s static_configs: - targets: ['127.0.0.1:9090']官方有一个模板:documentation/examples/prometheus.yml
配置参数可以参考这里: configuration,选择你安装版本所对应的配置信息。
执行下面docker命令:
提示:请提前安装好docker。docker run --name=prometheus -d -p 9090:9090 -v /etc/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
上面的命令看起来有点不容易理解,重新排列格式后:
docker run --name=prometheus -d -p 9090:9090 \
-v /etc/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
说明:
-p 9090:9090,用这个接口可以查看promethdus的web界面
-v /etc/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
,将服务器本地的prometheus配置文件挂载到docker目录 /etc/prometheus/ 下,这个就是prometheus在容器中默认加载配置文件位置。 -v 参数就是将本地的配置文件挂载到docker里面。
用上面的命令安装完后,会出来一个很长的id信息:
# docker run --name=prometheus -d -p 9090:9090 -v /etc/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
cddca15bad0eea0c249cb4a5dfe1a148d7779a00b0dd514c654c5cddce4e951d
可以用 docker inspect + id 前面部分信息 这样的命令来查看容器运行时默认配置参数有哪些,这个信息内容很长,截取需要的部分来看:
# docker inspect cddc
[
{
"Id": "cddca15bad0eea0c249cb4a5dfe1a148d7779a00b0dd514c654c5cddce4e951d",
"Created": "2020-07-04T10:10:33.792265269Z",
"Path": "/bin/prometheus",
"Args": [
"--config.file=http://www.likecs.com/etc/prometheus/prometheus.yml",
"--storage.tsdb.path=http://www.likecs.com/prometheus",
"--web.console.libraries=http://www.likecs.com/usr/share/prometheus/console_libraries",
"--web.console.templates=http://www.likecs.com/usr/share/prometheus/consoles"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 18313,
"ExitCode": 0,
"Error": "",
"StartedAt": "2020-07-04T10:10:34.13215448Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:9f345bfa8fefdd9580d5bd951a99e105af38d6047878c4bfb7c5c0250f77998e",
"ResolvConfPath": "/var/lib/docker/containers/cddca15bad0eea0c249cb4a5dfe1a148d7779a00b0dd514c654c5cddce4e951d/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/cddca15bad0eea0c249cb4a5dfe1a148d7779a00b0dd514c654c5cddce4e951d/hostname",
"HostsPath": "/var/lib/docker/containers/cddca15bad0eea0c249cb4a5dfe1a148d7779a00b0dd514c654c5cddce4e951d/hosts",
可以看到上面的Args就是默认配置文件位置
配置文件prometheus主要涉及2个配置文件
prometheus.yml , 主配置文件,四大块:global,alerting,rule_files,scrape_config
rules.yml , 告警规则配置文件
你可能会问,上面没有看到rules.yml这个文件?是的上面没有加。可以用这个命令加上:
-v /etc/docker/prometheus/rules.yml:/etc/prometheus/rules.yml
其实跟加上promethdus.yml命令是一样的。
配置参数项以及说明可以参考这里: configuration,选择你安装版本所对应的配置信息。
配置说明:
global: scrape_interval: 15s #默认采集监控数据时间间隔 external_labels: monitor: 'first-monitor' scrape_configs: #监控对象设置 - job_name: prometheus #任务名称 scrape_interval: 5s #每隔5s获取一次监控数据 static_configs: #监控对象地址 - targets: ['127.0.0.1:9090'] - job_name: server-redis # 还可以加其他监控对象 static_configs: - targets: ['192.168.10.20:9100'] labels: # 标签 instance: server-redis 查看web界面在浏览器上输入 :9090/ , 如果显示下面的web界面,说明promethdus启动成功:
前面已经讲过,如果要监控服务器或者应用程序的各种信息,比如cpu、内存、网卡流量等等。就要在监控目标上安装指标收集程序,并暴露HTTP接口供Prometheus拉取数据,这个指标收集程序就是Exporter。不同的指标需要不同的Exporter收集。