0


基于Docker部署Prometheus

环境:阿里云CentOS7.9

docker部署

1、确定是CentOS7及以上版本
  1. cat /etc/redhat-release
2、如有旧版本,需要先卸载旧版本
  1. yum remove docker
3、yum安装gcc相关以及需要的软件包
  1. yum -y install gcc gcc-c++ yum-utils
4、配置国内docker-ce的yum源(采用的是阿里云)
  1. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、配置完yum源后可以切换到/etc/yum.repos.d/目录下,查看下是否存在docker-ce.repo,存在的话说明配置成功

6、更新yum软件包索引
  1. yum makecache fast
7、安装docker
  1. yum -y install docker-ce docker-ce-cli containerd.io
8、启动docker
  1. systemctl start docker
  2. systemctl status docker
9、查看docker版本
  1. docker --version
  2. Docker version 26.1.4, build 5650f9b
10、配置镜像加速器
  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": ["https://cz1numin.mirror.aliyuncs.com"]
  5. }
  6. EOF
  7. sudo systemctl daemon-reload
  8. sudo systemctl restart docker
11、docker info命令查看一下是否新增了阿里云的地址,确保配置成功

Prometheus部署

1、下载镜像包
  1. docker pull prom/node-exporter
  2. docker pull prom/mysqld-exporter
  3. docker pull oliver006/redis_exporter
  4. docker pull prom/prometheus
  5. docker pull grafana/grafana
  • prom/node-exporter:用于收集主机系统信息和指标的
  • prom/mysqld-exporter:用于收集数据库系统信息和指标的
  • oliver006/redis_exporter :用于收集redis信息和指标的
  • grafana/grafana:是一个用于可视化和分析监控指标的开源平台。
  • prom/prometheus:是一个开源的监控系统,用于收集和存储时间序列数据,并提供基于数据的查询、报警和可视化功能。
2、启动容器
2.1启动**
  1. node-exporter

**

  1. docker run -d --name node-exporter \
  2. --restart=always -p 9100:9100 \
  3. -v /proc:/host/proc:ro \
  4. -v /sys:/host/sys:ro \
  5. -v /:/rootfs:ro prom/node-exporter

访问地址:http://47.119.27.111:9100/metrics

2.2启动 **
  1. mysqld-exporter

**

  1. docker run -d --name mysqld_exporter \
  2. --restart=always -p 9104:9104 \
  3. -e DATA_SOURCE_NAME="root:Password123@(192.168.0.230:3306)/" \
  4. prom/mysqld-exporter

访问地址:http://47.119.27.111:9104/metrics

2.3启动 **
  1. redis_exporter

**

  1. #不带密码
  2. docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr redis://192.168.0.230:6379
  3. # 绑定集群中一个redis实例就可以了
  4. # 带密码
  5. docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr redis://192.168.0.230:6379 --redis.password '123123'

访问地址:http://47.119.27.111:9121/metrics

2.4查看容器IP

查看当前运行的网络列表

  1. docker network ls
  2. NETWORK ID NAME DRIVER SCOPE
  3. 16dab27fe490 bridge bridge local
  4. 05a7e6db54e6 host host local
  5. f2da59c2d4f9 none null local

查看指定网络中的容器和其IP地址

  1. docker network inspect <网络ID或网络名称>
  2. "0f8f21d3d4cb8a892e3915430a56569c5182346d79a7dd6434718b7dfa59ab0a": {
  3. "Name": "redis_exporter",
  4. "EndpointID": "597b8133bfc51af671889a8786000fc27b4c53a74edda683b2be4272ceac0310",
  5. "MacAddress": "02:42:ac:11:00:04",
  6. "IPv4Address": "172.17.0.4/16",
  7. "IPv6Address": ""
  8. },
  9. "940f4c0ca99bc9af06dd17f405bb5fb5f52bcd147149270f07ebe5af72128d9f": {
  10. "Name": "node-exporter",
  11. "EndpointID": "111ecdc84bd9682018f09d8e5010802dcb5c6d4052c126b931abbc0e539dff90",
  12. "MacAddress": "02:42:ac:11:00:02",
  13. "IPv4Address": "172.17.0.2/16",
  14. "IPv6Address": ""
  15. },
  16. "cdc09d537f36572104e001d071cbc4642b0b9a528019f37149de3727f96827e1": {
  17. "Name": "mysqld_exporter",
  18. "EndpointID": "63029028def1861190829aec2a4d2f75048bd8e3acfe0fee0c628c169562e998",
  19. "MacAddress": "02:42:ac:11:00:03",
  20. "IPv4Address": "172.17.0.3/16",
  21. "IPv6Address": ""
  22. }
2.5启动Prometheus

新建目录prometheus,编辑配置文件prometheus.yml

  1. mkdir /opt/prometheus
  2. cd /opt/prometheus/
  3. vim prometheus.yml
  1. global:
  2. scrape_interval: 60s
  3. evaluation_interval: 60s
  4. scrape_configs:
  5. - job_name: prometheus
  6. static_configs:
  7. - targets: ['localhost:9090']
  8. labels:
  9. instance: prometheus
  10. - job_name: node
  11. static_configs:
  12. - targets: ['172.17.0.2:9100']
  13. labels:
  14. instance: node-exporter
  15. - job_name: redis
  16. static_configs:
  17. - targets: ['172.17.0.4:9121']
  18. labels:
  19. instance: redis_exporter
  20. - job_name: mysqld
  21. static_configs:
  22. - targets: ['172.17.0.3:9104']
  23. labels:
  24. instance: mysql-exporter

启动(注意:宿主机的路径必须是绝对路径:

  1. /opt/prometheus/prometheus.yml

,否则会报错)

  1. docker run -d --name prometheus --restart=always -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

访问地址:http://47.119.27.111:9090/graph

访问targets地址:http://47.119.27.111:9090/targets

2.6启动grafana

新建空文件夹grafana-storage,用来存储数据

  1. mkdir /opt/grafana-storage

添加权限

  1. chmod 777 -R /opt/grafana-storage

启动

  1. docker run -d --name grafana --restart=always \
  2. -p 3000:3000 --name=grafana \
  3. -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

访问地址:http://47.119.27.111:3000/login

配置Grafana

默认登录:admin/admin

设置----》Data sources----》Add data source

选择Prometheus

Name:Prometheus

URL【Prometheus的ip(docker容器私网ip)+端口】:http://172.17.0.5:9090

点击下面的Save & Test,如果出现绿色的,说明ok了

监控mysql

导入grafana监控模板,mysql监控模板id为7362,填入如下输入框内

监控主机

导入主机的监控模板,模板id为8919,以相同方式导入即可

监控容器

导入容器的监控模板,模板id为179,以相同方式导入即可

监控redis

导入容器的监控模板,模板id为 763,以相同方式导入即可


本文转载自: https://blog.csdn.net/LS19990712/article/details/140430728
版权归原作者 不甘平凡※ 所有, 如有侵权,请联系我们删除。

“基于Docker部署Prometheus”的评论:

还没有评论