什么是prometheus?
prometheus是一种开源的监控软件,通过http协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。通常都是通过各种exporter输出监控信息。
流程
Prometheus Daemon负责定时去目标上抓取metrics(指标)数据,每个被抓取的目标,都需要通过各自的exporter提供数据
prometheus在本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中。
PushGateway支持Client主动推送metrics到PushGateway,而Prometheus只是定时去Gateway上抓取数据
Prometheus通过PromQL和其他API可视化地展示收集的数据,也可以通过其他方式实现可视化,例如grafana。
prometheus 也可以通过alertmanager实现报警
使用docker方式安装prometheus
-
安装采集工具node-exporter
#下载镜像 docker pull prom/node-exporter #运行 docker run -d \ -p 9100:9100 \ quay.io/prometheus/node-exporter
-
先创建配置文件(使用node-exporter采集系统数据)
global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['prometheus的地址'] - job_name: 'centos' static_configs: - targets: ['node-exporter的地址'] labels: instance: node
-
下载prometheus
docker pull prom/prometheus
-
docker安装prometheus
sudo docker run -d \ -p 9090:9090 \ -v /opt/prometheus/prometheus.yml:/opt/prometheus/prometheus.yml \ quay.io/prometheus/prometheus \ --config.file=/opt/prometheus/prometheus.yml
-
打开 你的ip:port 就可以访问到prometheus的控制台,点击 status->targets
看到数据采集已经可以使用了
集成grafana
-
下载镜像
docker pull grafana/grafana
-
运行
docker run -d --name=grafana -p 3000:3000 grafana/grafana
-
打开grafana 使用你的ip地址+3000端口打开,配置数据源
在url处输入地址,然后点击save and test ,出现成功就表示配置成功了。 -
添加dashboards,可以使用grafana提供的模版
1. 回到home页面,点击home,然后点击 Find dashboards on Grafana.com 2. 找到node-exporter dashboard,点击进去,复制id 3. 返回到home页面,点击dashboard,点击导入,粘帖刚才复制的id 4. 然后选择刚刚添加的数据源
-
查看结果