基于prometheus+grafana对相关对象进行监控

本文介绍了在CentOS7系统中,使用docker部署监控工具,包括mysql的mysqld_exporter、系统的node-exporter、容器资源监控的cadvisor、以及Nginx的数据收集和Prometheus、Grafana的配置,以实现全面的环境监控。
摘要由CSDN通过智能技术生成

简介

最近搞了一套测试环境,想把它监控起来,所以搭建了一套监控体系,本文仅做记录,有不对的地方可以友好交流。
环境:系统-》centos7,应用基本使用docker部署,管理起来相对方便。
监控体系架构如下:

![在这里插入图片描述](https://img-blog.csdnimg.cn/ac4e986a28444dc28d900283caaad5bc.png在这里插入图片描述

搭建

首先是mysql

mysqld_exporter (主要采集mysql的相关数据)

docker 安装:
docker network create my-mysql-network #创建网络
docker pull prom/mysqld-exporter #拉取镜像
docker run -d
-p 9104:9104
–network my-mysql-network
-e DATA_SOURCE_NAME=“root:5mJKwdc029OphEFrCcObQikx@(172.16.100.7:6033)/”
prom/mysqld-exporter #创建并启动容器

本地监控

node-exporter

直接使用命令:
docker run -d -p 9100:9100 -v “/proc:/host/proc” -v “/sys:/host/sys” -v “/:/rootfs” -v “/etc/localtime:/etc/localtime” --net=host prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points “^/(sys|proc|dev|host|etc)($|/)”
#本地找不到镜像会到远程库拉取,所以直接docker run了。

容器监控

cadvisor

直接使用命令:
docker run -d -v “/etc/localtime:/etc/localtime” --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=18104:8080 --detach=true --name=cadvisor --privileged=true google/cadvisor:latest

nginx数据收集

nginx-module-vts

下载nginx-module-vts
https://github.com/vozlt/nginx-module-vts/tree/master
源码重新编译:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=nginx-module-vts
make&&make install

修改nginx.conf
在html下增加:
vhost_traffic_status_zone;
vhost_traffic_status_filter_by_host on;
在server里增加:
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
保存
重启能避免很多奇奇怪怪的问题
nginx -s stop
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

配置Prometheus

//# 全局配置
global:
//# 设置间隔时间为每15秒,默认为每1分钟
scrape_interval: 15s

//# 计算采集数据时间间隔,并对变更进行更新。
evaluation_interval: 15s

//# 监控指标配置
scrape_configs:
//# 作业名称,可以有多个作业
// - job_name: ‘prometheus’

//# 设置采集周期,默认使用全局得
scrape_interval: 3s

//# 静态配置监控实例
static_configs:
// # 监控目标主机地址
- targets: [‘localhost:9090’]
labels:
idc: local
// - job_name: ‘node_exporter’
scrape_interval: 3s
static_configs:
- targets: [‘172.16.100.7:9100’]

// - job_name: ‘mysql’
scrape_interval: 3s
static_configs:
- targets: [‘172.16.100.7:9104’]
// - job_name: ‘cadvisor’
scrape_interval: 3s
static_configs:
- targets: [‘172.16.100.7:18104’]
// - job_name: ‘nginx’
metrics_path: /status/format/prometheus
static_configs:
- targets: [‘172.16.100.7:8288’]
// - job_name: ‘nginx-0.22’
scrape_interval: 3s
static_configs:
- targets: [‘172.16.100.7:9913’]

grafana

首先,直接启动命令:docker run -d --name=grafana -p 3000:3000 grafana/grafana
然后访问ip:3000
用户名/密码:grafana
在这里插入图片描述
添加data sources填入普罗米修斯地址,保存就行了。
然后页面右上角import dashboard,输入id,点击load
我使用的id: 本机:8919 容器:315 nginx:9785 mysql:14057
效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值