文章目录

  • 一、部署Prometheus+grafana环境
    • 1.1、下载Prometheus+grafana镜像
    • 1.2、创建镜像
    • 1.3、浏览器访问
  • 二、监控Linux主机
    • 2.1、在被监控主机上部署node_exporter软件
    • 2.2、修改prometheus的配置文件
    • 2.3、浏览器访问
  • 三、监控Windows主机
    • 3.1、在被监控主机上部署wmi-exporter软件
    • 3.2、修改prometheus的配置文件
    • 3.3、浏览器访问
  • 四、监控MySQL实例
    • 4.1、配置被监控的MySQL实例
    • 4.2、修改prometheus的配置文件
    • 4.3、浏览器访问
  • 五、监控Oracle实例
    • 5.1、配置被监控的Oracle实例
    • 5.2、修改prometheus的配置文件
    • 5.3、浏览器访问
  • 六、测试邮件告警功能
    • 6.1、测试MySQL宕机
    • 6.2、测试Linux宕机
  • 七、总结

一、部署Prometheus+grafana环境

1.1、下载Prometheus+grafana镜像

[root@docker36 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrprometheus:1.0
1.0: Pulling from lhrbest/lhrprometheus
c1e1cb5fc6d2: Already exists
d7889870c229: Pull complete
Digest: sha256:6d2aea56026f4fdb17554b5ad0842766cb8e99a492382b6553ab330d0eb19c4b
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrprometheus:1.0
registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrprometheus:1.0
[root@docker36 ~]# docker tag registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrprometheus:1.0 lhrbest/lhrprometheus:1.0

1.2、创建镜像

[root@docker36 ~]# ip addr | grep 66inet 192.168.66.36/24 brd 192.168.66.255 scope global edge0
[root@docker36 ~]# docker run -d --name lhrprometheus01 -h lhrprometheus01 \
>   -p 2222:22 -p 23389:3389 -p 29090:9090 -p 29093:9093 -p 23000:3000 \
>   --privileged=true lhrbest/lhrprometheus:1.0 \
>   /usr/sbin/init
fed3d3ea7275ec337e305a76d5694473a2637be4c71d22e46e669a5ec3b39e57
[root@docker36 ~]# docker exec -it lhrprometheus01 bash
[root@lhrprometheus01 /]#

其中,9090是Prometheus的端口,3000是grafana的端口,3389是Linux远程桌面的端口。

在本文中,需要注意以下内容:

1、在该镜像中,已安装了prometheus 2.23版本,grafana 7.3.6版本,alertmanager 0.21版本,node_exporter 1.0.1版本,mysqld_exporter 0.12.1版本,oracledb_exporter 0.2.9版本

2、192.168.66.36是Prometheus和grafana的IP地址

3、程序和默认端口对应关系

端口 程序
9090 prometheus
3000 grafana
9093 alter_manager
9100 node_exporter
9104 mysqld_exporter
9121 redis_exporter
9161 oracledb_exporter

1.3、浏览器访问

访问普罗米修斯(Prometheus):http://192.168.66.36:29090/targets

访问Grafana:http://192.168.66.36:23000 用户名和密码都是admin

默认的Linux系统监控可以看到如下界面:

二、监控Linux主机

2.1、在被监控主机上部署node_exporter软件

需要在被监控的主机上安装node_exporter软件,下载地址:https://prometheus.io/download/

最新版本为:node_exporter-1.0.1.linux-amd64.tar.gz

或者直接将本机的/usr/local/bin/node_exporter文件拷贝到需要被监控的主机上也可以。

假设我这里需要被监控的主机为:121.36.8.186,那么在该主机上执行如下命令:

nohup /usr/local/bin/node_exporter &

检查,node_exporter默认端口为9100:

[root@ecs ~]# netstat -anp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      24995/node_exporter
tcp6       0      0 10.0.0.134:9100         210.52.224.155:58598    ESTABLISHED 24995/node_exporter
[root@ecs ~]# lsof -i:9100
COMMAND     PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
node_expo 24995 root    3u  IPv6 8125597      0t0  TCP *:jetdirect (LISTEN)
node_expo 24995 root    8u  IPv6 8203663      0t0  TCP ecs:jetdirect->210.52.224.155:58598 (ESTABLISHED)

命令行直接访问:

浏览器访问http://121.36.8.186:9100/metrics ,返回:

2.2、修改prometheus的配置文件

修改prometheus的配置文件(/usr/local/prometheus/prometheus.yml),添加第6-8行:

  - job_name: 'Linux'static_configs:- targets: ['localhost:9100']labels:instance: Linux_prometheus_localhost- targets: ['121.36.8.186:9100']labels:instance: Linux_121.36.8.186

通过命令热加载:

curl -XPOST http://localhost:9090/-/reload

2.3、浏览器访问

此时再刷新访问:http://192.168.66.36:29090/targets

发现新主机已经被监控到了。此时再去grafana页面查询:

发现已经有数据了。

三、监控Windows主机

3.1、在被监控主机上部署wmi-exporter软件

在需要被监控windows机器安装wmi-exporter,下载节点监控程序并运行,默认端口9182,下载地址:https://github.com/martinlindhe/wmi_exporter

安装完成后,默认安装了service,软件安装路径为:C:\Program Files\windows_exporter\

浏览器访问:http://192.168.66.236:9182/metrics,出现如下信息则,客户端节点正常

3.2、修改prometheus的配置文件

修改prometheus的配置文件(/usr/local/prometheus/prometheus.yml),添加第1-3行:

  - job_name: 'Windows'static_configs:- targets: ['192.168.66.236:9182']

通过命令热加载:

curl -XPOST http://localhost:9090/-/reload

3.3、浏览器访问

此时再刷新访问:http://192.168.66.36:29090/targets

发现新主机已经被监控到了。此时再去grafana页面查询:

发现已经有数据了。

四、监控MySQL实例

4.1、配置被监控的MySQL实例

监控MySQL实例需要用到mysqld_exporter软件,下载地址:https://prometheus.io/download/

监控MySQL实例可以分为2种部署方式:

1、分离部署+环境变量

这种方式是在每个mysql服务器上跑一个exporter程序,比如10.10.20.14服务器上跑自己的mysqld_exporter,而登到10.10.20.15服务器上也启动自己的mysqld_exporter,也就是分离部署,这样的话每个mysql服务器上除了mysqld进程外还会多一个mysqld_exporter的进程。部署方式(本文不使用这种方式):

export DATA_SOURCE_NAME='root:lhr@(192.168.66.35:3317)/'
nohup mysqld_exporter 1>/dev/null 2>&1 &

2、集中部署+配置文件

如果我们想要保持mysql服务器零入侵的纯净环境,这时候就可以尝试一下集中部署+配置文件的方式。集中部署,就是说我们将所有的mysqld_exporter部署在同一台服务器上,在这台服务器上对mysqld_exporter进行统一的管理。

本文,我们采用第2种方式部署。所以,直接在容器lhrprometheus01内进行配置:

mkdir -p /etc/mysqld_exporter/
cd /etc/mysqld_exporter/cat > mysql573317.cnf << "EOF"
[client]
user=root
password=lhr
host=192.168.66.35
port=3317
EOFcat > mysql803318.cnf << "EOF"
[client]
user=root
password=lhr
host=192.168.66.35
port=3318
EOFunset DATA_SOURCE_NAME
nohup mysqld_exporter --web.listen-address=localhost:9104 --config.my-cnf=/etc/mysqld_exporter/mysql573317.cnf 1>/dev/null 2>&1 &
nohup mysqld_exporter --web.listen-address=localhost:9105 --config.my-cnf=/etc/mysqld_exporter/mysql803318.cnf 1>/dev/null 2>&1 &-- 校验是否配置成功
curl http://localhost:9104/metrics
curl http://localhost:9105/metrics

4.2、修改prometheus的配置文件

修改prometheus的配置文件(/usr/local/prometheus/prometheus.yml),添加第1-8行:

  - job_name: 'MySQL'static_configs:- targets: ['localhost:9104']labels:instance: MySQL_192.168.66.35:3317- targets: ['localhost:9105']labels:instance: MySQL_192.168.66.35:3318

通过命令热加载:

curl -XPOST http://localhost:9090/-/reload

4.3、浏览器访问

此时再刷新访问:http://192.168.66.36:29090/targets

发现MySQL实例已经被监控到了。此时再去grafana页面查询:

发现已经有数据了。

五、监控Oracle实例

5.1、配置被监控的Oracle实例

监控Oracle数据库,需要安装oracle exporter,下载地址:https://github.com/iamseth/oracledb_exporter/releases

监控Oracle和MySQL一样,可以对原Oracle服务器零入侵,只需在Prometheus服务器上做配置即可,执行如下命令即可:

export DATA_SOURCE_NAME='lhr/lhr@192.168.66.35:1523/LHR11G'
nohup oracledb_exporter -default.metrics /usr/local/oracledb_exporter/default-metrics.toml -web.listen-address 0.0.0.0:9161 &

注意:由于9161端口没有对外暴露,所以,需要进入Linux的远程桌面访问,打开mstsc

192.168.66.36是Prometheus所在的服务器,进入远程桌面,用户名为root,密码为lhr,打开firefox浏览器即可访问。浏览器访问:http://localhost:9161/metrics,若出现如下信息,则说明客户端节点正常。

5.2、修改prometheus的配置文件

修改prometheus的配置文件(/usr/local/prometheus/prometheus.yml),添加第1-5行:

  - job_name: 'Oracle'static_configs:- targets: ['localhost:9161']labels:instance: Oracle_192.168.66.35:1523

通过命令热加载:

curl -XPOST http://localhost:9090/-/reload

5.3、浏览器访问

此时再刷新访问:http://192.168.66.36:29090/targets

发现新主机已经被监控到了。此时再去grafana页面查询:

发现已经有数据了。

六、测试邮件告警功能

本镜像环境已经配置了MySQL和Linux服务器的邮件告警功能,可以登录http://192.168.66.36:29090/alerts查看,相关的规则详情可以参考:http://192.168.66.36:29090/rules

告警的默认收件人是lhrbest@qq.com,若想修改收件人地址,那么可以修改文件/usr/local/alertmanager/alertmanager.yml,将其中的lhrbest@qq.com修改成自己的邮箱即可。在修改完成后,记得重启alertmanager软件,启动命令如下:

pkill alertmanager
nohup alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml &

6.1、测试MySQL宕机

关闭MySQL服务器:

C:\Users\lhrxxt>mysql -uroot -plhr -h192.168.66.35 -P3317
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1003
Server version: 5.7.30-log MySQL Community Server (GPL)Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL [(none)]> shutdown ;
Query OK, 0 rows affected (0.05 sec)

收到邮件:

6.2、测试Linux宕机

首先关闭相关主机,等待收邮件:

七、总结

如何?一番感受下来,是不是很爽!!!

当然,Prometheus还可以监控其它很多内容,例如SQL Server、PG、Redis、MongoDB、K8s、ES等,这里不再演示,若想学习更多内容请联系麦老师。

About Me


● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除
● 本文在个人微 信公众号(DB宝)上有同步更新
● QQ群号: 230161599 、618766405,微信群私聊
● 个人QQ号(646634621),微 信号(db_bao),注明添加缘由
● 于 2021年2月 在西安完成
● 最新修改时间:2021年2月
● 版权所有,欢迎分享本文,转载请保留出处


●小麦苗的微店: https://weidian.com/?userid=793741433
●小麦苗出版的数据库类丛书: http://blog.itpub.net/26736162/viewspace-2142121/
●小麦苗OCP、OCM、高可用、DBA学习班(Oracle、MySQL、NoSQL): http://blog.itpub.net/26736162/viewspace-2148098/
●数据库笔试面试题库及解答: https://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w


使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(DB宝)及QQ群(DBA宝典)、添加小麦苗微信, 学习最实用的数据库技术。


【DB宝36】使用Docker分分钟搭建漂亮的prometheus+grafana监控相关推荐

  1. Grafana监控系统之Prometheus+Grafana监控系统搭建

    Grafana监控系统之Prometheus+Grafana监控系统搭建 本文章内容较长,可通过右上角点击目录快速定位想看的内容 => => 一. 概述 1.1 Grafana介绍 Gra ...

  2. 【DB宝39】使用Docker分分钟搭建Zabbix 5.0配置MySQL监控

    文章目录 一.部署Zabbix 5.0环境 1.1.下载Zabbix 5.0镜像 1.2.创建镜像 1.3.浏览器访问 二.监控Linux主机 三.监控MySQL实例 四.总结 一.部署Zabbix ...

  3. 万字好文!Docker环境部署Prometheus+Grafana监控系统

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 It doesn't matter how slow you ar ...

  4. 基于docker 搭建Prometheus+Grafana监控

    一.prometheus介绍 1.什么是prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB). Prometheus使用Go语言开发,是 ...

  5. 自己动手在阿里云服务器上搭建一套zabbix+grafana监控系统

    安装zabbix监控系统 下载zabbix源 #rpm采用升级安装 rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-r ...

  6. 搭建prometheus+grafana监控系统

    prometheus简介 Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 .自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发 ...

  7. 【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复

    文章目录 一. CouchBase概述 1.1.简述 1.2.CouchDB和CouchBase比对 1.2.1.CouchDB和CouchBase的相同之处 1.2.2.CouchDB和CouchB ...

  8. 【DB宝14】在Docker中只需2步即可拥有Oracle 11g企业版环境(11.2.0.4)

    文章目录 一.从Docker Hub或阿里云镜像下载小麦苗上传的镜像文件 二.创建容器并启动数据库 三.尽情使用吧 3.1 数据库使用 3.2 创建数据库(可选) 3.3 EMDC的使用 3.4 使用 ...

  9. 【DB宝3】在Docker中使用rpm包的方式安装Oracle 19c

    [DB宝3]在Docker中使用rpm包的方式安装Oracle 19c 文章目录 [DB宝3]在Docker中使用rpm包的方式安装Oracle 19c 一.安装Docker软件 二.创建CentOS ...

  10. 【DB宝48】JumpServer:多云环境下更好用的堡垒机

    文章目录 一.JumpServer简介 1.1.页面展示 1.2.特色优势 1.3.功能列表 1.4.架构图 1.5.端口说明 1.6.产品组件 二.安装JumpServer 2.1.一键自动部署 2 ...

最新文章

  1. Django博客系统(写博客页面展示分类)
  2. 二叉树-对称的二叉树(递归法)
  3. 实验六 html网页设计,网页设计.html · 谢泽华/面向对象与软件工程实验二:网页模仿 - Gitee.com...
  4. 小木木的Python学习笔记
  5. 企业系统门户需要哪些模块_灵活用工平台SAAS系统有哪些功能模块
  6. 关于Linq to DataSet
  7. C++学习系列笔记(五)
  8. 导航视图栏左右键自定义
  9. android sepolicy报错解决
  10. 从写组件说Xml——实现(五)
  11. 吃一口肥肉之小程序牛刀小试(一)
  12. MCE公司:新型STAT3抑制剂
  13. 推荐一个在上海买中老年服饰的地方
  14. 中国“红客联盟”网上记者会发布重大澄清声明
  15. Eclipse查找文件——Eclipse笔记
  16. Java语言程序设计(郎波) 笔记(一)
  17. sublime text4在linux(ubuntu)下的安装及配置;sublime text4在linux(ubuntu)安装后输入lisence没反应;.desktop文件干嘛的
  18. QQ2009性能优化测试版 会员补丁
  19. Python源码学习(二)
  20. PrintShare 安卓 打印API

热门文章

  1. 逻辑学在计算机科学的应用,逻辑学在计算机科学中的应用
  2. 银河麒麟V10安装ASP.NET Core教程
  3. SCCM推送升级Win10
  4. CTS测试中testCameraOrientationAlignedWithDevice项
  5. 根据ip地址获取时区
  6. 服务器声卡硬件安装,虚拟声卡,详细教您怎么安装虚拟声卡
  7. Erlang_ets冷门函数fun2ms
  8. Java课程设计答辩之感想
  9. 04-VUE 常用指令最佳实践
  10. 论实力和智慧,美的微晶冰箱有点东西!