偶尔在看博客的时候看到Prometheus和Grafana的介绍,但是当再次找了几遍博客文章准备实验一次的时候,就遇到了安装后不显示数据可视化的情况。经过排查,是因为之前的博客写的也有一年之间的时间了,Grafana版本更新换代,所以决定自己写一遍。
感觉非常好奇,就去官网把功能介绍等等看了一遍。
Prometheus(也叫普罗米修斯)官网:https://prometheus.io/docs/introduction/overview/
Grafana官网:https://grafana.com/enterprise
特征
普罗米修斯的主要特点是:
- 具有由度量名称和键/值对标识的时间序列数据的多维数据模型
- 一个灵活的查询语言 来利用这一维度
- 不依赖分布式存储; 单个服务器节点是自治的
- 时间序列集合通过HTTP上的拉模型发生
- 推送时间序列通过中间网关支持
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
组件
Prometheus生态系统由多个组件组成,其中许多组件是可选的:
- 主要的Prometheus服务器,用于存储时间序列数据
- 用于检测应用程序代码的客户端库
- 用于支持短期工作的推送网关
- HAProxy,StatsD,Graphite等服务的特殊用途出口商
- 一个alertmanager处理警报
- 各种支持工具
大多数Prometheus组件都是用Go编写的,因此很容易构建和部署为静态二进制文件。
看了之后感觉Prometheus监控会可视化不强烈,但是结合Grafana后,可视化十足。
个人之前是使用Zabbix的,也不需要更换。因为Zabbix也可以结合Grafana达到可视化的目的。(这次先不了解)
个人测试过,服务器使用Centos6.5 Centos7.2 数据库使用MySQL5.6.21 MySQL5.7.11 都可以安装成功
以下就是简单的安装方法。(为什么叫简单....因为只是达到一个监控。并没有设置其他警报,优化的)
首先下载最新版本的Prometheus(官网可以下载)
wget https://github.com/prometheus/prometheus/releases/download/v2.3.2/prometheus-2.3.2.linux-amd64.tar.gz
创建文件夹放置prometheus
mkdir /prometheus
解压到prometheus文件夹
tar xf prometheus-2.3.2.linux-amd64.tar.gz -C /prometheus/ --strip-components=1
修改配置文件prometheus.yml
vim /prometheus/prometheus.yml
加载配置文件
cd /prometheus/
nohup ./prometheus --config.file=prometheus.yml &
如果报错
就检查是否配置文件写错了
检查是否生效
(因我使用的是云服务器,云服务器有个安全组需要开放9090端口,使用的时候注意下)
浏览器访问: 部署prometheus服务器的 IP:9090 (即可访问)
注意,因为Prometheus没有身份验证功能,任何人都能登上去,可以使用反向代理设置,或者使用些策略允许某个访问
部署在MySQL服务上(如果是和Prometheus同一台机器也可以都部署一起)
下载node_exporter-0.14.0.linux-amd64.tar
百度云链接:https://pan.baidu.com/s/1uPl4qflOP9iWM2k57Mg4yg 密码:cmjl
下载mysqld_exporter-0.10.0.linux-amd64.tar
百度云连接:链接:https://pan.baidu.com/s/1xxv9dGfqd1US9ivB80A-Ew 密码:txsp
创建存放的文件夹
mkdir /prometheus_exporter
解压到/prometheus_exporter
tar xf mysqld_exporter-0.10.0.linux-amd64.tar.gz -C /prometheus_exporter/
tar xf node_exporter-0.14.0.linux-amd64.tar.gz -C /prometheus_exporter/
加载node_exporter
cd /prometheus_exporter/node_exporter-0.14.0.linux-amd64/
nohup ./node_exporter &
加载mysqld_exporter 添加配置文件(需要MySQL授权用户)
mysqld_exporter需要连接到MySQL,需要授权
mysql> grant replication client, process on *.* to prometheus@"localhost" identified by "lanzhifei";
mysql> grant select on performance_schema.* to prometheus@"localhost";
cd /prometheus_exporter/mysqld_exporter-0.10.0.linux-amd64/
vim .my.cnf
nohup ./mysqld_exporter --config.my-cnf=.my.cnf &
注意看 vim nohup.out 是否出现权限被拒绝,如出现都是授权问题,修改配置需要重启加载一遍
检查是否变成UP (访问部署prometheus的服务器 IP:9090)
以上prometheus算是完成监控方面。
部署Grafana (和Prometheus安装一起)
下载grafana-5.2.2-1.x86_64 (也可以去官网下载)
百度云链接:https://pan.baidu.com/s/1btkM-4lEWR1-gOEMN0mXYQ 密码:sfy0
yum -y install grafana-5.2.2-1.x86_64.
使用yum安装的grafana,配置文件在/etc/grafana/grafana.ini (由于这次只安装监控,配置文件就不多改了)
把grafana默认端口 3000更改一下就好,打开配置文件
vim /etc/grafana/grafana.ini
完成就可以启动服务
service grafana-server start
访问 部署grafana服务的 IP:端口 即可访问
初始账号和密码都为admin,登陆会更改一次新密码
模板下载地址
百度云链接:https://pan.baidu.com/s/1iAB1K6og2GB8mGjoVW3XEw 密码:bqwc
导入这个MySQL_Overview.json
完成