Linux集群监控部署: prometheus 普罗米修斯 + Grafana(超详细)
Posted 七月的小尾巴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux集群监控部署: prometheus 普罗米修斯 + Grafana(超详细)相关的知识,希望对你有一定的参考价值。
前言
之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具 – prometheus。
prometheus 监控原理
1、prometheus :虽然说是监控平台,但是实际上是一套数据库
2、mysql_exporter: 可以理解成程序或者软件,他是工作在我们要监控的目标服务器上,主要是用于监控mysql的数据。
3、node_exporter: 他的作用主要是收集性能测试的数据,如cpu、内存磁盘网络等信息,然后将数据保存到prometheus,相当于将数据存入到数据库中。
4、prometheus 只能用于做数据存储,不能做展示,因此我们需要用到grafana组件。
5、grafana 主要是用于数据展示,并且可以做到定时读取数据
部署前的准备
- 关闭所有Linux机器的防火墙:systemctl stop firewalld.service
- 保证所有Linux机器的时间是准确的,执行date命令检查;如果不准确,建议使用
- 如果你Linux上的时间不准确,可以使用ntp命令同步网络时间
# 首先 ntp需要安装
yum install -y ntp
# 安装成功之后,输入如下命令
ntpdate pool.ntp.org
部署Linux操作系统监控组件
-
下载监控Linux的exporter (注意选择自己的操作系统,我的操作系统是 Linux CentOS7)
链接: https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz . -
将node_exporter包上传到需要被监控的Linux服务器上任意目录下,执行解压命令
tar xvf node_exporter-0.18.1.linux-amd64.tar.gz
-
进入到解压后的文件夹中,执行启动脚本
nohup ./node_exporter & // 查看nohup日志:tail -100 nohup.out,出现如下日志,代表启动成功
部署prometheus
-
将prometheus上传到一台单独的Linux机器上,执行解压操作 tar xvf prometheus-2.15.2.linux-amd64.tar.gz
-
进入到解压后的文件夹中,修改配置文件,添加要监控的服务器信息ip
vi prometheus.yml
在scrape_configs配置项下添加Linux监控的job,其中 IP修改为上面部署 node_exporter机器的ip,端口号为9100,注意缩进
- job_name: 'node' static_configs: - targets: ['10.0.0.71:9100']
-
保存配置文件,启动prometheus
nohup ./prometheus & // 检查nohup.out日志,如果有以下信息,启动成功
在浏览器中访问部署的prometheus:http://{ip}:9090
点击菜单栏“Status-Targets”,看到页面中有如下node节点,代表prometheus和node_exporter链接成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/c3f6a93659fd4cb380243680f7509962.png
部署Grafana
- 下载安装grafana,(和prometheus同一台服务器)输入命令安装
wget https://dl.grafana.com/oss/release/grafana-8.0.6-1.x86_64.rpm
10. 安装grafana
yum localinstall -y grafana-6.5.3-1.x86_64.rpm
- 启动 grafana
systemctl start grafana-server
- 在浏览器访问:http://{ip}:3000/
- 输入用户名/密码:admin/admin登录 ,首次会让你设置密码。如果不设置的话,可以直接点击skip
- 登录之后,会显示下面的页面,点击添加数据源
-
选择prometheus
-
直接添加监控的服务器ip+端口号,我们之前配置的是默认端口9090,添加点击保存即可,其他的都可以不填。
-
导入监控模板
打开 grafana 官网,查找官网提供的 prometheus 监控模板
链接: https://grafana.com/grafana/dashboards.点击 Linux 服务器监控的中文模板,记录该模板的 id:8919
在 grafana 系统页面中,通过 id 导入该模板,即可在 grafana 中看到 10.0.0.71 机器的性能监控数据
将数据更新频率设置为 5s,展示最近 5 分钟的数据,就可以看到实时的、最近 5 分钟的各项性能指标。包含了 CPU、Load、内存、网络、磁盘、IO 耗时等指标。监控数据永久保存,可以随时查看任意时间点内的历史统计数据,非常方便。
如果使用的是grafana 6.x,需要下载他们的json文件,把table-old替换成table,再导入到grafana即可。否则可能会有点问题。
对数据库mysql监控
- 下载 MySQL 的 exporter
链接: https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz. - 上传至 MySQL 服务器上,解压包
tar xvf mysqld_exporter-0.12.1.linux-amd64.tar.gz
- 执行命令
export DATA_SOURCE_NAME='root:Test#123@(127.0.0.1:3306)/'
其中:
root 为数据库用户名
Test#123 为数据库密码
127.0.0.1 为数据库 IP
3306 为数据库端口号
-
启动 mysql exporter
进入到解压后的文件夹中,执行命令nohup ./mysqld_exporter &
监控 nohup.out 日志,输入 tail -f nohup.out ,有如下日志代表成功
-
启动成功之后,进入prometheus.yal 配置文件中,修改 prometheus 的配置文件 prometheus.yml
vi prometheus.yml
增加监控 MySQL 的 job(注意缩进格式)
- job_name: 'mysql'
static_configs:
- targets: ['10.0.0.71:9104']
targets 中的 IP 为 mysql_exporter 的 IP,端口号固定为 9104
重启 prometheus,进入 prometheus 的 UI 界面,在 status-targets 页面下,可以看
到 MySQL exporter 的状态
- 在 Grafana 中添加 MySQL 的监控模板
- 在 grafana 官网模板中找到 MySQL 监控模板 Mysql Overview,id 为 7362,并导入到 Grafana 中(具体操作步骤参考上面导入 Linux 监控模板操作)
这样在 grafana 中,就可以轻松监控 MySQL 的连接数、内存、表锁、慢查询、网络、查询缓存等监控数据
以上是关于Linux集群监控部署: prometheus 普罗米修斯 + Grafana(超详细)的主要内容,如果未能解决你的问题,请参考以下文章