环境介绍
三台centos 7系统,运行内存都2G
1.prometheus监控服务器:192.168.6.1 主机名:pm
2.grafana展示服务器:192.168.6.2 主机名:gr
3.被监控服务器:192.168.6.3 主机名:ag
上面均可连接外网
1.初始化服务器
同时修改三台主机的hosts
vim /etc/hosts
在末尾添加
192.168.6.1 pr
192.168.6.2 gr
192.168.6.3 ag
根据你的ip去配置,三台都添加
时间同步,三台都要去配置,以下操作三台主机都要做
yum -y install ntp
ntpdate -u times.aliyun.com
2.安装Prometheus
官网下载安装包
https://github.com/prometheus/prometheus/releases/download/v2.51.0/prometheus-2.51.0.linux-amd64.tar.gz
下载链接
下载完再上传到服务器上
tar xf prometheus-2.50.1.linux-amd64.tar.gz
mv prometheus-2.50.1.linux-amd64 /usr/local/prometheus
使用他默认的配置文件就行
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
lsof -i:9090
访问方法:服务器ip:9090
自动就跳转到这个上面了
这个就是监控的主机
服务器ip:9090/metrics
这个就是被监控机的数据,他默认是监控自己的,所以在自己这个上面就有个这个
现在我再回到主界面
其实他现在就以及可以去收集数据进行一个简单的展示了,现在我去监控一下cpu
比如net网络
直接就有了
这样就可以了
3.Prometheus监控其他主机
在其他主机上安装node_exporter组件,再拿Prometheus收集信息机可以得到数据进行监控了
在被监控主机上安装node组件,这样普罗米修斯就可以获取到其他主机数据了
https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
下载好了放到被监控(ag)Linux系统中
他不能监控其他服务,他只能监控系统,比如网络,cpu,内存等信息
再次注意这是ag主机中的操作:
tar xf node_exporter-1.7.0.linux-amd64.tar.gz
mv node_exporter-1.7.0.linux-amd64 /usr/local/node_exporter
期待的node_exporter
nohup /usr/local/node_exporter/node_exporter &
运行成功
但是他现在和我的普罗米修斯还没有任何关系,我目前只是安装个小软件把他运行起来了,我需要去普罗米修斯的配置文件里去修改一下文件,让他来收集咱新搭建的这个node组件所产生的信息,就可以达到持续监控的效果
现在再回到pr主机也就刚刚部署Prometheus主机
vim /usr/local/prometheus/prometheus.yml
添加这三行
- job_name: "ag" # 起个名
static_configs: # 静态配置
- targets: ["192.168.6.3:9100"] # 根据组件的端口号进行添加
配置完了之后再去重启 Prometheus
pkill prometheus
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
只要有9090就行了
再去web页面
这样就成功监控了
4.Prometheus监控mysql
现在我想在ag主机上部署个mysql并监控,直接用node插件进行监控肯定是不行的,怎么办呢?我直接下载个mysql插件就可以进行监控了
https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
下载了之后直接放到要监控的主机上也就是ag主机,办法和node插件差不多,我的mysql也在ag主机上
先安装个mysql我这里使用的是mariadb
yum -y install mariadb*
systemctl start mariadb
systemctl enable mariadb
mysql
我们进来之后要创建一个账户,因为监控系统需要一个账户才能进行收集信息
grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123';
用户名为 mysql_monitor 密码为123 只可以在本地登录
flush privileges;
exit;
这样mysql内的设置就结束了,去部署组件就行了
tar xf mysqld_exporter-0.15.1.linux-amd64.tar.gz
mv mysqld_exporter-0.15.1.linux-amd64 /usr/local/mysqld_exporter
解压完之后还要去调整一下文件内容、去填写账户信息
vim /usr/local/mysqld_exporter/.my.cnf
写入内容
[clinet]
user=mysql_monitor
password=123
这个文件是手工创建的,默认是没有的
这样就可以去启动mysql监控组件了
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
只要有9104就配置成功了
和node一样,在被监控机上配置好了,还需要去Prometheus主机上设置一下监控就可以了
回到Prometheus主机上
pkill prometheus
再去编辑他的一个配置文件
vim /usr/local/prometheus/prometheus.yml
和node组件基本一样,就是换个名,换个监控位置
- job_name: "mariadb" # 起个名
static_configs: # 静态配置
- targets: ["192.168.6.3:9104"] # 根据组件的端口号进行添加
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
一定要看看有没有9090是否启动成功
再回到prometheus的web页面查看,可以看到监控成功了
5.安装grafana
下载 Grafana |格拉法纳实验室https://grafana.com/grafana/download官方下载地址
https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.0-1.x86_64.rpm
这个就是rpm的地址
下载放入Linux,如果你Linux有网的话可以直接使用
yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.0-1.x86_64.rpm
这样也是可以的,可能就是很慢,在Windows上可以用下载工具
把包放入gr服务器也就是192.168.6.2
yum -y install ./grafana-enterprise-10.4.0-1.x86_64.rpm
systemctl start grafana-server
systemctl enable grafana-server
只要3000端口启动了就行
访问地址:服务器ip:3000
账户密码都是admin
再设置新密码
这样就进来了
现在我们应该让他和Prometheus去联合一下,Prometheus和node等插件进行收集,使用grafana进行展示,所以我现在应该把Prometheus和grafana联合起来
6.在grafana添加Prometheus数据源
添加数据源
选择Prometheus
这里主要修改的就是名字和ip
下面根据自己的情况去选择,我们这里都用默认的了
直接保存就行了
在这里就可以看到数据源
这样数据源就添加成功了
7. 设置数据源的图形化仪表板
有了数据源,就可以去创建仪表盘
创建一个仪表盘
这里选择数据源
现在我来添加一个
这里是选择要监控的数据
我这里选择node插件的数据,也就是监控ag主机上的信息,选择完然后点击后面的Run queries
这里可以选择监控多个数据
我这选择的是1分钟5分钟15分钟内的负载情况,这个就是ag主机上的一个信息
此外在要监控的数据条目以外,还可以去设置简单的表达式,比如通过主机ip或者主机名称去查看或者不查看某些内容
这个意思就是查看ip为192.168.6.3:9100的主机
这个就是查看主机名为ag的主机信息
这个就是不查看主机为ag的信息
此外除了这几个还有好多条件
点击这个就可以切换仪表板
有非常多的仪表盘
下面这些就对仪表盘的参数设置,我这里没有过多的要求,就全使用默认了,实际情况要跟据自己的要求去设置
设置完了就点击apply
这个相当于一个小组,组内可以有好多个仪表盘,设置好了之后再去进行保存
保存即可
后期直接点进去就可以看到当初设置的仪表盘了
8.导入仪表盘的模板
我在前面还安装了mysql,于是我下载了个mysql的监控模板,接下来演示一下,如果导入现成的模板
vim /etc/grafana/grafana.ini
在末尾添加
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards
把github上的仪表盘下载下来
GitHub - percona/grafana-dashboards: PMM dashboards for database monitoring
下载完了再解压
同时把这个 文件整个文件放入Linux的/var/lib/grafana/中
cd /var/lib/grafana/
放文件 grafana-dashboards-main
mkdir dashboards
cp -rf grafana-dashboards-main/dashboards/MySQL/* /var/lib/grafana/dashboards
systemctl restart grafana-server.service
再去grafana的web界面
选择MySQL_Instances_Overview.json
这时模板就导入成功了