步骤
一、概述
1.1 主要特性
- 多维度数据模型
- 灵活的查询语言
- 不依赖分布式存储,单个服务器节点是自主的
- 以HTTP方式,通过pull模型拉去时间序列数据
- 也可以通过中间网关支持push模型
- 通过服务发现或者静态配置,来发现目标服务对象
- 支持多种多样的图表和界面展示
1.2 原理架构图
二、服务部署
2.1 准备工作
Prometheus服务器:192.168.253.77
安装服务:Prometheus、grafana
被监控服务器:192.168.253.66
安装服务:node_exporter、mysqld_exporter
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.2 开启Prometheus服务器
官网下载压缩包并上传
cd /opt
tar zxvf prometheus-2.29.1.linux-amd64.tar.gz -C /usr/local
#文件名较长,更改一下
mv /usr/local/prometheus-2.29.1.linux-amd64/ /usr/local/prometheus
开启服务
#文件目录下有启动文件,直接后台运行即可
cd /usr/local/prometheus/
./prometheus &
netstat -anpt | grep 9090
访问网页
浏览器打开http://192.168.253.77:9090 访问主界面
默认监控本机,点击上方 Status 再选择Targets 查看
也可以追加后缀 /metrics 查看监控的数据
http://192.168.253.77:9090/metrics
2.3 设置被监控端
安装服务
官方下载 node_exporter 组件
tar zxvf node_exporter-1.2.2.linux-amd64.tar.gz -C /usr/local/
#重命名减少字符
cd /usr/local/
mv node_exporter-1.2.2.linux-amd64/ node_exporter
开启服务
cd node_exporter/
ls
LICENSE node_exporter NOTICE
#直接运行启动命令文件就可以 加&后台运行
./node_exporter &
#检查是否开启
lsof -i:9100
浏览器访问 http://192.168.253.66:9100/metrics 被监控端的IP 可以看到被收集的监控信息
Prometheus服务器配置
#修改配置文件添加被监控端信息
vim /usr/local/prometheus/prometheus.yml
#末行添加以下行
- job_name: 'cc66_node' #自定义取一个名字表示监控的机子
static_configs:
- targets: ['192.168.253.66:9100'] #添加被监控机子的IP和端口
#重启服务
pkill prometheus
cd /usr/local/prometheus/
./prometheus &
netstat -anpt | grep 9090
返回web刷新,多了一台监控机子
2.4 被监控端添加mysql服务
安装服务
官网下载 mysqld_exporter 组件
#解压
tar zxvf mysqld_exporter-0.13.0.linux-amd64.tar.gz -C /usr/local/
#重命名
cd /usr/local/
mv mysqld_exporter-0.13.0.linux-amd64/ mysqld_exporter
cd mysqld_exporter/
ls
LICENSE mysqld_exporter NOTICE
安装mariadb数据库
#安装
yum -y install mariadb\*
systemctl start mariadb
systemctl enable mariadb
#进入数据库设置
mysql
#由于不是prometheus服务器来直接找mariadb 获取数据,而是prometheus服务器 mysql_exporter,mysql_exporter 再找mariadb。所以253.66是指的mysql_exporter的IP
MariaDB [(none)]> grant select,replication client,process ON *.* to 'mysql_monitor'@'192.168.253.66' identified by '123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
创建mariadb配置文件
vim /usr/local/mysqld_exporter/.my.cnf
#内容需要和数据库内设置的一致
[client]
user=mysql_monitor #用户名
password=123 #密码
开启服务
#这里要用nuhup开启
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
lsof -i:9104
Prometheus服务器设置
配置文件添加mysql信息
vim /usr/local/prometheus/prometheus.yml
#和前面node设置类似
- job_name: 'cc66_mariadb'
static_configs:
- targets: ['192.168.253.66:9104']
重启服务
pkill prometheus
./prometheus &
netstat -anpt | grep 9090
web页面刷新,可以看到已添加
三、设置Grafana可视化图形工具
Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警
3.1 服务安装
官网下载安装包
#上传好直接rpm安装
rpm -ivh grafana-5.3.4-1.x86_64.rpm
#开启
systemctl start grafana-server.service
systemctl enable grafana-server.service
lsof -i:3000
3.2 浏览器访问
http://192.168.253.77:3000
登录
-
使用初始账户密码登录
-
提示修改,可以不变
把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得 prometheus 的数据 -
添加数据源
-
设置信息
图形化显示刚才添加的数据源
匹配条件显示信息
3.3 Grafana 图形显示mysql监控数据
修改grafana配置文件
vim /etc/grafana/grafana.ini
#末行添加
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards
下载安装dashboard
cd /var/lib/grafana/
git clone git://github.com/percona/grafana-dashboards.git
正克隆到 'grafana-dashboards'...
remote: Enumerating objects: 15928, done.
remote: Counting objects: 100% (711/711), done.
remote: Compressing objects: 100% (476/476), done.
remote: Total 15928 (delta 394), reused 475 (delta 220), pack-reused 15217
接收对象中: 100% (15928/15928), 83.29 MiB | 17.96 MiB/s, done.
处理 delta 中: 100% (11313/11313), done.
#重启服务
systemctl restart grafana-server.service
四、Grafana+onealert 报警
onealert添加所需应用
grafana内配置
#步骤
1、在Grafana中创建Notification channel,选择类型为Webhook;
2、推荐选中Send on all alerts和Include image,Cloud Alert体验更佳;
3、将第一步中生成的Webhook URL填入Webhook settings Url;
URL格式:
http://api.aiops.com/alert/api/event/grafana/v1/72d99fa328f644218cb7ec898c001176/
4、Http Method选择POST;
5、Send Test&Save;
grafana设置