服务搭建篇(一) 搭建基于prometheus + node_exporter + grafana + Alertmanager 的监控报警系统 , 保姆级教程
感兴趣的话大家可以关注一下公众号 : 猿人刘先生 , 欢迎大家一起学习 , 一起进步 , 一起来交流吧!
一. 介绍
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 的监控报警系统 , 保姆级教程相关推荐
- ac2100 反弹shell无法粘贴_手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...
手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程 2020-05-14 18:49:24 224点赞 1790收藏 241评论 你是AMD Yes党?还是 ...
- 基于Prometheus和Grafana打造业务监控看板
前言 业务监控对许许多多的场景都是十分有意义,业务监控看板可以让我们比较直观的看到当前业务的实时情况,然后运营人员可以根据这些情况及时对业务进行调整操作,避免业务出现大问题. 老黄曾经遇到过一次比较尴 ...
- prometheus+node_exporter+grafana+alertManager+prometheus-webhook-dingtalk实现服务器监控显示,钉钉机器人告警消息通知
1.下载prometheus安装 ① 从 https://prometheus.io/download/ 下载相应版本,安装到服务器上官网提供的是二进制版,解压就能用,不需要编译 [root@loac ...
- 如何用WordPress搭建一个属于自己的网站、让你从0-1的保姆级教程
文章目录 搭建网站必备前提 第一步 拉取对应的lnpm包 解压lnpm 服务器开放端口号 配置nginx 安装对应的wordPress包 第一步:安装 wordpress 安装包并解压到 /home/ ...
- 【保姆级教程】Docker基础操作篇-Dokerfile(含源码)
Docker系列文章: 你好!Docker[概念+源码+保姆式教程] [保姆级教程]Docker进阶操作篇-Compose(含源码) Docker常用命令 [保姆级教程]VMware+CentOS 7 ...
- 【保姆级教程】基于WordPress在阿里云服务器上搭建个人博客网站
写之前先回答几个问题: 1,网上类似的教程非常多,为什么写这篇教程? 答:博客网站我搭建过好几次,但是每次搭建都需要再去网上搜教程:然而网上的教程坑很多,甚至有些是错误的,不能完美解决自己的问题,有时 ...
- 从购买服务器到网站搭建成功保姆级教程~超详细
??从购买服务器到网站搭建成功保姆级教程~真的超详细,各位看官细品 ??前言 ??预备知识 ??什么是云服务器? ??什么是域名? ??什么是SSL证书? ??服务器选配 ??阿里云[官网链接](ht ...
- Prometheus+Node_exporter+Grafana监控(附送保姆级别linux安装攻略)
Prometheus+Node_exporter+Grafana监控(附送保姆级别linux安装攻略) 前言:监控系统技术选型 从开发语言上看,为了应对高并发和快速迭代的需求,监控系统的开发语言已经慢 ...
- grafana的+按钮_基于 Prometheus、Grafana 的 EMQ X 物联网 MQTT 服务器可视化运维监控...
Prometheus 是由 SoundCloud 开源监控告警解决方案,支持多维 数据模型(时序由 metric 名字和 k/v 的 labels 构成),具备灵活的查询语句(PromQL),支持多种 ...
最新文章
- 2012年度IT博客大赛50强报道:张世锋
- leetcode 135. Candy | 135. 分发糖果(原创图文详解,Java)
- 开源绘画应用 Pinta 已移植到GTK 3和.NET 6
- 数据结构之堆(Heap),堆的相关操作,用堆模拟优先级队列
- 《当程序员的那些狗日日子》三
- android 原生camera——设置模块修改
- content=IE=Edge
- nginx安装部署ssl证书
- PG的timestamp
- SylixOS x86 HPET 定时器驱动
- 《惢客创业日记》2019.11.28(周四)近者悦,远者来
- CUDA指定GPU的使用方法
- IOS开发入门之二——第一个App
- 数据结构图,图存储结构详解
- 汽车倒车雷达系统设计
- 净水器的数字电路理论基础
- 统一NER模型【W2NER】的中文效果测试(含代码)
- windows剪切板文本和文件的获取设置
- 史上最全 JVM 大全详解、java 程序员细节到极致的一次,魔鬼
- mysql_upgrade 升级_MySQL 8.0.16 告别mysql_upgrade升级方式