提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
一、Prometheus是什么?
二、使用步骤
1.基础环境
2.两台服务器准备过程
3.安装Prometheus
4.安装Grafana
5.安装 node-exporter
6.监控实现
总结
本人作为仅仅掌握一点linux基础的新手小白,由于公司需要,学习Prometheus,写此文记录自己的学习过程的同时给其他小白避坑。
此处不过多赘述,翻译其官网介绍。
Prometheus是一个开源系统监控和警报工具包,最初构建于SoundCloud。自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清该项目的治理结构,普罗米修斯于2016年加入云原生计算基金会,成为继Kubernetes之后的第二个托管项目。
普罗米修斯收集并存储其度量作为时间序列数据,即度量信息与记录的时间戳一起存储,以及称为标签的可选键值对。
有关普罗米修斯的详细概述,请参阅媒体部分的链接资源。
两台linux服务器
监控主机 | 192.168.93.100 | centos7 |
被监控服务器 | 192.168.93.101 | centos7 |
建议使用MobaXterm连接两台服务器,然后选择多窗口一起操作
代码如下(示例):
[root@Agent ~]# systemctl start chronyd
[root@Agent ~]# systemctl enable chronyd
[root@Agent ~]# date
2023年 08月 09日 星期三 18:05:06 CST
[root@Agent ~]# systemctl stop firewalld
[root@Agent ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@Agent ~]# getenforce
Enforcing
[root@Agent ~]# vim /etc/selinux/config
[root@Agent ~]# vim /etc/fstab
[root@Agent ~]#
[root@Agent ~]# vim /etc/sysctl.d/kubernetes.conf
[root@Agent ~]# sysctl -p
[root@Agent ~]# modprobe br_netfilter
[root@Agent ~]# lsmod | grep br_netfilter
br_netfilter 22256 0
bridge 151336 1 br_netfilter
进一步由于Prometheus是由go语言开发,需要对主机进行go的环境配置(不需要掌握go语言基础)访问如下网站下载(由于Great Wall的存在需要科学上网)https://golang.org/dl/
安装包下载以后,上传至监控主机的 /usr/local 目录下
[root@Prometheus ~]# cd /usr/local
[root@Prometheus local]# ls
bin games go1.20.7.linux-amd64.tar.gz include lib64 node_exporter prometheus sbin src
etc go grafana-6.4.3-1.x86_64.rpm lib libexec node_exporter-1.5.0.linux-amd64.tar.gz prometheus-2.46.0.linux-amd64.tar.gz share
解压安装(需要注意自己的版本号,不要直接复制)
[root@Prometheus local]# tar -xvf go1.20.7.linux-amd64.tar.gz
配置环境变量
添加/usr/loacl/go/bin目录到PATH变量中。添加到/etc/profile 或$HOME/.profile都可以
[root@Prometheus local]# vim /etc/profile
// 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
// wq保存退出后source一下
[root@Prometheus local]# source /etc/profile
最后查看版本号(可查询即成功)
[root@Prometheus local]# go version
go version go1.20.7 linux/amd64
在监控主机上操作(192.168.93.100)
两种安装方式,通过wget或者从网站安装包下载地址:Download | Prometheus 下载到win本地上传到linux服务器,本文采用上传方式,上传过程需要注意文件夹目录,默认是根目录,可以通过mv指令移动文件,也可以直接选择/usr/local文件夹上传文件。若选择移动则使用如下指令:
[root@Prometheus ~]# mv prometheus-2.46.0.linux-amd64.tar.gz /usr/local
解压安装Prometheus
[root@Prometheus local]# tar -xvf prometheus-2.46.0.linux-amd64.tar.gz
建议将解压后的Prometheus移动到新创建的文件夹prometheus里,即执行:
[root@Prometheus local]# mv prometheus-2.46.0.linux-amd64/ prometheus
然后启动Prometheus,执行如下指令:
[root@Prometheus local]# cd prometheus
[root@Prometheus prometheus]# ls
console_libraries consoles data LICENSE NOTICE prometheus prometheus.yml promtool
[root@Prometheus prometheus]# ./prometheus --config.file=/usr/local/prometheus/prometheus.yml
验证是否成功运行,访问本机浏览器 http://192.168.93.100:9090打开Prometheus的监控界面,需要注意输入自己的ip地址。
如果可以访问,则通过ctrl+c终止运行,然后将Prometheus成为服务后设置开机自启动。
修改service文件
[root@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
然后执行如下命令
[root@Prometheus local]# systemctl daemon-reload
[root@Prometheus local]# systemctl enable prometheus
[root@Prometheus local]# systemctl start prometheus
[root@Prometheus local]# status prometheus
可以看到如下界面表示成功,如果失败请检查service文件中的路径与自己是否对应
Prometheus自带的监控界面较。。。难以描述,通常公司大老板都更偏爱grafana来使监控数据看起来更加花里胡哨
此处本文使用wget指令,需要注意的是如果服务器上提示没有这个指令需要执行如下指令(一般都有,不用执行)
yum -y install wget
[root@Prometheus local]# wget https://dl.grafana.com/oss/release/grafana-6.4.3-1.x86_64.rpm
[root@Prometheus local]# yum localinstall grafana-6.4.3-1.x86_64.rpm
进一步执行下列命令,也可以查看到服务的状态
[root@Prometheus local]# systemctl daemon-reload
[root@Prometheus local]# systemctl enable grafana-server.service
[root@Prometheus local]# systemctl start grafana-server.service
[root@Prometheus local]# systemctl status grafana-server.service
浏览器访问http://192.168.93.100:3000(IP:3000端口),即可打开grafana页面,默认用户名密码都是admin,初次登录会要求修改默认的登录密码,建议还是admin,点击主界面的“Add data source”
URL处填写Prometheus服务所在的IP地址,此处我们将Prometheus服务与Grafana安装在同一台机器上,直接填写localhost即可
点击下方 【Save & Test】按钮,保存设置
点击Dashboards选项卡,选择Prometheus 2.0 Stats
点击Grafana图标,切换到Grafana主页面,然后点击Home,选择我们刚才添加的Prometheus 2.0 Stats,即可看到监控数据
可以看到监控主机的画面。
到目前为止已经完成了Prometheus和Grafana的安装和配置,进一步实现监控被监控服务器的操作。
以下操作均在被监控服务器(192.168.93.101)上
由于在环境配置过程是两台服务器一起执行的操作,所以直接进行安装下载,如果未执行准备工作,看2.2再执行一次就好
点击如下地址下载https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-arm64.tar.gz
将下载的安装包上传至被监控主机(192.168.93.101)的 /usr/local 目录下
同样的执行
[root@Agent ~]# cd /usr/local
[root@Agent local]# ls
bin etc games include lib lib64 libexec node_exporter-1.5.0.linux-amd64.tar.gz sbin share src
[root@Agent local]# tar -xvf node_exporter-1.5.0.linux-amd64.tar.gz
node_exporter-1.5.0.linux-amd64/
node_exporter-1.5.0.linux-amd64/LICENSE
node_exporter-1.5.0.linux-amd64/NOTICE
node_exporter-1.5.0.linux-amd64/node_exporter
[root@Agent local]# ls
bin etc games include lib lib64 libexec node_exporter-1.5.0.linux-amd64 node_exporter-1.5.0.linux-amd64.tar.gz sbin share src
[root@Agent local]# mv node_exporter-1.5.0.linux-amd64/ node_exporter
[root@Agent local]# cd node_exporter
[root@Agent node_exporter]# ls
LICENSE node_exporter NOTICE
[root@Agent node_exporter]# ./node_exporter
服务启动,在浏览器访问 http://192.168.93.101:9100/metrics ,若出现数据则服务开启成功
Ctrl+C 结束掉node_exporter进程,创建node_exporter服务,让node_exporter以服务的方式,开机自启。
[root@Agent 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
[root@Agent node_exporter]# systemctl daemon-reload
[root@Agent node_exporter]# systemctl enable node_exporter
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /etc/systemd/system/node_exporter.service.
[root@Agent node_exporter]# systemctl start node_exporter
[root@Agent node_exporter]# systemctl status node_exporter
● node_exporter.service - node_exporter
Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2023-08-09 18:20:33 CST; 3s ago
Main PID: 8246 (node_exporter)
CGroup: /system.slice/node_exporter.service
└─8246 /usr/local/node_exporter/node_exporter
至此node_exporter配置完成。
切换服务器到监控主机上(192.168.93.1000)
[root@Prometheus ~]# cd /usr/local/prometheus
[root@Prometheus ~]# vim prometheus.yml
在scrape_configs标签下,添加以下内容,配置监控
- job_name: 'Linux'
static_configs:
- targets: ['192.168.93.101:9100']
labels:
instance: Linux
[root@Prometheus prometheus]# systemctl restart prometheus
浏览器访问 http://192.168.56.200:9090/targets 查看监控信息
可以看到,已经将101服务器加入进来。
进一步,添加dashboard,Grafana官方为我们提供了很多dashboard页面,可直接下载使用。浏览器访问 Dashboards | Grafana Labs 下载所需要的dashboard页面
选择数据源为Prometheus,然后我们搜索Node Exporter for Prometheus,选择一个合适的版本,若后续失败,可以考虑更换一个。
复制dashboard Id , 然后打开我们的Grafana监控页面,打开dashboard的管理页面
点击【import】按钮
然后将我们刚才的复制的dashboard Id 复制进去
Grafana会自动识别dashboard Id 。
然后点击【change】按钮,生成一个随机的UID,然后点击下方输入框,选择我们之前创建的数据源Prometheus,最后点击【Import】按钮,即可完成导入。
然后返回首页,点击节点机器
到此,大功告成。
以上就是今天要讲的内容,本文仅仅简单介绍了Prometheus+Grafana的使用,感谢