参考课程来源:https://www.bilibili.com/video/BV1T54y1Q7VY
1.prometheus
prometheus是监控系统,也是时间序列数据库
prometheus.yml配置文件,关于配置文件,也可以参考官方文档:https://prometheus.io/docs/prometheus/latest/configuration/configuration/
global: # How frequently to scrape targets by default. scrape_interval: 15s # How frequently to evaluate rules. evaluation_interval: 15s # Rule files specifies a list of globs. Rules and alerts are read from # all matching files. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A list of scrape configurations. scrape_configs: - job_name: 'prometheus' static_configs: - targets:['localhost:9090'] # Alerting specifies settings related to the Alertmanager. alerting: alertmanagers: - targets: # - alertmanager:9093
prometheus配置文件说明,参考自官方文档
创建prometheus容器,请注意prometheus.yml配置文件存放的位置
sudo docker run -d \ --name=prometheus \ --restart=always \ -p 9090:9090 \ -v /root/docker/temp/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
运行效果
打开服务器的9090端口,能看到只监控自己本身(即localhost:9090)
2.cAdvisor
cAdvisor(Container Advisor)是Google开源,用于收集一台机器上所有运行的容器信息(cAdvisor只进行查看,并不做数据的保存,所以需要将cAdvisor的数据加载到Prometheus中)
sudo docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ --restart=always \ google/cadvisor:latest
运行效果
查看服务器的8080端口
查看服务器的8080端口如果进入到服务器的http://172.17.130.131:8080/metrics地址,则可以看到监控的指标
3.node-exporter
node-expoter是prometheus开源的,能够提取到机器的信息
docker run -d -p 9100:9100 \ -v "/proc:/host/proc:ro" \ -v "/sys:/host/sys:ro" \ -v "/:/rootfs:ro" \ --net="host" \ prom/node-exporter
运行效果
查看服务器地址:http://172.17.130.131:9100/metrics,也可以查看到node-export的监控指标
注
修改配置文件prometheus.yml,增加了cAdvisor和node-expoter配置,修改如下(删除了部分注释),然后重启prometheus容器
lobal: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] labels: instance: prometheus - job_name: docker static_configs: - targets: ['172.17.130.131:8080'] labels: instance: localhost - job_name: linux static_configs: - targets: ['172.17.130.131:9100'] labels: instance: localhost
4.Grafana
grafana是跨平台的开源试题分析和可视化工具,可以通过将采集的数据查询然后做可视化的展示。
启动Grafana容器
sudo docker run -d --name=grafana --restart=always -p 3001:3000 grafana/grafana
运行效果
进入到服务器的3001端口(原本是3000端口,因为服务器在占用3000端口,所以修改成3001)
默认的用户名与密码都是admin,首次进入需要修改密码
进入后新增数据源(Data Source)
可以增加一个prometheus的数据源
在prometheus中选择数据源为服务器的9090地址
导入grafana,http://172.17.130.131:3001/dashboard/import
Docker主机监控模板:193
Linux主机监控模板:9276 8919 12227
点击Load后,可以看到看板的信息
Docker容器的看板
有道云笔记地址:https://note.youdao.com/ynoteshare1/index.html?id=d91a9f59c0d6f208fdc42014c3870c59&type=note