目录
简介
Prometheus(普罗米修斯)是一个应用十分广泛的一个性能监控平台
监控的原理主要是:
废话不说,直接开始安装。
环境准备
监控主机:
这里我选用的操作系统是openEulerLTS-sp4-aarch,系统配置为8C,16G,存储空间为300G。
被监控主机:
我这里选则和监控主机是同一台。
如果你有更多的虚拟机或者空闲主机,那么可以添加更多的被监控节点。
软件准备
Prometheus
下载prometheus的LTS版本,也就是长期支持版本,相比最新版本,更具有稳定性和可靠性。
Grafana
下载grafana,Grafana是一个跨平台的开源的数据分析和可视化工具,可以通过将采集的数据查询然后可视化的展示。
openEuer也属于红帽分支,正常来说,可以兼容centos的软件包。
node_exporter
节点数据收集程序,node_exporter
部署Prometheus+Grafana
安装prometheus
将下载好的安装包传输到准备好的操作系统中
关闭防火墙和selinux,重启生效
[root@localhost data]# systemctl disable firewalld --now
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
[root@localhost data]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g"
[root@localhost data]# reboot
配置时间服务器,如果时钟有偏差,可能导致prometheus报错。
解压,这里将解压之后的目录改名为prometheus
[root@localhost data]# tar -xf prometheus-2.53.3.linux-arm64.tar.gz
[root@localhost data]# mv prometheus-2.53.3.linux-arm64 prometheus
[root@localhost data]#
[root@localhost data]# ll
total 230204
-rw-r--r--. 1 root root 127711907 Nov 6 09:27 grafana-enterprise-11.3.0-1.aarch64.rpm
-rw-r--r--. 1 root root 9956552 Nov 6 09:30 node_exporter-1.8.2.linux-arm64.tar.gz
drwxr-xr-x. 4 1001 127 132 Nov 5 20:38 prometheus
-rw-r--r--. 1 root root 98057811 Nov 6 09:30 prometheus-2.53.3.linux-arm64.tar.gz
查看prometheus.yml配置文件,按需调整文件。
启动prometheus
在本地浏览器输入
10.253.168.104:9090
访问prometheus
看到如下界面说明prometheus部署成功。
为prometheus服务创建service并设置开机自动启动
这里的user,group可以用最小权限原则修改为普通用户,但是要注意普通用户的权限问题;
可执行文件位置和配置文件位置按实际的情况填写。
使用ss-antp | grep 9090
查找当前手工启动的prometheus服务的pid,使用kill -9 pid
杀掉进程。
使用systemctl启动prometheus服务并设置开机自启动
到这里,Prometheus服务就配置完成了。
安装grafana
进入data目录,找到提前下载好的安装包,使用yum安装即可。
配置grafana-server服务开机自启动
访问
IP:3000
确认grafnan服务是否正常。
默认用户名及密码分别是admin,admin
正常登录之后如下所示,第一次登录一般会要求修改默认密码。
接下来添加数据源。
选择prometheus
添加你的prometheus服务地址和端口
拉到最底部,保存退出
添加grafana监控模板,这里用的是8919模板
如果你的机器可以连接到外网, 那么直接输入id自动下载,如果不能连接外网,则需要访问
https://grafana.com/grafana/dashboards/网站寻找你需要的模板,如下是我使用的12633模板,下载json文件导入即可。
到这里监控系统就已经搭建完成了,只是没有数据源,没法显示具体的信息。
被监控主机中安装node_exporter
找到下载好的node_exporter压缩包,解压缩。
进入解压之后的目录,将
node_erpoter
可执行文件cp
到/usr/local/bin/
目录下
为node_erporter创建service,使用systemctl管理
修改监控主机Prometheus服务的配置文件,添加job
主要在对应该控件软件安装目录下/data/prometheus/prometheus.yml
这个文件中;
在原文件的scrape_configs模块下增加如下job配置内容:
- job_name: 'Kingstar_ARM_prometheus'
static_configs:
- targets: ['10.253.168.104:9100']
job就是你监控的主机组,你要添加更多的节点,写入到targets后面即可,会自动归属到对应的job
修改后/data/prometheus/prometheus.yml
如下所示:
[root@localhost ~]# cat /data/prometheus/prometheus.yml
# my global config
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_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
# - targets: ["localhost:9090"]
- targets: ["10.253.168.104:9090"]
- job_name: 'Kingstar_ARM_prometheus'
static_configs:
- targets: ['10.253.168.104:9100']
2)检查配置是否正确:
每次修改配置文件完成,用promtool检测配置文件是否正确。如下检查配置文件正确方可执行下一步。
[root@localhost ~]# /data/prometheus/promtool check config /data/prometheus/prometheus.yml
Checking /data/prometheus/prometheus.yml
SUCCESS: /data/prometheus/prometheus.yml is valid prometheus config file syntax
[root@localhost ~]#
3)重启prometheus服务进行相关测试
systemctl restart prometheus
查看http://10.253.168.104:9090/targets
地址,你那边需要换成你对应的prometheus服务的地址
job和被监控节点正确显示就没有问题
刷新grafana,如果未采集到信息,重启下prometheus服务。
如果你看到仪表盘显示你添加的主机,那监控系统的搭建就算是完成了。
如果想要添加其他节点,将
node_expoter可执行文件
和/usr/lib/systemd/system/node_expoter.service
文件复制到其他节点,并使用systemctl
启动node_expoter
服务并设置开机自启动。