一、基础环境

系统 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笔记相关推荐

  1. Linux基本命令学习笔记--文件查看、下载、查找

    1.Linux基本命令学习笔记–(文件查看) cat -整个查看 -n:行号 >(创建.覆盖) >>(追加)a.txt<<EOF:编写内容 内容 EOF (定格写:结束) ...

  2. 嵌入式Linux入门经典笔记

    史上最牛的Linux内核学习方法论     点击下载 我的arm_linux移植笔记     点击下载 S3C2440完全开发流程     点击下载 Linux系统命令及其使用详解完整版     点击 ...

  3. contos LINUX搭建LAMP笔记

    LINUX搭建LAMP笔记 .YUM:Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于R ...

  4. linux基础命令怎么记,linux基础命令--笔记(示例代码)

    linux基础命令--笔记 一.   1  . --help 命令简单帮助 2. man 查看命令复杂帮助  (非内置命令) 3  . help (bash的内置命令)如 :help cd  .hel ...

  5. Linux C-学习笔记(一)

    为建立对Linux C的基本概念,阅读书籍<Linux C编程从入门到实践-程国刚等>与<Linux C从入门到精通-明日科技>,此为学习笔记. Linux C-学习笔记 1. ...

  6. 韩顺平Linux教程学习笔记

    Linux系统学习笔记   新装了deepin v23系统,结果磁盘没设置好,玩崩了,百度半天修复不了,看看韩顺平老师的Linux操作课程,做做笔记(只记录对自己有用的).   B站网址 基础篇·Li ...

  7. Linux操作系统学习笔记【入门必备】

    Linux操作系统学习笔记[入门必备] 文章目录 Linux操作系统学习笔记[入门必备] 1.Linux入门 2.Linux目录结构 3.远程登录 3.1 远程登录Linux-Xshell5 3.2 ...

  8. 萌新linux的基础笔记

    笔记下载 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 命令 vim vim命令 前言 一个萌新写的linux的基础笔记 命令 ls //查看当前目录文件夹与文件 ...

  9. 我的Linux(ubuntu)自学笔记分享

    ** 我的Linux(ubuntu)自学笔记分享 本人自学Linux有了好长一段时间,从最开始的无从下手.一窍不通到现在已经有很大的进步了.所以分享一下学习方法,第一最好买一本Linux书系统的学一下 ...

  10. Zynq-7000系列之linux开发学习笔记:编译Linux内核和制作设备树(六)

    开发板:Zynq7030数据采集板 PC平台:Ubuntu-18.04 + MobaXterm 开发环境:Xilinx Vivado + SDK -18.3 交叉编译工具:arm-linux-gnue ...

最新文章

  1. 腾讯云视频流量服务器,腾讯云服务器有流量限制吗
  2. vue组件的基本使用,以及组件之间的基本传值方式
  3. java中的复合数据类型是什么_【填空题】类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素。一个类的实现包括两部分:____和_____....
  4. 首届FineReport平台主题设计大赛火热启动
  5. video safari不支持吗_您支持吗? 公园遛狗纳入 “不文明行为黑名单”
  6. esp32-智能语音-mp3(sdcard)
  7. C - The Smallest String Concatenation CodeForces - 632C(按字典序列排列 )string或者数组
  8. 通达信接口的开发工具?
  9. 7z解压crc错误_7-Zip - 常见问题解答(FAQ)
  10. 华为云虚拟服务器怎么搭建,云服务器怎么搭建虚拟主机
  11. 最完整的国内手机号段
  12. 链新:探索NFT中国化路径,与实体经济相结合
  13. HP笔记本电源开关灯常亮,不能开机的处理
  14. DevOps落地实践及案例分享
  15. 旋转编码器怎么调零点?
  16. 采用GlodWave软件制作个性化铃声
  17. 关不上的窗徘徊在爱与痛的边缘
  18. 以下关于python语言技术特点_关于Python语言的特点,以下选项中描述错误的是
  19. Active Perl的PPM的repository添加
  20. 分享一篇百度云满速下载技术指南(纯技术分享,仅限个人用途!)

热门文章

  1. 【OFDM通信】基于matlab块状导频的信道估计算法仿真【含Matlab源码 1817期】
  2. 【三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】
  3. 【虹膜识别】基于matlab GUI滤波器虹膜识别【含Matlab源码 917期】
  4. 【人脸识别】基于matlab人脸识别检测脸、眼、鼻子和嘴【含Matlab源码 178期】
  5. 学术会议查询 边缘计算_我设计了可以预测边缘性的“学术不诚实”的AI系统(SMART课堂)...
  6. 通用逼近定理证明_通用逼近定理:代码证明
  7. java 线程condition_(七)java多线程之Condition
  8. python多线程怎么样_python如何使用多线程?
  9. html中li整体变色,JS+CSS实现鼠标经过div(li)背景变色
  10. oracle 存过 的语法,oracle 存储过程的基本语法_oracle