【Prometheus】mysqld_exporter+Grafana+AlertManager预警

news2024/12/26 11:55:31

环境
prometheus-2.44.0
mysqld_exporter-0.14.0
grafana-enterprise-9.1.2-1.x86_64.rpm
alertmanager-0.25.0.
简介

mysql_exporter是用来收集MysQL或者Mariadb数据库相关指标的,mysql_exporter需要连接到数据库并有相关权限。既可以用二进制安装部署,也可以通过容器形式部署,但为了数据收集的准确性,推荐二进制安装。

一,下载安装包并解压

安装包下载地址: https://github.com/prometheus/mysqld_exporter/releases

同样物理机上下载,然后上传到服务器,本次安装使用的版本为:mysqld_exporter-0.14.0.linux-amd64


1,根据服务器情况选择安装目录,上传安装包。

mkdir /mysqld_exporter
cd /mysqld_exporter/

[root@jd-mysql mysqld_exporter]# ls
mysqld_exporter-0.14.0.linux-amd64.tar.gz
#解压
[root@jd-mysql mysqld_exporter]# tar -xvzf mysqld_exporter-0.14.0.linux-amd64.tar.gz
[root@jd-mysql mysqld_exporter]# cp mysqld_exporter-0.14.0.linux-amd64/* .
[root@jd-mysql mysqld_exporter]# rm -rf mysqld_exporter-0.14.0.linux-amd64
[root@jd-mysql mysqld_exporter]# ls
LICENSE  mysqld_exporter  mysqld_exporter-0.14.0.linux-amd64.tar.gz  NOTICE

在这里插入图片描述

二,创建配置文件

  • 创建配置文件.my.cnf ,填入如下内容后保存:wq
[root@jd-mysql mysqld_exporter]# cat .my.cnf 
[client]
user = exporter
password = Jd123456
host = 192.168.1.150
port = 3306

  • mysql创建用户并授权,注意服务ip不要填错
[root@jd-mysql mysqld_exporter]# mysql -uroot -pJiangda123#
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.40-log MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@(none) 11:06  mysql>create user 'exporter'@'%' identified by 'Jd123456';
Query OK, 0 rows affected (1.02 sec)

root@(none) 11:07  mysql>GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%'  WITH MAX_USER_CONNECTIONS 3;
Query OK, 0 rows affected, 1 warning (0.00 sec)

root@(none) 11:07  mysql>flush privileges;
Query OK, 0 rows affected (0.00 sec)

root@(none) 11:07  mysql>exit
Bye


三,进行系统service编写

  • 创建mysqld_exporter.service配置文件
cd /usr/lib/systemd/system
vim mysqld_exporter.service

  • mysqld_exporter.service 文件填入如下内容后保存:wq
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/mysqld_exporter/mysqld_exporter --config.my-cnf=/mysqld_exporter/.my.cnf --web.listen-address=:9104

[Install]
WantedBy=multi-user.target


  • 查看配置文件
cat mysqld_exporter.service 

在这里插入图片描述

  • 刷新服务配置并启动服务
systemctl daemon-reload
systemctl start mysqld_exporter.service

  • 查看服务运行状态
systemctl status mysqld_exporter.service

在这里插入图片描述

  • 设置开机自启动
systemctl enable mysqld_exporter.service

  • 测试服务返回
curl localhost:9104/metrics

在这里插入图片描述

Docker部署

  • 在Docker部署之前,首先要确保拥有Docker环境

  • 拉取mysqld-exporter最新镜像

docker pull prom/mysqld-exporter

  • 创建mysql监听用户并授权,注意服务ip不要填错
CREATE USER 'exporter'@'<安装Prometheus的主机IP>' IDENTIFIED BY '<your password>';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'<安装Prometheus的主机IP>';
flush privileges;

  1. 启动容器
    注意:⚠️ 若二进制章节部署后,需要执行systemctl stop mysqld_exporter.service关闭服务,否则会造成端口冲突,或者docker的端口映射改为-p 9194:9104也可。注意环境变量DATA_SOURCE_NAME的mysql帐号密码与地址无误
docker run -d  --restart=always  --name mysqld-exporter -p 9104:9104 -e DATA_SOURCE_NAME="exporter:<pass>(11x.xx.xx.7:13306)/"  prom/mysqld-exporter

  1. 测试服务返回
curl localhost:9104/metrics

对接prometheus

  • 打开prometheus.yml添加以下内容,并执行:wq,点击回车保存
   
 - job_name: "mysql"
   static_configs:
     - targets: ["192.168.1.150:9104"]
       labels:
         instance: mysqld-exporter

在这里插入图片描述

  • 执行prometheus配置刷新
curl -XPOST localhost:9090/-/reload

  • 打开prometheus,搜索mysql,可以看到出现了很多的参数指标

  • 在这里插入图片描述

  • 打开targets,可以看到节点状态已经UP
    在这里插入图片描述

  • 至此mysqld-exporter插件安装完毕

用Grafana出图

[root@nfs yum.repos.d]# mkdir /grafana
[root@nfs yum.repos.d]# cd /grafana/
[root@nfs grafana]# ls
grafana-enterprise-9.1.2-1.x86_64.rpm
[root@nfs grafana]# yum install grafana-enterprise-9.1.2-1.x86_64.rpm -y

安装好后

[root@nfs grafana]# service grafana-server start
Starting grafana-server (via systemctl):                   [  确定  ]
[root@nfs grafana]# systemctl enable grafana-server  
Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
[root@nfs grafana]# netstat -anplut|grep grafana
tcp        0      0 192.168.1.130:56948     34.120.177.193:443      ESTABLISHED 8775/grafana-server 
tcp        0      0 192.168.1.130:48842     185.199.110.133:443     ESTABLISHED 8775/grafana-server 
tcp6       0      0 :::3000                 :::*                    LISTEN      8775/grafana-server 

访问http://192.168.1.130:3000/
在这里插入图片描述
默认的用户名和密码是
用户名admin
密码admin

配置数据源
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功效果:
在这里插入图片描述
AlertManager预警功能

安装

[root@nfs prometheus]# mkdir /prom_alert
[root@nfs prometheus]# cd /prom_alert/
[root@nfs prom_alert]# ls
alertmanager-0.25.0.linux-amd64.tar.gz
[root@nfs prom_alert]# tar xf alertmanager-0.25.0.linux-amd64.tar.gz 
[root@nfs prom_alert]# ls
alertmanager-0.25.0.linux-amd64  alertmanager-0.25.0.linux-amd64.tar.gz
[root@nfs prom_alert]# mv alertmanager-0.25.0.linux-amd64 alertmanager
[root@nfs prom_alert]# cd alertmanager
[root@nfs alertmanager]# ls
alertmanager  alertmanager.yml  amtool  LICENSE  NOTICE
[root@nfs alertmanager]# cp alertmanager.yml alertmanager.yml.bak
[root@nfs alertmanager]# vim alertmanager.yml
[root@nfs alertmanager]# pwd
/prom_alert/alertmanager

使用systemd管理,启动 && 开机自启

[root@nfs alertmanager]# cd /usr/lib/systemd/system
[root@nfs system]# vim alertmanager.service
[root@nfs system]# systemctl daemon-reload
[root@nfs system]# systemctl start alertmanager.service 
[root@nfs system]# systemctl status alertmanager.service 
● alertmanager.service - alertmanager
   Loaded: loaded (/usr/lib/systemd/system/alertmanager.service; disabled; vendor preset: disabled)
   Active: active (running) since 六 2023-06-10 15:37:44 CST; 12s ago
     Docs: https://prometheus.io/
 Main PID: 13175 (alertmanager)
    Tasks: 7
   Memory: 16.9M
   CGroup: /system.slice/alertmanager.service
           └─13175 /prom_alert/alertmanager/alertmanager --storage.path=/prom_alert/alertman...

610 15:37:44 nfs alertmanager[13175]: ts=2023-06-10T07:37:44.753Z caller=main.go:240 ...9)"
6月 10 15:37:44 nfs alertmanager[13175]: ts=2023-06-10T07:37:44.753Z caller=main.go:241 ...6)"
610 15:37:44 nfs alertmanager[13175]: ts=2023-06-10T07:37:44.757Z caller=cluster.go:1...094
610 15:37:44 nfs alertmanager[13175]: ts=2023-06-10T07:37:44.759Z caller=cluster.go:6...=2s
610 15:37:44 nfs alertmanager[13175]: ts=2023-06-10T07:37:44.798Z caller=coordinator....yml
610 15:37:44 nfs alertmanager[13175]: ts=2023-06-10T07:37:44.798Z caller=coordinator....yml
610 15:37:44 nfs alertmanager[13175]: ts=2023-06-10T07:37:44.800Z caller=tls_config.g...093
610 15:37:44 nfs alertmanager[13175]: ts=2023-06-10T07:37:44.800Z caller=tls_config.g...093
610 15:37:46 nfs alertmanager[13175]: ts=2023-06-10T07:37:46.759Z caller=cluster.go:7...91s
610 15:37:54 nfs alertmanager[13175]: ts=2023-06-10T07:37:54.763Z caller=cluster.go:6...97s
Hint: Some lines were ellipsized, use -l to show in full.
[root@nfs system]# systemctl enable alertmanager
Created symlink from /etc/systemd/system/multi-user.target.wants/alertmanager.service to /usr/lib/systemd/system/alertmanager.service.

查看端口

[root@nfs system]# netstat -anplut|grep alert
tcp6       0      0 :::9093                 :::*                    LISTEN      13175/alertmanager  
tcp6       0      0 :::9094                 :::*                    LISTEN      13175/alertmanager  
udp6       0      0 :::9094                 :::*                                13175/alertmanager  

验证 浏览器访问alertmanager管理页面
浏览器访问 http://IP:9093,显示下图表示无误~
在这里插入图片描述

[root@nfs prom_alert]# ls
alertmanager                            prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
alertmanager-0.25.0.linux-amd64.tar.gz
[root@nfs prom_alert]# tar xf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz 
[root@nfs prom_alert]# mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 prometheus-webhook-dingtalk
[root@nfs prom_alert]# ls
alertmanager                            prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
alertmanager-0.25.0.linux-amd64.tar.gz  webhook-dingtalk
[root@nfs prom_alert]# cd prometheus-webhook-dingtalk
[root@nfs webhook-dingtalk]# ls
config.example.yml  contrib  LICENSE  prometheus-webhook-dingtalk
[root@nfs webhook-dingtalk]# cp config.example.yml config.yml
[root@nfs alertmanager]# pwd
/prom_alert/alertmanager

在这里插入代码片

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

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

相关文章

08.JavaWeb-SpringMVC

2.SpringMVC Spring框架是一个开源的轻量级框架&#xff0c;SpringMVC是Spring的一个子框架 2.1SpringMVC工作机制 2.1.1 DispatcherServlet前端控制器 【不需要程序员开发】 作用&#xff1a;作为接受请求&#xff0c;响应结果&#xff0c;相当于转发器&#xff0c;中央处理…

『Jenkins』最新版Jenkins安装与Git集成—CentOS 7安装的详细教程

&#x1f4e3;读完这篇文章里你能收获到 图文形式安装Jenkins在Jenkins集成Git并进行的配置感谢点赞收藏&#xff0c;避免下次找不到~ 文章目录 一、准备工作1. 安装Java Development Kit (JDK 11) 二、安装Jenkins1. 下载和安装最新版的Jenkins2. 启动Jenkins服务3. 将Jenkin…

【线性代数】

求解线性方程组 右乘向量/矩阵 把左边的矩阵拆成一个个列向量&#xff0c;右边的向量表示对左边列向量组的线性组合。 [ c o l 1 c o l 2 c o l 3 ] [ 3 4 5 ] [ 3 c o l 1 4 c o l 2 5 c o l 3 ] \left[\begin{array}{c} col_{1} & col_{2} & col_{3} \end{array}\…

类的三大特性——>封装

目录 理论知识 数据抽象&#xff1a; 封装&#xff1a; 细节知识 访问控制与封装 访问控制 STL使用封装 理论知识 类的基本思想是数据抽象、和封装。 数据抽象&#xff1a; 是一种依赖接口和实现分离的一种编程技术&#xff1a; 接口&#xff1a;包括用户所能执行的操…

点燃创作灵感:Prompt 实践指南揭秘!让 ChatGPT 更智能的六种策略(上)

在和 ChatGPT 对话中&#xff0c;Prompt 提示词的选择&#xff0c;如果遵循以下六种策略&#xff0c;我们将获得更好、更符合要求的回答。 这些策略&#xff0c;后几种更适合在编程调用 ChatGPT API 时使用&#xff0c;不过也适用直接和 ChatGPT 对话&#xff0c;让它更好的理解…

【LeetCode】HOT 100(7)

题单介绍&#xff1a; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识算法与数据结构的新手和想要在短时间内高效提升的人&#xff0c;熟练掌握这 100 道题&#xff0c;你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

C语言之基于链表实现排序

题目&#xff1a;通过链表实现从小到大进行排序 代码&#xff1a; #include <stdio.h> #include <stdlib.h> #define N 9//通过链表实现从小到大排序 typedef struct node {int data;struct node *next; } NODE;//fun函数实现是将头结点的单向链表节点…

chatgpt赋能python:Python怎么倒序输出中文字典?

Python怎么倒序输出中文字典&#xff1f; 作为一门高效、易上手的编程语言&#xff0c;Python在数据处理、科学计算、机器学习等领域都有广泛应用。而对于SEO工程师来说&#xff0c;Python也是一款非常实用的工具。那么今天&#xff0c;我们就来探讨一下Python怎么倒序输出中文…

Sqlite 比较,安装,使用,个人总结

文章目录 什么是sqlite&#xff0c;和别的数据库有什么差别&#xff1f;sqlite介绍什么是边缘存储&#xff1f; sqlite存储上限sqlite和别的数据库的区别 Sqlite本地安装sqlite 在C# .net webapi 软件中的使用 什么是sqlite&#xff0c;和别的数据库有什么差别&#xff1f; sq…

【JavaSE】Java(五十七):核心要点总结

文章目录 1. HashMap 的实现原理2. Set 有哪些实现类3. HashSet 的实现原理4. 如何实现数组和List之间的转换5. Java中的迭代器 1. HashMap 的实现原理 HashMap 是一种基于哈希表的数据结构&#xff0c;它的实现原理简单来说就是将键值对存储在一个数组中&#xff0c;并通过哈希…

深入理解深度学习——注意力机制(Attention Mechanism):自注意力(Self-attention)

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;基础知识 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;注意力汇聚与Nadaraya-Watson核回归 注意力机制&#…

强化服务器安全!CentOS 7如何使用fail2ban防范SSH暴力破解攻击?

前言 本文主要讲解centos7操作系统下&#xff0c;如何使用fail2ban防范SSH暴力破解。 &#x1f3e0;个人主页&#xff1a;我是沐风晓月 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是沐风晓月&#xff0c;阿里云社区博客专家 &#x1f609;&#x1f609; &#x1…

如何使用Python生成跑马灯视频

在这篇博客中&#xff0c;我将向您展示如何使用Python语言生成一个简单的跑马灯视频。我们将使用OpenCV和Pillow两个库来实现这个功能。 安装依赖库 首先&#xff0c;我们需要安装opencv-python和Pillow两个库。您可以使用以下命令来安装它们&#xff1a; pip install opencv…

Navicat 设置PostgreSQL数据库的表主键ID自增

文章目录 1 新建序列1.1 手动新建1.2 SQL语句新建 2 设置主键自增 1 新建序列 1.1 手动新建 选择 其他->序列 选择一个模式&#xff08;例如public&#xff09;&#xff0c;然后选择新增序列。 设置序列参数 刷新序列列表即可看到新建的序列 注意&#xff1a; 序列的最大…

C语言实现2048小游戏

大部分同学学习C语言编程以后不知道能通过什么样的项目才可以锻炼自己的思维功力&#xff0c;2048相信大家都应该熟悉&#xff0c;不管是手机上还是网页版的相信大家都玩过,这个简单的控制台版本的游戏是我曾经在伟易达上班时一个嵌入式应用游戏部门的大佬设计的&#xff0c;适…

简单使用gateway,以及gateway所需要的依赖

先声明&#xff0c;使用gateway需要有一定的SpringCloud的基础&#xff0c;再来使用时会看的很明白&#xff0c;使用前需要先开nacos服务&#xff0c;&#xff0c;确定无误。 下面直接开始 首先我们需要两个原来通信的模块&#xff0c;这里分别是service-const与service-provid…

《导航帖》-全系列软考A计划

专栏分享 点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 文章目录 &#x1f449;关于作者&#x1f449;前提&#x1f449;链接追踪&#x1f449…

高通 Camera HAL3:项目开发技术点总结

做高通 Camera HAL3开发的一些技术点的总结、整理。 做个记录&#xff0c;方便后续查阅。 1.目录、so、配置文件 productName是项目名 out Target路径&#xff1a;\out\target\product\productName\chi-cdk&#xff1a;\vendor\qcom\proprietary\chi-cdk\ldc node&#xff1…

【Hive】安装配置及导入Hdfs数据

知识目录 一、写在前面&#x1f495;二、Hive的安装与配置✨2.1 Hive简介2.2 上传与解压2.3 拷贝MySQL驱动2.4 hive-site.xml文件2.5 启动hive 三、导入Hdfs数据到Hive✨3.1 修改Hadoop集群配置3.2 初始化3.3 创建表3.4 从Hdfs导入数据 四、总结撒花&#x1f60a; 一、写在前面…

【Leetcode】贪心 区间问题 | 用最小数量的箭引爆气球、无重叠区间、划分字母区间、合并区间

452 用最少数量的箭引爆气球 更像一个重叠区间问题&#xff0c;贪心策略&#xff1a;应该在重叠最多处射出。 按区间左端点递增序进行排序&#xff0c;左端点相同时&#xff0c;按右端点递增序排序。 现在欲射穿气球 i i i&#xff0c;当发现相邻的两个区间有重叠时&#xff…