prometheus linux下载_Prometheus笔记
一、基础环境
系统 | IP | 安装的服务 | |
监控主机 |
CentOS7 | 192.168.56.200 |
Prometheus Alertmanager node_exporter |
被监控主机 |
CentOS7 | 192.168.56.201 | node_exporter |
被监控主机 |
Windows | 192.168.56.1 | wmi_exporter |
二、Prometheus服务端安装
以下操作皆在监控主机(192.168.56.200)上执行。
2.0 关闭机器防火墙
# systemctlstop firewalld
# systemctldisable firewalld
2.1 安装 go 环境
由于Prometheus是由go语言开发的,所以在安装Prometheus之前需要先在监控主机上安装go环境。这里采用源码编译的方式安装。
由于国内网络环境的原因,如果能够科学的上网,可从此地址下载最新版本的安装包:https://golang.org/dl/ 。
未能科学的上网的,可从此链接下载,链接:https://pan.baidu.com/s/1gefGeXmoFmjGxSGxgCuQfw 提取码:cz6l
安装包下载以后,上传至监控主机192.168.56.200的 /YourDirectory 目录下。
2.1.1解压安装包
#tar -zxvf go1.13.1.linux-amd64.tar.gz
#mv go1.13.1.linux-amd64/ go
2.1.2配置环境变量
添加/YourDirectory/go/bin目录到PATH变量中。添加到/etc/profile 或$HOME/.profile都可以。
#vim /etc/profile
//在最后一行添加
exportGOROOT=/YourDirectory/go
exportPATH=$PATH:$GOROOT/bin
//wq保存退出后source一下
#source /etc/profile
执行go version,如果显示版本号,则Go环境安装成功。
2.2 安装Prometheus
安装包下载地址:https://prometheus.io/download/#prometheus
2.2.1安装
将下载后的安装包,上传至/YourDirectory 目录下,解压安装包:
# tar -zxvf prometheus-2.17.2.linux-amd64.tar.gz
# mv prometheus-2.17.2.linux-amd64/ prometheus
2.2.2启动
Prometheus的配置文件位于 /YourDirectory/prometheus/prometheus.yml ,此处采用默认配置。
进入解压后的文件夹下,启动Prometheus。
# cd prometheus
# ./prometheus --config.file=/YourDirectory/prometheus/prometheus.yml &
2.2.3验证
浏览器打开http://192.168.56.200:9090(IP:9090端口)即可打开普罗米修斯自带的监控页面。
2.2.4以服务的方式启动
Ctrl+C结束掉Prometheus进程。创建Prometheus服务,让Prometheus以服务的方式,开机自启。
添加系统服务
# vim /etc/systemd/system/prometheus.service
将以下内容写入文件中
[Unit]
Description=PrometheusMonitoring System
Documentation=PrometheusMonitoring System
[Service]
ExecStart=/YourDirectory/prometheus/prometheus\
--config.file=/YourDirectory/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
如果执行systemctl status prometheus后,命令输出信息显示服务启动失败,如下图:
则先执行ps –ef|grep prometheus 再使用kill -9 进程号。再执行systemctl start prometheus和systemctl status Prometheus查看就显示成功启动了。
在后续步骤中,如果发现配置文件修改后未生效,也进行“ 执行ps –ef|grep prometheus 再使用kill -9 进程号,再执行systemctl start Prometheus ”的操作,配置文件未生效的原因可能是使用了./prometheus --config.file=/YourDirectory/prometheus/prometheus.yml& 命令启动的,而不是systemctl start Prometheus 命令。
三、安装Grafana
Prometheus自带的监控页面显示的内容没有那么直观,我们安装grafana来使监控数据看起来更加直观
3.1、安装grafana
此处安装采用源码编译的方式安装。在监控主机(192.168.56.200)/YourDirectory 目录下下载安装包,并安装
#wget https://dl.grafana.com/oss/release/grafana-6.4.3-1.x86_64.rpm
#yum localinstall grafana-6.4.3-1.x86_64.rpm
没有wget工具的,首先安装wget工具:
#yum -y install wget
3.2、启动grafana
设置grafana服务开机自启,并启动服务
# systemctl daemon-reload
# systemctl enable grafana-server.service
# systemctl start grafana-server.service
3.3、访问grafana
浏览器访问http://192.168.56.200:3000(IP:3000端口),即可打开grafana页面,默认用户名密码都是admin,初次登录会要求修改默认的登录密码
3.4、添加Prometheus数据源
(1)点击主界面的“Add data source”
(2)选择Prometheus
(3)填写数据源设置项
URL处填写Prometheus服务所在的IP地址,此处我们将Prometheus服务与Grafana安装在同一台机器上,直接填写localhost即可
点击下方【Save & Test】按钮,保存设置(若提示http errorbad gateway则可能是没启动Prometheus服务端,启动后就正常了)
(4)Dashboards页面选择“Prometheus 2.0 Stats”
点击Dashboards选项卡,选择Prometheus 2.0 Stats
(5)查看监控
点击Grafana图标,切换到Grafana主页面,然后点击Home,选择我们刚才添加的Prometheus 2.0 Stats,即可看到监控数据
至此Prometheus服务端及Grafana配置完成。
四、Linux系统安装node-exporter
以下操作皆在被监控主机(192.168.56.201)上操作。
4.0、关闭机器防火墙
#systemctl stop firewalld
#systemctl disable firewalld
4.1、安装node-exporter
首先下载node-exporter安装包,下载地址:https://prometheus.io/download/ 下载最新安装包。将下载的安装包上传至被监控主机(192.168.56.201)的 /YourDirectory 目录下
解压安装包
# tar -zvxf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
# mv node_exporter-1.0.0-rc.0.linux-amd64/node_exporter
4.2、启动node-exporter
进入解压后的node_exporter文件夹下,启动node_exporter
# cd node_exporter
# ./node_exporter
4.3、验证
在浏览器访问 http://192.168.56.201:9100/metrics ,若出现数据则服务开启成功
4.4、设置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=/YourDirectory/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配置,监控Linux机器
以下操作皆在监控主机(192.168.56.200)上进行。
5.1、修改Prometheus配置
进入Prometheus的安装文件夹,打开Prometheus配置文件
# cd /YourDirectory/prometheus
# vim prometheus.yml
在scrape_configs标签下,添加以下内容,配置监控
-job_name: 'Linux'
static_configs:
- targets: ['192.168.56.201:9100']
labels:
instance: Linux
以下是Prometheus.yml 文件全部内容
#my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rulesevery 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=` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'Linux'
static_configs:
- targets: ['192.168.56.201:9100']
labels:
instance: Linux
保存退出,重启Prometheus服务
# systemctl restart prometheus
浏览器访问 http://192.168.56.200:9090/targets 查看监控信息
可以看到,Linux机器已经加入进来。
5.2、配置Grafana
添加dashboard
Grafana官方为我们提供了很多dashboard页面,可直接下载使用。浏览器访问 https://grafana.com/grafana/dashboards 下载所需要的dashboard页面
选择数据源为Prometheus,然后我们选择第一个dashboard。
复制dashboard Id
然后打开我们的Grafana监控页面,打开dashboard的管理页面
点击【import】按钮
然后将我们刚才的复制的dashboard Id 复制进去
Grafana会自动识别dashboard Id 。
然后点击【change】按钮,生成一个随机的UID,然后点击下方输入框,选择我们之前创建的数据源Prometheus,最后点击【Import】按钮,即可完成导入。
导入成功后,会自动打开该Dashboard,即可看到我们刚才设置好的node监控
至此Prometheus+Grafana 安装配置,并监控Linux机器,配置完成。
六、Prometheus监控Windows机器
以下操作皆在监控主机(192.168.56.200)上进行。
6.1、安装wmi-exporter
首先在需要监控的Windows机器上安装wmi_exporter。wmi_exporter下载地址:https://prometheus.io/download/
下载后,双击即可完成安装。完成安装后,会自动创建一个开机自启的服务
验证服务是否启动,默认wmi-exporter端口为9182,浏览器访问 http://192.168.56.1:9182/metrics (Windows系统IP地址:9182端口),显示数据,则服务开启成功。
6.2、修改Prometheus配置
进入Prometheus的安装文件夹,打开Prometheus配置文件
# cd /YourDirectory/prometheus
# vim prometheus.yml
在scrape_configs标签下,添加以下内容,配置监控
-job_name: 'Windows'
static_configs:
- targets: ['192.168.56.1:9182']
labels:
instance: Windows
以下是Prometheus.yml 文件全部内容
#my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rulesevery 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=` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'Linux'
static_configs:
- targets: ['192.168.56.201:9100']
labels:
instance: Linux
- job_name: 'Windows'
static_configs:
- targets: ['192.168.56.1:9182']
labels:
instance: Windows
保存退出,重启Prometheus服务
# systemctl restart prometheus
浏览器访问 http://192.168.56.200:9090/targets 查看监控信息
可以看到,Windows机器已经加入进来。
6.3、配置Grafana
添加dashboard
Grafana官方为我们提供了很多dashboard页面,可直接下载使用。浏览器访问 https://grafana.com/grafana/dashboards 下载所需要的dashboard页面
此处我们使用Windows 监控的dashboard,dashboard Id为:10467
然后打开我们的Grafana监控页面,打开dashboard的管理页面
点击【import】按钮
然后将我们刚才的dashboard Id (10467)复制进去
Grafana会自动识别dashboard Id 。
然后点击【change】按钮,生成一个随机的UID,然后点击下方输入框,选择我们之前创建的数据源Prometheus,最后点击【Import】按钮,即可完成导入。
导入成功后,会自动打开该Dashboard,即可看到我们刚才设置好的Windows监控
至此Prometheus监控Windows机器,配置完成。
七、Prometheus+Alertmanager配置企业微信报警
7.1、设置企业微信
7.1.1、企业微信注册(已有企业微信账号请跳过)
企业微信注册地址:https://work.weixin.qq.com/
7.1.2、创建自建应用
企业微信注册完成后,登录进去,点击上方导航条中的【应用管理】按钮,切换到应用管理页面。然后选择【创建应用】,创建用于接收Alertmanager告警信息的自建应用
填写应用名称等信息,创建应用。创建应用后,记录应用的 AgentId 和 Secret 以备后用
7.2安装Alertmanager和配置告警信息
7.2.1安装Alertmanager
此处采用源码编译的方式安装。首先下载alertmanager的软件包,下载地址:https://prometheus.io/download/ ,下载完成后,将下载中软件包上传至Prometheus服务所在的机器(192.168.56.200)的 /YourDirectory 目录下。
解压alertmanager软件包:
# tar -zvxfalertmanager-0.19.0.linux-amd64.tar.gz
# mv alertmanager-0.19.0.linux-amd64/alertmanager
启动alertmanager
# ./alertmanager
可以看到alertmanager服务已经起来,服务所在的端口为9093
浏览器访问:http://192.168.56.200:9093 (IP:9093)
alertmanager成功启动。
7.2.2配置alertmanager服务开机自启
Ctrl+C 结束掉 alertmanager 服务进程,创建 alertmanager服务,让 alertmanager 以服务的方式,开机自启。
添加系统服务
# vim /etc/systemd/system/alertmanager.service
将以下内容写入文件中
[Unit]
Description=alertmanager
After=network.target
[Service]
WorkingDirectory=/YourDirectory/alertmanager
ExecStart=/YourDirectory/alertmanager/alertmanager--config.file=alertmanager.yml --log.level=debug --log.format=json
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存退出
启动服务,设置开机自启
# systemctl daemon-reload
# systemctl enable alertmanager
# systemctl start alertmanager
7.2.3配置告警信息
进入解压后的alertmanager文件夹,修改alertmanager.yml文件,配置报警信息,alertmanager.yml 内容如下:
global:
resolve_timeout: 5m
templates: ##告警消息模板
- '/YourDirectory/alertmanager/template/wechat.tmpl'
route:
group_by: ['alertname_wechat']
group_wait: 30s # 告警等待时间。告警产生后等待10s,如果有同组告警一起发出
group_interval: 60s #两组告警的间隔时间
receiver: 'wechat' # 优先使用wechat发送
repeat_interval: 5m # 重复告警的间隔时间,告警在这个间隔时间未解决,会继续发送告警信息,此处设置为5分钟进行测试
receivers:
-name: 'wechat'
wechat_configs:
- corp_id: 'wwab2673334e65f8c' #企业ID
to_party: '10' # 通知组ID
agent_id: '1000011' # 自建应用的agentId
api_secret: 'aTZTBkV1oxmjl5uQcSl0eeutrFJROoV2OKRKLGh3A8' # 自建应用的secret
send_resolved: true
7.2.4创建告警模板
进入Alertmanager安装文件夹,创建告警模板文件
# cd /YourDirectory/alertmanager
# mkdir template
# cd template/
# vim wechat.tmpl
将以下内容写入文件当中
{{define "wechat.default.message" }}
{{range .Alerts }}
=========监控报警=========
告警状态:{{ .Status }}
告警级别:{{ .Labels.severity }}
告警类型:{{ .Labels.alertname}}
告警应用:{{.Annotations.summary }}
告警主机:{{ .Labels.instance }}
告警详情:{{.Annotations.description }}
触发阀值:{{ .Annotations.value}}
告警时间:{{ .StartsAt.Format"2006-01-02 15:04:05" }}
===========END===========
{{end }} {{ end }}
检查alertmanager.yml 配置是否正确
# cd /YourDirectory/alertmanager
# ./amtool check-config alertmanager.yml
配置正确,模板文件也已经识别
重新启动alertmanager
# systemctl restart alertmanager
7.3Prometheus配置文件中增加告警配置
进入Prometheus的安装目录下修改Prometheus配置。
# cd /YourDirectory/prometheus
# vim prometheus.yml
修改Prometheus.yml文件中的 alerting 配置项及rule_files配置项
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093'] rule_files: #配置告警规则
-"rule.yml"
修改完成后保存退出
以下是Prometheus.yml 文件全部内容:
#my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rulesevery 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default(10s).
#Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets: ['192.168.56.200:9093']
# - alertmanager:9093
#Load rules once and periodically evaluate them according to the global'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
- "rule.yml"
#- "/YourDirectory/prometheus/rule.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=` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['192.168.56.201:9100']
labels:
instance: Linux
- job_name: 'Windows'
static_configs:
- targets: ['192.168.56.1:9182']
labels:
instance: Windows
- job_name: 'Linux1'
static_configs:
- targets: ['192.168.56.200:9100']
labels:
instance: Linux2
创建并编写告警规则文件rule.yml
# vim /YourDirectory/prometheus/rule.yml
将以下内容写入文件当中,(此处用于测试,设置为当内存占用高于1%时,就会告警)
groups:
-name: mem-rule
rules:
- alert: "内存报警"
expr: (node_memory_MemTotal_bytes -(node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes)) / node_memory_MemTotal_bytes * 100 > 1
for: 30s
labels:
severity: warning
annotations:
summary: "服务名:{{$labels.alertname}} 内存报警"
description: "{{ $labels.alertname}} 内存资源利用率大于 1%"
value: "{{ $value }}"
保存退出。
7.4告警检测
重启Prometheus服务,使配置的告警规则生效
# systemctl restart prometheus
进入alertmanager的安装文件夹,启动alertmanager
# systemctl restart alertmanager
稍等片刻,登录企业微信,可以看到已经接收到告警信息
浏览器访问 http://192.168.56.200:9093/#/alerts ,也能看到告警信息
至此Prometheus+alertmanage配置企业微信报警完成。
参考资料:
1.https://www.cnblogs.com/guoxiangyue/
2.https://www.jianshu.com/p/dfd6ba5206dc
prometheus linux下载_Prometheus笔记相关推荐
- Linux基本命令学习笔记--文件查看、下载、查找
1.Linux基本命令学习笔记–(文件查看) cat -整个查看 -n:行号 >(创建.覆盖) >>(追加)a.txt<<EOF:编写内容 内容 EOF (定格写:结束) ...
- 嵌入式Linux入门经典笔记
史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击 ...
- contos LINUX搭建LAMP笔记
LINUX搭建LAMP笔记 .YUM:Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于R ...
- linux基础命令怎么记,linux基础命令--笔记(示例代码)
linux基础命令--笔记 一. 1 . --help 命令简单帮助 2. man 查看命令复杂帮助 (非内置命令) 3 . help (bash的内置命令)如 :help cd .hel ...
- Linux C-学习笔记(一)
为建立对Linux C的基本概念,阅读书籍<Linux C编程从入门到实践-程国刚等>与<Linux C从入门到精通-明日科技>,此为学习笔记. Linux C-学习笔记 1. ...
- 韩顺平Linux教程学习笔记
Linux系统学习笔记 新装了deepin v23系统,结果磁盘没设置好,玩崩了,百度半天修复不了,看看韩顺平老师的Linux操作课程,做做笔记(只记录对自己有用的). B站网址 基础篇·Li ...
- Linux操作系统学习笔记【入门必备】
Linux操作系统学习笔记[入门必备] 文章目录 Linux操作系统学习笔记[入门必备] 1.Linux入门 2.Linux目录结构 3.远程登录 3.1 远程登录Linux-Xshell5 3.2 ...
- 萌新linux的基础笔记
笔记下载 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 命令 vim vim命令 前言 一个萌新写的linux的基础笔记 命令 ls //查看当前目录文件夹与文件 ...
- 我的Linux(ubuntu)自学笔记分享
** 我的Linux(ubuntu)自学笔记分享 本人自学Linux有了好长一段时间,从最开始的无从下手.一窍不通到现在已经有很大的进步了.所以分享一下学习方法,第一最好买一本Linux书系统的学一下 ...
- Zynq-7000系列之linux开发学习笔记:编译Linux内核和制作设备树(六)
开发板:Zynq7030数据采集板 PC平台:Ubuntu-18.04 + MobaXterm 开发环境:Xilinx Vivado + SDK -18.3 交叉编译工具:arm-linux-gnue ...
最新文章
- 腾讯云视频流量服务器,腾讯云服务器有流量限制吗
- vue组件的基本使用,以及组件之间的基本传值方式
- java中的复合数据类型是什么_【填空题】类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素。一个类的实现包括两部分:____和_____....
- 首届FineReport平台主题设计大赛火热启动
- video safari不支持吗_您支持吗? 公园遛狗纳入 “不文明行为黑名单”
- esp32-智能语音-mp3(sdcard)
- C - The Smallest String Concatenation CodeForces - 632C(按字典序列排列 )string或者数组
- 通达信接口的开发工具?
- 7z解压crc错误_7-Zip - 常见问题解答(FAQ)
- 华为云虚拟服务器怎么搭建,云服务器怎么搭建虚拟主机
- 最完整的国内手机号段
- 链新:探索NFT中国化路径,与实体经济相结合
- HP笔记本电源开关灯常亮,不能开机的处理
- DevOps落地实践及案例分享
- 旋转编码器怎么调零点?
- 采用GlodWave软件制作个性化铃声
- 关不上的窗徘徊在爱与痛的边缘
- 以下关于python语言技术特点_关于Python语言的特点,以下选项中描述错误的是
- Active Perl的PPM的repository添加
- 分享一篇百度云满速下载技术指南(纯技术分享,仅限个人用途!)
热门文章
- 【OFDM通信】基于matlab块状导频的信道估计算法仿真【含Matlab源码 1817期】
- 【三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】
- 【虹膜识别】基于matlab GUI滤波器虹膜识别【含Matlab源码 917期】
- 【人脸识别】基于matlab人脸识别检测脸、眼、鼻子和嘴【含Matlab源码 178期】
- 学术会议查询 边缘计算_我设计了可以预测边缘性的“学术不诚实”的AI系统(SMART课堂)...
- 通用逼近定理证明_通用逼近定理:代码证明
- java 线程condition_(七)java多线程之Condition
- python多线程怎么样_python如何使用多线程?
- html中li整体变色,JS+CSS实现鼠标经过div(li)背景变色
- oracle 存过 的语法,oracle 存储过程的基本语法_oracle