docker搭建监控平台Prometheus+grafana

docker

docker相信大家都已经在用了,因为现在大多企业中都在用。使用它来搭建环境,相比传统方式,速度要快非常非常多,同时,服务运行起来后,对资源的消耗也少很多,而且还能方便对各种服务进行定向扩容。而它的安装也非常的简单,准备一台linux机器,如centos7,只需要执行两个命令,就可以安装成功。

注意: 下面没有特别说明,默认linux机器防火墙是关闭的;linux机器与被测服务器网络是通的。

# centos7 安装docker 
# 安装依赖 
yum install -y yum-utils device-mapper-persistent-data lvm2 

#安装docker 
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 

# 置开机启动 
systemctl enable docker

prometheus

Prometheus是一套开源的监控+预警+时间序列数据库的组合,现在越来越多的公司或组织开始采用Prometheus,现在常见的kubernetes容器管理系统,也会搭配Prometheus来进行监控。

Prometheus本身不具备收集监控数据功能,需要使用http接口来获取不同的export收集的数据,存储到时序数据库中。

使用docker方式安装Prometheus非常的简单

#创建Prometheus容器 
docker run -itd --name prometheus --restart=always -p 9090:9090 prom/prometheus 

容器创建成功后,即可通过浏览器访问 http://prometheus机器ip:9090 查看

docker搭建监控平台Prometheus+grafana_第1张图片

grafana

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据库查询后可视化的展示,并及时通知。官方提供了非常多的可视化模板,根据不同的数据源,选择不同的插件或模板即可。

使用docker安装,也是非常非常简单

 # 创建容器 
docker run -itd --name grafana \ --restart=always \ -p 3000:3000 \ -v $PWD/grafana-storage:/var/lib/grafana \ grafana/grafana 

容器创建成功后,即可通过浏览器访问 http://grafana机器ip:3000,默认账号密码都是:admin

docker搭建监控平台Prometheus+grafana_第2张图片

node_exporter

node_exporter是Prometheus的一个exporter,主要是用来收集服务器硬件资源使用情况的。所以这个往往会部署再被监控的服务器上。即:grafana、Prometheus会独立部署在一台机器上,node_exporter则被部署在被监控的服务器上,收集被监控的服务器资源数据,给Prometheus,然后再通过grafana展示出来。

node_export部署在被监控的服务器上,可以根据服务器的实际情况,选择直接安装,还是用docker安装。

  • 服务器上直接安装node_exporter
    • 首先,用浏览器访问:https://github.com/prometheus/node_exporter/releases 这里能获得node_exporter所有的发布版本,可以根据自己服务器的实际情况,选择要下载的包
    • 下载包后,上传到被监控的服务器上,解压
    • 进入解压文件夹,直接启动./node_exporter
  • 服务器上用docker安装node_exporter
# 创建容器
docker run -itd --name node-exporter \ --restart=always \ -p 9100:9100 \ -v "/proc:/host/proc:ro" \ -v "/sys:/host/sys:ro" \ -v "/:/rootfs:ro" \ prom/node-exporter 
node-exporter
部署启动好了后,在服务器的防火墙上开放9100端口,则可以通过浏览器访问 http://服务器ip:9100/metrics 查看监控收集的数据。

Mysqld_exporter

mysqld_exporter是prometheus官方提供的用于监控mysql运行状态的exporter。其相关信息可以参考:https://github.com/prometheus/mysqld_exporter。

服务器上用docker安装mysqld_exporter

#容器部署mysqld-exporter
docker run -itd --restart=always --name mysqld-exporter -p 9104:9104 -e DATA_SOURCE_NAME="username:password@(ip:port)/" prom/mysqld-exporter

部署启动好了后,在服务器的防火墙上开放9104端口,则可以通过浏览器访问 http://服务器ip:9104/metrics 查看监控收集的数据。

配置Prometheus+node_exporter/mysqld_exporter

prometheus本身没有数据收集功能,需要用node_exporter/mysqld_exporter收集,他们俩之间如何连接在一起呢?这就要修改Prometheus的配置文件,这个文件在Prometheus容器的 /etc/prometheus/prometheus.yml

# 从Prometheus容器中拷贝配置文件到宿主机

docker cp prometheus:/etc/prometheus/prometheus.yml $PWD
#修改prometheus.yml文件

vim prometheus.yml
- job_name: prometheus
     static_configs: 
        - targets: ['localhost:9090'] 
          labels: 
            instance: prometheus

注意 :yml文件的编辑,注意格式;想添加多个监控服务器时,可以在中括号中,用逗号分隔写多个

# 把修改后的Prometheus配置文件拷贝到容器中

docker cp $PWD/prometheus.yml prometheus:/etc/prometheus/prometheus.yml
#重启Prometheus容器

docker restart prometheus

配置Grafana+Prometheus

现在,万事俱备,只欠东风了,只需要配置grafana+prometheus就能看到监控结果了。

用浏览器访问 http://grafana机器ip:3000 登录用户密码:admin

登录后,在首页,选择 "Add your first data source"

docker搭建监控平台Prometheus+grafana_第3张图片

选择 Prometheus,填写相关信息 

docker搭建监控平台Prometheus+grafana_第4张图片

点击save&test,点击back按钮,回到首页

docker搭建监控平台Prometheus+grafana_第5张图片

再点击 import

docker搭建监控平台Prometheus+grafana_第6张图片

输入ID(可使用12884监控mysql可使用7362)点击load就大功告成了 docker搭建监控平台Prometheus+grafana_第7张图片

  模板可以去官网搜:Dashboards | Grafana LabsBrowse a library of official and community-built dashboards.https://grafana.com/grafana/dashboards/ 

你可能感兴趣的:(#,docker,docker,prometheus)