在分布式项目的运维当中,经常会遇到服务器负载过高的问题,由于没有监控,一直没发现,直到业务方反馈系统操作速度慢,才发现问题,这样显得十分被动,于是打算搭建一套用于监控系统服务器的统一监控平台。
一.实现的监控目标
二.搭建所需的安装包及配置文件
链接:https://pan.baidu.com/s/1famtf4e9J4VJXlzGDUSB6Q
提取码:q0wj
三.Prometheus服务端安装
以下操作皆在监控主机(172.10.0.1)上执行
3.1 关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
3.2 安装 go 环境
由于Prometheus是由go语言开发的,所以在安装Prometheus之前需要先在监控主机上安装go环境
安装包下载以后,上传至监控主机的 /usr/local 目录下。
3.2.1 解压安装包
tar -xvf go1.15.4.linux-amd64.tar.gz
3.2.2 配置环境变量
添加/usr/loacl/go/bin目录到PATH变量中
# vim /etc/profile
// 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
// wq保存退出后source一下
# source /etc/profile
执行go version,如果显示版本号,则Go环境安装成功。
3.3 安装Prometheus
3.3.1 安装
将下载后安装包,上传至 /usr/local 目录下
解压安装包:
# tar -xvf prometheus-2.22.1.linux-amd64.tar.gz
# mv prometheus-2.22.1.linux-amd64 prometheus
3.3.2 以服务的方式启动
创建Prometheus服务,让Prometheus以服务的方式,开机自启。
添加系统服务
# vim /etc/systemd/system/prometheus.service
将以下内容写入文件中
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--web.listen-address=:9090
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动服务,设置开机自启,并检查服务开启状态
# systemctl daemon-reload
# systemctl enable prometheus
# systemctl start prometheus
# systemctl status prometheus
3.3.3 验证
浏览器打开http://172.10.0.1:9090(IP:9090端口)即可打开普罗米修斯自带的监控页面
四.安装Grafana
4.1 安装grafana
上传grafana-7.3.1-1.x86_64.rpm和安装grafana依赖的包.zip到监控主机(172.10.0.1)/usr/local 目录下。先安装grafana依赖的包
unzip 安装grafana依赖的包.zip
cd grafana/
rpm -Uvh --force --nodeps *rpm
再安装grafana
cd ../
rpm -ivh grafana-7.3.1-1.x86_64.rpm
4.2 启动grafana
设置grafana服务开机自启,并启动服务
# systemctl daemon-reload
# systemctl enable grafana-server.service
# systemctl start grafana-server.service
# systemctl daemon-reload
# systemctl start grafana-server
# systemctl stop grafana-server
# systemctl restart grafana-server
# systemctl status grafana-server
4.3 访问grafana
启动服务,打开浏览器,输入IP+端口,3000为Grafana的默认侦听端口。系统默认用户名和密码为admin/admin,第一次登陆系统会要求修改密码。
4.4 添加Prometheus数据源
(1)URL处填写Prometheus服务所在的IP地址,此处我们将Prometheus服务与Grafana安装在同一台机器上,直接填写localhost (http://localhost:9090)即可
(2)点击Dashboards选项卡,选择Prometheus 2.0 Stats
(3)点击Grafana图标,切换到Grafana主页面,然后点击Search,选择我们刚才添加的Prometheus 2.0 Stats,即可看到监控数据
至此Prometheus服务端及Grafana配置完成。
五. 安装 node-exporter
以下操作皆在被linux监控主机(172.10.0.2)上操作。
5.1 关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
5.2 安装 node-exporter
将下载的安装包上传至被监控主机(172.10.0.2)的 /usr/local 目录下, 解压安装包
# tar -zvxf node_exporter-1.0.1.linux-amd64.tar.gz
# mv node_exporter-1.0.1.linux-amd64 node_exporter
5.3 启动node-exporter
进入解压后的node_exporter文件夹下,启动node_exporter
# cd node_exporter
# ./node_exporter
5.4 验证
在浏览器访问 http://172.10.0.2:9100/metrics ,若出现数据则服务开启成功
5.5 设置node_exporter 以服务的方式启动并设置开机自启
Ctrl+C 结束掉node_exporter进程,创建node_exporter服务,让node_exporter以服务的方式,开机自启。
添加系统服务
# vim /etc/systemd/system/node_exporter.service
将以下内容写入文件中
[Unit]
Description=node_exporter
After=network.target
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动服务,设置开机自启,并检查服务开启状态
# systemctl daemon-reload
# systemctl enable node_exporter
# systemctl start node_exporter
# systemctl status node_exporter
至此node_exporter配置完成。
六.修改Prometheus 配置,监控3台Linux机器
以下操作皆在监控主机(172.10.0.1)上进行。
6.1 修改Prometheus配置
进入Prometheus的安装文件夹,打开Prometheus配置文件
# cd /usr/local/prometheus
# vim prometheus.yml
在scrape_configs标签下,添加以下内容,配置监控
- job_name: '172.10.0.2'
static_configs:
- targets: ['172.10.0.2:9100']
labels:
instance: Linux
保存退出,重启Prometheus服务
# systemctl restart prometheus
浏览器访问 http://172.10.0.1:9090/targets 查看监控信息,可以看到监控的主机ip信息
6.2 配置Grafana
(1)打开我们的Grafana监控页面,打开dashboard的管理页面
(2)点击【import】按钮
(3)上传node-exporter-for-prometheus-dashboard-cn-v20201010_rev24.json文件
选择我们之前创建的数据源Prometheus,最后点击【Import】按钮,即可完成导入。
以此步骤,反复配置被监控节点机器即可