感兴趣的话大家可以关注一下公众号 : 猿人刘先生 , 欢迎大家一起学习 , 一起进步 , 一起来交流吧!

一. 介绍

1.Prometheus:

一个监控系统,集成在项目中可以对项目运行的一些情况进行监控,并将监控的数据存储在文件中,并可以通过自带的页面端查询到这些数据。

2.node_exporter:

一个监控系统,集成在服务器中,可以监控主机的运行状况,可以将node_exporter集成到Prometheus的管理端,通过Prometheus提供的页面查询到相应的数据

3.grafana:

一个显示页面,比Prometheus自带的更好看,更形象,可以通过给grafana配置Prometheus的数据源,让grafana显示Prometheus的数据。当然除了Prometheus,它也支持其他的数据源

4.Alertmanager

Alertmanager处理客户端应用程序(如Prometheus服务器)发送的警报。它负责重复数据删除、分组,并将它们路由到正确的接收器集成,如电子邮件、PagerDuty或OpsGenie。它还负责静音和抑制警报

安装机器为 : Centos 7.6

二. 防火墙设置

1.将所有机器的防火墙关闭

systemctl stop firewalld.service

2.关闭防火墙开机自启动

systemctl disable firewalld.service

1.安装prometheus

1.1.下载prometheus

wget https://github.com/prometheus/prometheus/releases/download/v2.8.1/prometheus-2.8.1.linux-amd64.tar.gz

1.2.解压

tar -xzvf prometheus-2.8.1.linux-amd64.tar.gz

1.3.修改名称(非必要)

mv prometheus-2.8.1.linux-amd64/ prometheus/

1.4.创建prometheus.service文件

vim /etc/systemd/system/prometheus.service

1.5.增加配置

[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=root
Restart=on-failure
#Change this line if you download the
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data
[Install]
WantedBy=multi-user.target

1.6.重新载入配置(修改了prometheus.service文件之后执行)

systemctl daemon-reload

1.7.启动

systemctl start prometheus

1.8.验证

输入 netstat -plntu |grep 9090 或者 访问ip+9090

1.9其他命令

重启 : systemctl restart prometheus
查看状态 :systemctl status prometheus
停止: systemctl stop prometheus
开机自启动 : systemctl enable prometheus

2.安装 node_exporter

2.1.下载

wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz

2.2.解压

tar -xzvf node_exporter-0.17.0.linux-amd64.tar.gz

2.3.修改名称(非必要)

mv node_exporter-0.17.0.linux-amd64 node_exporter

2.4.创建node_exporter.service

vim /etc/systemd/system/node_exporter.service

2.5.添加配置

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=root
ExecStart=/home/software/node_exporter/node_exporter
[Install]
WantedBy=default.target

2.6.重新载入设置

systemctl daemon-reload

2.7.启动

systemctl start node_exporter

2.8 验证

netstat -plntu |grep 9100

或者

systemctl status node_exporter

2.9 将node_exporter添加到Prometheus服务器

vim prometheus/prometheus.yml

2.10 在’scrape_config’行下,通过复制粘贴下面的配置添加新的job_name node_exporter

一定要注意yml的格式 ! ! !

  - job_name: 'node_exporter'static_configs:- targets: ['localhost:9100']

2.11 重启promethues

systemctl restart prometheus

2.12 其他命令

重启 : systemctl restart node_exporter
查看状态 :systemctl status node_exporter
停止: systemctl stop node_exporter
开机自启动 : systemctl enable node_exporter

2.13 测试prometheus + node_exporter

如下图所示 , 输入node_memory_MemTotal_bytes , 点击执行按钮

通过http://ip:9100/metrics可以获得node_exporter原始数据,如下所示

3.安装grafana

3.1.下载

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.3-1.x86_64.rpm
或者 直接访问
https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.3-1.x86_64.rpm下载

3.2.使yum安装

sudo yum install grafana-enterprise-9.0.3-1.x86_64.rpm

3.3.启动

systemctl start grafana-server

3.4.验证

访问http://ip:3000

3.5.整合prometheus

登录grafana , 用户名密码默认 admin

点击即可


配置之后点击 save & test 即可

随便选择一个模板 , 点击导入即可

点击这个地方就可以看到数据了

3.6.监听多节点

在prometheus.yml中增加配置即可

  - job_name: 'cluster-134'static_configs:- targets: ['localhost:9100']- job_name: 'cluster-135'static_configs:- targets: ['192.168.154.135:9100']

然后换个主题

上传一个json文件 , 可以在这个网址找 : https://grafana.com/grafana/dashboards/
也可以用这个 :https://grafana.com/grafana/dashboards/11074-node-exporter-for-prometheus-dashboard-en-v20201010/


上传之后需要选择数据库 , 就选上面配置好的就行

然后保存

然后回到首页 , 点一下刚刚配置好的

就可以切换查看不同机器的运行状态

3.7其他命令

开机自启动 : systemctl enable grafana-server
停止 : systemctl stop grafana-server
查看状态 : systemctl status grafana-server

4.安装Alertmanager

4.1.下载

wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz

4.2.解压

tar xvf alertmanager-0.21.0.linux-amd64.tar.gz

4.3.修改文件名

mv alertmanager-0.21.0.linux-amd64 alertmanager

4.4. 配置启动文件

vim /etc/systemd/system/alertmanager.service
[Unit]
Description=alertmanager
Documentation=https://prometheus.io/
After=network.target
StartLimitIntervalSec=0[Service]
Type=simple
User=root
ExecStart=/home/software/alertmanager/alertmanager --storage.path=/home/software/alertmanager/data/ \
--config.file=/home/software/alertmanager/alertmanager.yml
Restart=always
RestartSec=1[Install]
WantedBy=default.target

4.5.启动

systemctl start alertmanager

4.6. prometheus.yml

alerting:alertmanagers:- static_configs:- targets: ["192.168.154.134:9093"]rule_files:- "rule/*.yml"

4.7.host.yml

在prometheus.yml同一层新建rule文件夹 , 然后再rule文件夹下新建host.yml(文件夹的名称和.yml的名称可以随便修改) , 配置以下内容

groups:
- name: hostrules:- alert: PrometheusTargetMissingexpr: up == 0for: 1mlabels:severity: criticalannotations:summary: 服务器宕机 (instance {{ $labels.instance }})description: "服务器宕机,或者node exporter未启动\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"- alert: HostOutOfDiskSpaceexpr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 5 and ON (instance, device, mountpoint) node_filesystem_readonly == 0for: 10slabels:severity: warningannotations:summary: 主机磁盘空间不足 (instance {{ $labels.instance }})description: "主机磁盘空间不足 (剩余 < 10% )\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"- alert: HostHighCpuLoadexpr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 80for: 0mlabels:severity: warningannotations:summary: CPU使用率过高! (instance {{ $labels.instance }})description: "CPU使用率超过 > 80%\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"- alert: HostOutOfMemoryexpr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10for: 2mlabels:severity: warningannotations:summary: 内存使用率过高 (instance {{ $labels.instance }})description: "内存使用率过高 (剩余< 10% )\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"

4.8.alertmanager.yml

配置接收报警的邮箱如果是qq邮箱 , 那么就需要开通相关服务

global:smtp_smarthost: 'smtp.163.com:25'smtp_from: '2788956780@xxx.com'smtp_auth_username: '2788956780@qq.com'smtp_auth_password: 'xxxxxxxx'
route:group_by: ['alert']group_wait: 10sgroup_interval: 10srepeat_interval: 1hreceiver: 'email-me'
receivers:
- name: 'email-me'email_configs:- to: 2788956780@qq.comsend_resolved: true

重启prometheus和alertmanager即可

4.9.验证

我这里有两台机器 134 和135 ,关掉135 一分钟后即可收到报警

4.10.其他命令

重启 : systemctl restart alertmanager
查看状态 :systemctl status alertmanager
停止: systemctl stop alertmanager
开机自启动 : systemctl enable alertmanager

服务搭建篇(一) 搭建基于prometheus + node_exporter + grafana + Alertmanager 的监控报警系统 , 保姆级教程相关推荐

  1. ac2100 反弹shell无法粘贴_手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...

    手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程 2020-05-14 18:49:24 224点赞 1790收藏 241评论 你是AMD Yes党?还是 ...

  2. 基于Prometheus和Grafana打造业务监控看板

    前言 业务监控对许许多多的场景都是十分有意义,业务监控看板可以让我们比较直观的看到当前业务的实时情况,然后运营人员可以根据这些情况及时对业务进行调整操作,避免业务出现大问题. 老黄曾经遇到过一次比较尴 ...

  3. prometheus+node_exporter+grafana+alertManager+prometheus-webhook-dingtalk实现服务器监控显示,钉钉机器人告警消息通知

    1.下载prometheus安装 ① 从 https://prometheus.io/download/ 下载相应版本,安装到服务器上官网提供的是二进制版,解压就能用,不需要编译 [root@loac ...

  4. 如何用WordPress搭建一个属于自己的网站、让你从0-1的保姆级教程

    文章目录 搭建网站必备前提 第一步 拉取对应的lnpm包 解压lnpm 服务器开放端口号 配置nginx 安装对应的wordPress包 第一步:安装 wordpress 安装包并解压到 /home/ ...

  5. 【保姆级教程】Docker基础操作篇-Dokerfile(含源码)

    Docker系列文章: 你好!Docker[概念+源码+保姆式教程] [保姆级教程]Docker进阶操作篇-Compose(含源码) Docker常用命令 [保姆级教程]VMware+CentOS 7 ...

  6. 【保姆级教程】基于WordPress在阿里云服务器上搭建个人博客网站

    写之前先回答几个问题: 1,网上类似的教程非常多,为什么写这篇教程? 答:博客网站我搭建过好几次,但是每次搭建都需要再去网上搜教程:然而网上的教程坑很多,甚至有些是错误的,不能完美解决自己的问题,有时 ...

  7. 从购买服务器到网站搭建成功保姆级教程~超详细

    ??从购买服务器到网站搭建成功保姆级教程~真的超详细,各位看官细品 ??前言 ??预备知识 ??什么是云服务器? ??什么是域名? ??什么是SSL证书? ??服务器选配 ??阿里云[官网链接](ht ...

  8. Prometheus+Node_exporter+Grafana监控(附送保姆级别linux安装攻略)

    Prometheus+Node_exporter+Grafana监控(附送保姆级别linux安装攻略) 前言:监控系统技术选型 从开发语言上看,为了应对高并发和快速迭代的需求,监控系统的开发语言已经慢 ...

  9. grafana的+按钮_基于 Prometheus、Grafana 的 EMQ X 物联网 MQTT 服务器可视化运维监控...

    Prometheus 是由 SoundCloud 开源监控告警解决方案,支持多维 数据模型(时序由 metric 名字和 k/v 的 labels 构成),具备灵活的查询语句(PromQL),支持多种 ...

最新文章

  1. 2012年度IT博客大赛50强报道:张世锋
  2. leetcode 135. Candy | 135. 分发糖果(原创图文详解,Java)
  3. 开源绘画应用 Pinta 已移植到GTK 3和.NET 6
  4. 数据结构之堆(Heap),堆的相关操作,用堆模拟优先级队列
  5. 《当程序员的那些狗日日子》三
  6. android 原生camera——设置模块修改
  7. content=IE=Edge
  8. nginx安装部署ssl证书
  9. PG的timestamp
  10. SylixOS x86 HPET 定时器驱动
  11. 《惢客创业日记》2019.11.28(周四)近者悦,远者来
  12. CUDA指定GPU的使用方法
  13. IOS开发入门之二——第一个App
  14. 数据结构图,图存储结构详解
  15. 汽车倒车雷达系统设计
  16. 净水器的数字电路理论基础
  17. 统一NER模型【W2NER】的中文效果测试(含代码)
  18. windows剪切板文本和文件的获取设置
  19. 史上最全 JVM 大全详解、java 程序员细节到极致的一次,魔鬼
  20. mysql_upgrade 升级_MySQL 8.0.16 告别mysql_upgrade升级方式

热门文章

  1. Python动态图见得多了?Excel:亦可赛艇!我可是身经百战了
  2. Python 爬影评,《悬崖之上》好看在哪里?
  3. 2019CCPC秦皇岛打铁(游)记
  4. Nebula Graph|信息图谱在携程酒店的应用
  5. 工业交换机的功率和网络管理方法
  6. 零基础应该怎么学习商业插画?
  7. 八种网络攻击类型,你了解多少?
  8. MySQL权限系统(三).权限表 Grant Tables
  9. 综合练习2:购买电影票(代码区别:对象.成员方法)
  10. 移动端布局三种视口_移动端布局:视口viewport的理解