Prometheus+Grafana

普罗米修斯原理架构图

image

一、环境准备

1、时间同步

systemctl restart ntpd
systemctl enable ntpd

2、关闭防火墙,selinux

systemctl stop firewalld
systemctl disable firewalld
iptables -F

二、安装prometheus

1、下载安装包

从 https://prometheus.io/download/ 下载相应版本,安装到服务器上,官网提供的是二进制版,解压就能用,不需要编译
tar xf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-2.5.0.linux-amd64/ /usr/local/prometheus
直接使用默认配置文件启动
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
确认端口(9090)
lsof -i:9090

prometheus界面

通过浏览器访问 http://服务器IP:9090 就可以访问到prometheus的主界面
image
默认只监控了本机一台,点Status -> 点Targets -> 可以看到只监控了本机
image
通过 http://服务器IP:9090/metrics 可以查看到监控的数据
在web主界面可以通过关键字查询监控项
image

2、监控远程linux主机

在远程linux主机(被监控端)上安装node_exporter组件,下载地址: https://prometheus.io/download/

tar xf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter
# 里面就一个启动命令node_exporter,可以直接使用此命令启动
ls /usr/local/node_exporter/
nohup /usr/local/node_exporter/node_exporter &
# 确认端口(9100)
lsof -i:9100
通过浏览器访问 http://被监控端IP:9100/metrics 就可以查看到node_exporter在被监控端收集的监控信息
回到prometheus服务器的配置文件里添加被监控机器的配置段

vim /usr/local/prometheus/prometheus.yml
#在主配置文件最后加上下面三行
 - job_name: 'agent1'  # 取一个job名称来代表被监控的机器
   static_configs:
   - targets: ['10.1.1.14:9100']  # 这里改成被监控机器的IP,后面端口接9100

改完配置文件后,重启服务

pkill prometheus
lsof -i:9090  #确认端口没有进程占用
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
lsof -i:9090`  #确认端口被占用,说明重启成功

回到web管理界面 -> 点Status -> 点Targets -> 可以看到多了一台监控目标
image

3、监控远程mysql

在被监控端上安装mysqld_exporter组件,下载地址: https://prometheus.io/download/
tar xf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/mysqld_exporter-0.11.0.linux-amd64/ /usr/local/mysqld_exporter
ls /usr/local/mysqld_exporter/

链接进入数据库 mysql -u用户名 -p密码
mysql[none]> grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123';
(注意:授权ip为localhost,因为不是prometheus服务器来直接找mysql获取数据,而是prometheus服务器找mysql_exporter,mysql_exporter再找mysql,所以这个localhost是指的mysql_exporter的IP)
mysql[none]> flush privileges;
mysql[none]> exit

创建一个mysql配置文件,写上连接的用户名与密码(和上面的授权的用户名和密码要对应)
vim /usr/local/mysqld_exporter/.my.cnf

[client]
user=mysql_monitor
password=123

启动mysqld_exporter

nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
确认端口(9104)
lsof -i:9104

回到prometheus服务器的配置文件里添加被监控的mysql的配置段

vim /usr/local/prometheus/prometheus.yml

#在主配置文件最后再加上下面三行
- job_name: 'agent1_mysql'  # 取一个job名称来代表被监控的mysql
   static_configs:
   - targets: ['10.1.1.14:9104']  # 这里改成被监控机器的IP,后面端口接9104

改完配置文件后,重启服务

pkill prometheus
lsof -i:9090
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
lsof -i:9090

回到web管理界面 -> 点Status -> 点Targets -> 可以看到监控mysql了
image
image

二、安装grafana

下载grafana包

下载地址:https://grafana.com/grafana/download
这里选择的rpm包,下载后直接rpm -ivh安装就OK

rpm -ivh /root/Desktop/grafana-5.3.4-1.x86_64.rpm
systemctl start grafana-server
systemctl enable grafana-server

确认端口(3000)
lsof -i:3000

通过浏览器访问 http://grafana服务器IP:3000 就到了登录界面,使用默认的admin用户,admin密码就可以登陆了
image
下面我们把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得到prometheus的数据。
image
image
image
image
然后为添加好的数据源做图形显示
image
image
image
在prometheus页面查询想要监控的键值,复制到grafana的对应位置
image
image

保存
image
最后在dashboard可以查看到
image

grafana图形显示mysql监控数据

在grafana图形界面导入相关json文件
image
image
点import导入后,报prometheus数据源找不到,因为这些json文件里默认要找的就是叫Prometheus的数据源,但我们前面建立的数据源却是叫prometheus_data,那么请自行把原来的prometheus_data源改名为Prometheus即可(注意:第一个字母P是大写),然后再回去刷新,就有数据了(如下图所示)
image
过段时间再看,就会有数据了(如下图所示)
image

posted @ 2023-02-28 11:56  村尚chun叔  阅读(57)  评论(0编辑  收藏  举报