Prometheus+node_exporter+Grafana+夜莺 监控部署

news2024/12/29 5:04:17

一、安装Prometheus

1.1 部署并配置Prometheus

#主机基础配置
[root@node4~]# systemctl stop firewalld && systemctl disable firewalld
[root@node4~]# sed -i 's/=enforcing/=disabled/g' /etc/selinux/config  && setenforce 0

#上传prometheus安装包并解压
[root@node4 ~]# tar -zxvf prometheus-2.37.6.linux-amd64.tar.gz
[root@node4 ~]# mv prometheus-2.37.6.linux-amd64 /usr/local/prometheus
#备份原始配置文件
[root@node4 ~]# cd /usr/local/prometheus/
[root@node4 prometheus]# cp prometheus.yml prometheus.yml_bak
[root@node4 prometheus]# cat /usr/local/prometheus/prometheus.yml | grep -v "^#"

#配置文件详情
global: #用于prometheus的全局配置,比如采集间隔,抓取超时时间等
  scrape_interval: 15s # 采集目标主机监控数据的时间间隔,默认为1m
  evaluation_interval: 15s # 触发告警生成alert的时间间隔,默认是1m
  # scrape_timeout is set to the global default (10s).

alerting: #用于alertmanager实例的配置,支持静态配置和动态服务发现的机制
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

rule_files:  #用于加载告警规则相关的文件路径的配置,可以使用文件名通配机制
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs: #用于采集时序数据源的配置
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"  #每个被监控实例的集合用job_name命名,支持静态配置(static_configs)和动态服务发现的机制

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:  #静态目标配置,固定从某个target拉取数据
      - targets: ["192.168.40.165:9090"]
-----------------------------------------------------------------------------------------------------------------

#第一种配置系统启动文件,设置systemctl start prometheus 方式启动
[root@node4 prometheus]# vim /usr/lib/systemd/system/prometheus.service
[Unit]      #服务单元
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target    #依赖关系

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \ #启动目录
--config.file=/usr/local/prometheus/prometheus.yml \  #配置文件
--storage.tsdb.path=/usr/local/prometheus/data/ \   #数据目录
--storage.tsdb.retention=15d \   #保存时间
--web.enable-lifecycle  #开机热加载

ExecReload=/bin/kill -HUP $MAINPID   #重载
Restart=on-failure 
[Install]
WantedBy=multi-user.target

#第二种启动方式
[root@node4 prometheus]# cd /usr/local/prometheus
[root@node4 prometheus]# ./prometheus

#启动并访问网页
[root@node4 prometheus]# systemctl start prometheus

1.2 查看监控节点状态
在这里插入图片描述
在这里插入图片描述
1.3 通过 http:// 服务器 IP:9090/metrics 可以查看到监控指标的数据
在这里插入图片描述

二、安装node_exporter

2.1 部署并配置node_exporter 采集监控数据并给到prometheus

#解压配置文件
[root@node4 ~]# tar -zxvf node_exporter-1.5.0.linux-amd64_\(1\).tar.gz
[root@node4 ~]# mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter

#第一种配置系统启动文件,设置systemctl start prometheus 方式启动
[root@node4 ~]# vim /usr/lib/systemd/system/node_exporter.service

[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

#第二种启动方式
cd /usr/local/node_exporter/
./node_exporter  

#浏览器输入 http://192.168.40.165:9100/metrics 并访问

在这里插入图片描述
2.2 在prometheus服务配置prometheus.yml文件 添加target用于拉取主机数据

#添加以下节点
[root@node4 ~]# vim /usr/local/prometheus/prometheus.yml
  - job_name: "nodes"
    static_configs:
      - targets: ['192.168.40.165:9090']

在这里插入图片描述
在这里插入图片描述

三、Grafana仪表板展示监控信息

3.1 部署Grafana

#下载并直接安装 Grafana
[root@node4 ~]# sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-9.4.7-1.x86_64.rpm

#配置文件存放位置,因为是用yum 安装的所以在/etc/目录下面
[root@node4 ~]# cat /etc/grafana/grafana.ini

#默认用户名和密码为admin, 浏览器访问 IP:3000

在这里插入图片描述
3.2 创建数据源,关联prometheus端,下面我们把 Prometheus 服务器收集的数据做为一个数据源添加到 grafana,让 grafana 可以得到 Prometheus 的数据。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
3.3 这里我们 Import 一个模板查看下效果,Grafana 自带多种模板供大家选择
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
可以扩展配置 通过注册consul 用于服务发现接入到监控中

四、夜莺用于发送告警信息

4.1 安装 mariadb 数据库

[root@node4 ~]# yum -y install mariadb*
[root@node4 ~]# systemctl start mariadb && systemctl enable mariadb
#设置用户名和密码
[root@node4 ~]# mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"

4.2 安装 Redis 数据库

#安装阿里云镜像源
[root@node4 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@node4 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清理缓存
[root@node4 ~]# yum clean all && yum makecache
[root@node4 ~]# yum install epel-release
#安装Redis 
[root@node4 ~]# yum install -y redis

4.3 安装夜莺

[root@node4 ~]# mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/didi/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
[root@node4 ~]# wget https://github.com/ccfos/nightingale/releases/n9e-v6.0.0-ga.4.1-linux-amd64.tar.gz
#解压缩包
[root@node4 ~]# [root@node4 ~]# tar -zxvf n9e-v6.0.0-ga.4.1-linux-amd64.tar.gz
#导入数据表
[root@node4 ~]# mysql -uroot -p1234 < docker/initsql/a-n9e.sql

#修改 N9e 的配置文件,在当前目录  文件中,修改url 为prometheus的地址 (版本不一样配置文件路径也不一样)
[root@node4 n9eetc]# vim etc/config.toml
[[Pushgw.Writers]]
Url = "http://127.0.0.1:9090/api/v1/write"

如果启动成功,server 默认会监听在 19000 端口,webapi 会监听在 18000 端口,且日志没有报错。上面使用 nohup 简单演示,生产环境建议用 systemd 托管,相关 service 文件可以在 etc/service 目录下,配置文件etc/server.conf和etc/webapi.conf中都含有 mysql 的连接地址配置,检查一下用户名和密码,prometheus 如果使用上面的脚本安装,默认会监听本机 9090 端口,server.conf 和webapi.conf 中的 prometheus 相关地址都不用修改就是对的,如果使用贵司之前已有的 Prometheus,就要检查这俩配置文件中的时序库的配置了,把 127.0.0.1:9090 改成你的 Prometheus。
在这里插入图片描述在这里插入图片描述

#启动服务
nohup ./n9e server &> server.log &
nohup ./n9e webapi &> webapi.log &

4.4 访问夜莺WebUI IP:17000 默认密码 root/root.2020
在这里插入图片描述
4.5 安装 Categraf 是一个监控采集 Agent,会将采集到的信息推送到 TSDB。

#下载
[root@node4 ~]# wget https://download.flashcat.cloud/categraf-v0.2.38-linux-amd64.tar.gz
#解压
[root@node4 ~]# tar -zxvf categraf-v0.2.38-linux-amd64.tar.gz
#转移到opt下面
[root@node4 ~]# mv categraf-v0.2.38-linux-amd64 /opt/categraf && cd /opt/categraf 
#修改配置文件,在 conf/config.toml 中,修改的部分如下
[root@node4 categraf]# vim conf/config.toml
[[writers]] #改成夜莺地址IP:17000
url = "http://192.168.40.165:17000/prometheus/v1/write"
[heartbeat]
enable = true
#将文件放到系统命令里,然后启动categraf
[root@node4 categraf]# cp conf/categraf.service /usr/lib/systemd/system/
[root@node4 categraf]# systemctl start categraf.service

在这里插入图片描述
4.6 添加数据源 现在如果去查看时序数据指标,是查询不到的,因为没有添加数据源。
在这里插入图片描述
4.7在系统配置->数据源处添加数据源,如下:
在这里插入图片描述
4.8 这里就可以选择数据源,然后就能看到对应的指标数据了
在这里插入图片描述
4.9 也可以通过内置的仪表盘查看主机的监控数据,如下:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/441111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8、ThingsBoard使用docker compose集群部署的问题以及如何解决问题

1、问题回顾 接着上一节继续讲解,上一节我们把整个服务全部都运行起来了,但是访问页面报错,最后查看的问题是前端的容易里面报错: 然后执行脚本删除所有的容器 2、问题分析 当遇到这个问题的时候,我当时真的不知道如何去解决,然后我又尝试使用官方的镜像来部署,发现官…

P75分层解耦-IOCDI详解

一、分层解耦-三层架构 Dao层&#xff1a;数据访问 1、接口 package com.itheima.service;import com.itheima.pojo.Emp;import java.util.List;/*** Description:* date: 2023/4/19 21:47** since JDK 11*/ public interface EmpService { // 获取员工列表数据public List&l…

RabbitMQ·入门·壹

文章目录 1 MQ思想1.1 相关概念&#xff1a;同步、异步通讯1.1.1 同步通讯1.1.2 异步通讯 1.2 MQ思想概述1.2.1 1 MQ思想 1.1 相关概念&#xff1a;同步、异步通讯 通讯方式举例优势劣势同步通讯就像打电话&#xff0c;需要实时响应。打电话可以立即得到响应。不能跟多人同时…

垃圾回收相关算法

标记阶段的算法 垃圾标记阶段&#xff1a;对象存货判断 在堆里存放着几乎所有的Java对象实例&#xff0c;在GC执行垃圾回收之前&#xff0c;首先需要区分出内存中哪些是存活对象&#xff0c;哪些是己经死亡的对象。只有被标记为己经死亡的对象&#xff0c;GC才会在执行垃圾回…

AutoGPT 环境搭建教程

文章目录 前言一、注册OpenAI和Pinecone的账号&#xff0c;并获取key二、下载Git和Python3&#xff08;自己网上搜&#xff0c;无脑安装&#xff09;![在这里插入图片描述](https://img-blog.csdnimg.cn/95bafd5ebe9d468cbceeacbfc0cb939b.png)三、进入GitHub&#xff0c;安装A…

Flowable从入门到源码分析

什么是工作流&#xff1f; 工作流&#xff0c;是把业务之间的各个步骤以及规则进行抽象和概括性的描述。使用特定的语言为业务流程建模&#xff0c;让其运行在计算机上&#xff0c;并让计算机进行计算和推动。 工作流解决的痛点在于&#xff0c;解除业务宏观流程和微观逻辑的…

【Linux】基础IO,详解系统文件IO

目录 C语言文件操作简单回顾 C语言相关文件接口汇总 默认打开的三个流 系统文件I/O open open的第一个参数 open的第二个参数 open的第三个参数 open的返回值 close write read 文件描述符 什么是文件描述符 文件描述符分配规则 重定向 重定向的本质 输出重定…

ETCD(一)简介

1. ETCD是什么 etcd 是一个分布式键值对存储&#xff0c;设计用来可靠而快速的保存关键数据并提供访问。和数据库一样都是用来存数据的&#xff0c;但是etcd有自己的特点&#xff0c;因此有自己的使用场景。 2. etcd 特点 完全复制&#xff0c;集群中的每个节点均拥有全量数…

跌倒检测和识别2:YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码)

跌倒检测和识别2&#xff1a;YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码) 目录 跌倒检测和识别2&#xff1a;YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码) 1. 前言 2. 跌倒检测数据集说明 &#xff08;1&#xff09;跌倒检测数据集 &#xff08;2&#xff09;自定…

《离散数学导学》精炼——第10章(序列)

Learning never exhausts the mind. 文章目录 引言正文元包序列的定义序列与函数的关系空序列长度连接头尾运算符限制运算符逆置运算符单射序列 引言 笔者一直觉得在计算机这一学科的学习中&#xff0c;离散数学是极为重要的知识基础。离散化的思想体现在计算机学科的方方面面…

SpringDataJPA

介绍&#xff1a; spirng data jpa是spring提供的一套简化JPA开发的框架&#xff0c;按照约定好的规则进行【方法命名】去写dao层接口&#xff0c;就可以在不写接口实现的情况下&#xff0c;实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能&#xff0c;如分页、排…

剖析Linux内核—fork背后隐藏的技术细节

1、前言 全文分为两部分讲解&#xff1a;fork的内存管理部分和进程管理部分&#xff0c;内存管理主要讲解子进程如何构建自己的内存管理相关基础设施&#xff0c;父子进程如何共享地址空间的&#xff0c;写时复制如何发生&#xff0c;页表层面为我们做了哪些事情等等。而进程管…

Redis缓存雪崩、穿透、击穿

Redis缓存雪崩、穿透、击穿 解决方案正常的缓存流程Redis缓存雪崩Redis缓存雪崩解决方案 Redis缓存穿透Redis缓存穿透解决方案 Redis缓存击穿Redis缓存击穿解决方案 解决方案 布隆过滤器&#xff0c;分布式锁 正常的缓存流程 Redis缓存雪崩 Redis中的key大面积失效&#xff0…

BUUCTF-PWN-pwn1_sctf_2016

下载 放入 ubuntu里查信息 现在这些保护我都没有遇到 以后慢慢做应该是会遇到的 然后进行发现是32 所以我们记住 如果栈溢出漏洞 我们需要4个字节填满基地址 放入ida32 查看字符串 发现 cat flag 敏感字符串 然后我们就看引用 先记住地址 为 0x8048F0D 然后开始进去 发…

windows下网络聊天室项目(C++、SQLite、计算机网络)——思路+源码+解析

这里只是在windows系统下用C++做的简易聊天室,其界面比较low,不过该有的功能已基本实现。至于带界面的,QT里有封装好的QTcpSocket套接字,会在下一篇博客里予以介绍。主要的功能主要包含的功能有:查看当前在线人数、进入群聊界面、进入私聊界面、查看聊天记录、文件传输、更…

【Python小程序】纪念日礼物|恋爱一周年,送媳妇儿什么礼物浪漫又有惊喜?一键收藏,过节再也不用绞尽脑汁啦~(特别的礼物赠送)

前言 有些日子不可懒&#xff0c;指的就是纪念日。不同阶段过纪念日&#xff0c;也是不同的心境。 ——偷偷告诉你 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 作为一个编程博主&#xff0c…

爬虫学习 例子

以新能源网为例 【10-实战课】从源码获取豆瓣电影TOP250_哔哩哔哩_bilibili 1.查看网站结构 可见结构比较简单&#xff0c;直接循环爬取即可 2.代码&#xff08;无数据存储&#xff09; import requests from bs4 import BeautifulSoup headers {"User-Agent":&…

追梦之旅【数据结构篇】——看看小白试如何利用C语言“痛”撕堆排序

追梦之旅【数据结构篇】——看看小白试如何利用C语言“痛”撕堆排序 ~&#x1f60e; 前言&#x1f64c;堆的应用 —— 堆排序算法&#xff1a;堆排序算法源代码分享运行结果测试截图&#xff1a; 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60…

【菜鸡读论文】Cross-domain Named Entity Recognition via Graph Matching

【菜鸡读论文】Cross-domain Named Entity Recognition via Graph Matching 最近到了研一下学期&#xff0c;很多身边的同学也开始有了成果&#xff0c;但本菜鸡一点成果都没有【大哭】所以也没什么好写的。虽然菜鸡口头上不说&#xff0c;但内心也感受到非常之焦虑。最近读论…

Linux 触摸屏 (IIC驱动详解)

前言&#xff1a; 本文使用触摸屏iic驱动&#xff0c;驱动编写中要使用总线&#xff0c;设备&#xff0c;驱动分层的思想&#xff0c;IIC总线&#xff0c;触摸屏驱动&#xff0c;触摸屏设备&#xff0c; IIC总线驱动 一般 SOC 的 I2C 总线驱动都是由半导体厂商编写的&…