promeths+grafana监控promethes

部署时间 2020.12.14

ip部署服务系统版本
10.0.4.198promethes,node_exporter,grafana,mysqlcentos7
10.0.3.103node_exporter,postgres_exportercentos6
10.0.3.106node_exporter,postgres_exportercentos6
10.0.3.109node_exporter,postgres_exportercentos6
10.0.3.111node_exporter,postgres_exportercentos6

1.安装数据库(首先要安装数据库,存储grafana的数据)
yum install -y mysql-server(这里我安装的mysql是8版本的)
systemctl start mysqld
mysql8以上密码修改(该链接为修改mysql8密码的正确方式,十分详细,可以参考下,我下面所写的也是参考该链接做的)
在这里插入图片描述
查看mysql初始密码
mysql -uroot -p密码为初始化的密码

update user set Host='%' where User='root'; 
select host, user, authentication_string, plugin from mysql.user;(查询用户,密码以及密码认证方式,我这里是已经修改后的)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; (密码必须为大小写字母数字加特殊字符,不允许简单密码)

注:
mysql> update user set password=password(“新密码”) where user=”用户名”;
执行后报错  ERROR 1054(42S22) Unknown column ‘password’ in ‘field list’
错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
正确的为:

update mysql.user set authentication_string=password('*******') where user='*******'; 

在这里插入图片描述

flush privilegesupdate mysql.user set plugin='mysql_native_password' where user='root';(更新密码认证方式)
创建grafana的数据库,grafana启动后会自动创建相应的表。
CREATE DATABASE grafana DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2.安装grafana(我这里安装的是grafana6.0.1版本,大家最好选择7以上的版本,我安装完成后发现6有很多图形功能都不支持)

wget https://dl.grafana.com/oss/release/grafana-6.0.1.linux-amd64.tar.gz
tar zxf grafana-6.0.1.linux-amd64.tar.gz -C /data
mv /data/grafana-6.0.1/ /data/grafana
cp /data/grafana/conf/defaults.ini /data/grafana/conf/defaults.ini.bak 备份配置文件
vim /data/grafana/conf/defaults.ini

在这里插入图片描述
以上为grafana各路径位置
在这里插入图片描述

以上为grafana数据库配置

mkdir -p /data/grafana/data/log创建数据目录
/data/grafana/bin/grafana-server -homepath='/data/grafana/' & 启动grafana

在这里插入图片描述
查看服务是否启动,grafana默认端口为3000
在这里插入图片描述

前端页面登录grafana,浏览器输入10.0.4.198:3000即可(默认帐号/密码:admin/admin)
使用默认密码登录后会要求你更改密码。

2.安装promethes

wget https://github.com/prometheus/prometheus/releases/download/v2.8.0/prometheus-2.8.0.linux-amd64.tar.gz ##获取安装包
tar -zxf prometheus-2.8.0.linux-amd64.tar.gz -C /data/
mv /data/prometheus-2.8.0.linux-amd64 /data/prometheus-2.6.0
/data/prometheus-2.6.0/prometheus --web.enable-lifecycle --web.enable-admin-api &

在这里插入图片描述
promethes的默认端口为9090
在这里插入图片描述
前端页面登录查看,浏览器输入10.0.4.198:9090查看prometheus是否成功,出现上图所示界面说明成功

3.给所有机器安装node_exporter(以10.0.4.198为例,监控的机器都安装,可以采集机器的基础数据)
node_exporter简介
Exporter是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。
node-exporter用于采集服务器层面的运行指标,包括机器的loadavg、filesystem、meminfo等基础监控,类似于传统主机监控维度的zabbix-agent。
node-export由prometheus官方提供、维护,不会捆绑安装,但基本上是必备的exporter。
安装:

wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz 
tar zxf node_exporter-0.17.0.linux-amd64.tar.gz -C /data
mv /data/node_exporter-0.17.0.linux-amd64/ /data/node_exporter
/data/node_exporter/node_exporter & 启动node_exporter

在这里插入图片描述
查看node_exporter是否启动,默认端口为9100
在这里插入图片描述
浏览器输入10.0.4.198:9100界面上图所示
点击metrics即可查看采集到的机器数据

在这里插入图片描述
采集的数据如上图所示,如果看到上图所示界面,说明配置成功

4.postgres服务上的机器安装postgres_exporter(以10.0.3.103为例)

wget https://github.com/wrouesnel/postgres_exporter/archive/v0.8.0.tar.gz
tar zxf postgres_exporter_v0.8.0_linux-amd64.tar.gz -C /data/
mv /data/postgres_exporter_v0.8.0_linux-amd64/ /data/postgres_exporter
cd /data/postgres_exporter/
vim start.sh

#!/bin/bash
cd /data/postgres_exporter
export PATH=/data/postgresql/bin/:$PATH
# 下面的password替换为你自己的postgres用户的密码
export  DATA_SOURCE_NAME="user=username host=localhost password=passwd port=5432 dbname=pgscdb sslmode=disable"
nohup ./postgres_exporter --web.listen-address=":9187" >/dev/null 2>&1 &

sh start.sh

在这里插入图片描述
在这里插入图片描述
查看postgres_exporter是否启动,默认端口为9187
在这里插入图片描述
浏览器输入10.0.3.103:9187查看如上图所示
在这里插入图片描述
点击metrics即可查看到postgres_export采集的数据,出现这样的界面表示成功

5.在10.0.3.103,10.0.3.106,10.03.109,10.0.3.111,10.0.4.198上部署node_export采集机器的基础性能信息,在10.0.3.103,10.0.3.106,10.0.3.109,10.0.3.111上部署postgres_export采集postgres的信息。
6.修改promethes的配置文件并重启

cd /data/prometheus-2.6.0/
cp prometheus.yml prometheus.yml.bak
vim prometheus.yml
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.


scrape_configs:

- job_name: 'promethus'
  static_configs:
     - targets: ['10.0.4.198:9090']

- job_name: 'system'
  static_configs:
     - targets: ['10.0.4.198:9100']
     - targets: ['10.0.3.103:9100']
     - targets: ['10.0.3.106:9100']
     - targets: ['10.0.3.109:9100']
     - targets: ['10.0.3.111:9100']

- job_name: 'postgres'
  static_configs:
     - targets: ['10.0.3.103:9187']

     - targets: ['10.0.3.106:9187']
     - targets: ['10.0.3.109:9187']

在这里插入图片描述

ps -ef | grep prometheus
kill 18211
./prometheus --web.enable-lifecycle --web.enable-admin-api &
在这里插入图片描述

前端页面查看
登录10.0.4.198:9090/targets查看各节点状态
也可以通过下图status中的targets页面查看
在这里插入图片描述

7.grafana绘制图形
添加数据源
在这里插入图片描述
点击齿轮==》Data Source进入以下界面
在这里插入图片描述
点击Add data source选择数据源
在这里插入图片描述
选择Prometheus

在这里插入图片描述

设置如上图所示,然后点击左下角Save & Test保存即可
若在Data Source能看到下图界面则表示添加成功。
在这里插入图片描述

1)绘制基础性能图形
登录grafana查看
在这里插入图片描述PostgreSQL Database与Node Exporter FULL是我已经生成的两个界面
这里我们鼠标放在“+”上选择单击imprt进入以下界面
在这里插入图片描述
我们可以直接从grafana官网提供的模板配置相应的可视化界面
官网模板链接:https://grafana.com/grafana/dashboards
首先导入基础性能相对应的模板
在这里插入图片描述

Data Source(数据源)
我们选择promethes,我们的数据源是promethes
Collector(收集)
我么是通过nodeexporter收集数据的
Sort By(排序)
我喜欢按下载量排序
选择自己喜欢的一个模板

在这里插入图片描述
如上图所示,11074为该模板的id我们直接导入改id即可(该模板是我测试新建的模板,我的成品图使用的模板id为1860)
在这里插入图片描述
输入id号后点击load即可
在这里插入图片描述
load后会出现上图的界面,输入name,选择数据源后点击左下import导入即可.(到这里基础性能的绘制就已经完成了,你可以选择其它的模板绘制图形界面)
如果你用的grafana和我的版本相同会出现以下错误
在这里插入图片描述

这个时候就得提到另外一个坑了,如下所示:
在这里插入图片描述
我们使用的grafana版本还是6.0的,所以json文件中需要把table-old替换为table。
在这里插入图片描述

点击右上角齿轮修改json文件中内容
在这里插入图片描述

选择JSON Model,将其中的tables-old全部替换为table(有两处),修改完后点击save然后再次查看。
在这里插入图片描述

这时基本就可以显示了,但还是有问题,等我完成poetgres的图形绘制后再来描述问题。
2)绘制postgres的图形
导入模板
在这里插入图片描述

选择合适的模板进行导入(算则postgres相关的模板,可不要选成其他数据库的)

这里我选择9628模板,修改名称和数据来源后导入模板即可。
在这里插入图片描述
这里的start time,max wal size,seq page cost都是没有数据的;
点击Edit修改相应数据
在这里插入图片描述
max wal size
在这里插入图片描述
初始设置如上图所示
我在promethes查询到的数据没有pg_settings_max_wal_size_bytes该数据,有的数据是pg_settings_max_wal_senders
在这里插入图片描述
将其修改为
在这里插入图片描述
seq page cost修改参照同一行其它数据;
start time修改如下所示:
在这里插入图片描述

pg_postmaster_start_time_seconds不存在
修改如下图所示:
在这里插入图片描述

###填坑
关于监控的内存使用率异常的说明
如果你监控的机器版本不相同,需要在这里注意的是centos6和centos7收集的参数是不一样的,可以看下是否是因为参数原因导致的。
centos6中可用内存表示为
在这里插入图片描述
即node_memory_MemFree_bytes
centos7中可用内存表示为

node_memory_MemAvailable_bytes
centos7中也可以使用node_memory_MemFree_bytes表示可用内存
在这里插入图片描述

成品图:
node(node的模板为1860)
在这里插入图片描述
在这里插入图片描述

POSTGRES
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值