汇编做网站,不收费的企业查询网站,网站内链怎么优化,燕郊房价2023年最新房价走势【Linux】PrometheusGrafana 一、Prometheus#xff08;普罗米修斯#xff09;1、Prometheus简述2、Prometheus特点3、Prometheus生态组件4、Prometheus工作原理 二、部署Prometheus1、系统架构2、部署Prometheus3、修改配置文件4、配置系统启动文件 三、部署 Node Exporter … 【Linux】PrometheusGrafana 一、Prometheus普罗米修斯1、Prometheus简述2、Prometheus特点3、Prometheus生态组件4、Prometheus工作原理 二、部署Prometheus1、系统架构2、部署Prometheus3、修改配置文件4、配置系统启动文件 三、部署 Node Exporter 监控系统级指标1、下载安装包2、配置启动文件3、启动 四、监控远程MySQL1、下载安装包2、安装mysqld_exporter组件3、配置服务端 五、Grafana平台部署1、Grafana简介2、Grafana起源与初衷3、Grafana部署4、配置数据源5、导入模板6、数据源做数据展示7、导入监控模板 一、Prometheus普罗米修斯
1、Prometheus简述
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库TSDB)基于Go语言开发是Google BorgMon监控系统的开源版本。Prometheus在2016年加入了云原生计算基金会成为Kubernetes之后的第二个项目。
Prometheus是一个开源的监控系统它可以帮助用户监控各种不同类型的系统和应用程序。Prometheus采用的是pull模型它定期从目标系统中拉取指标数据在本地数据库中。这些指标数据可以用于生成图表、警报和报告以帮助用户了解他们系统的运作状态和性能表现。Prometheus通过多种数学算法能实现强大的监控需求原生支持k8s服务发现能监控容器的动态变化并且结合Grafana能绘出漂亮图形然后使用Altermanager或Grafana实现报警。
2、Prometheus特点 多维数据模型由度量名称和键值对标识的时间序列数据 时间序列数据按照时间顺序记录系统、设备状态变化的数据每个数据称为一个样本服务器指标数据、应用程序性能监控数据、网络数据等都是时序数据 内置时间序列Time Series数据库Prometheus 外置的远端存储通常会用InfluxDB、OpenTSDB 等 promQL 一种灵活的查询语言可以利用多维数据完成复杂查询 基于 HTTP 的 pull拉取方式采集时间序列数据 同时支持 PushGateway 组件收集数据 通过静态配置或服务发现发现目标 支持作为数据源接入 Grafana
3、Prometheus生态组件
Prometheus Server用于收集、存储和查询监控数据的核心组件。它定期从配置的目标中拉取指标数据并将其存储在本地的时间序列数据库中。
Alertmanager用于处理和发送警报通知的组件。Alertmanager可以根据配置的规则对监控数据进行分析并在触发警报条件时发送通知。
Exporters用于将各种服务和应用程序的指标数据转换成Prometheus可读取的格式。
Client Libraries用于将应用程序的指标数据暴露给Prometheus Server的库。Prometheus提供了多种语言的客户端库方便开发人员集成监控功能到他们的应用程序中。
Service Discovery服务发现用于动态发现待监控的 TargetPrometheus 支持多种服务发现机制文件、DNS、Consul、Kubernetes 等等。 服务发现可通过第三方提供的接口Prometheus 查询到需要监控的 Target 列表然后轮询这些 Target 获取监控数据。该组件目前由 Prometheus Server 内建支持
Grafana一个开源的数据可视化工具可以与Prometheus集成用于创建仪表板和图表展示监控数据。
4、Prometheus工作原理
●Prometheus Server 基于服务发现Service Discovery机制或静态配置获取要监视的目标Target并通过每个目标上的指标 exporter 来采集Scrape指标数据
●Prometheus Server 内置了一个基于文件的时间序列存储来持久存储指标数据用户可使用 PromQL 接口来检索数据也能够按需将告警需求发往 Alertmanager 完成告警内容发送
●一些短期运行的作业的生命周期过短难以有效地将必要的指标数据供给到 Server 端它们一般会采用推送Push方式输出指标数据 Prometheus 借助于 Pushgateway 接收这些推送的数据进而由 Server 端进行抓取
二、部署Prometheus
1、系统架构 2、部署Prometheus
直接访问官网
①地址https://prometheus.io/download/
在服务器上直接下载
②地址https://prometheus.io/download/ wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz[rootPrometheus prometheus]# setenforce 0
[rootPrometheus prometheus]# systemctl disable --now firewalld.service
[rootPrometheus ~]# tar -xvf prometheus-2.53.0.linux-amd64.tar.gz
[rootPrometheus ~]#mv prometheus-2.53.0.linux-amd64 /usr/local/prometheus3、修改配置文件
[rootPrometheus prometheus]# cp prometheus.yml prometheus.yml.bak## 第六行添加
scrape_timeout: 10s ##采集超时时间
## 最后一行localhost改为本机的ip其实不改也可以为了分辨建议修改- targets: [172.16.11.209:9090] 4、配置系统启动文件
配置系统启动文件并且设置开机自启动
#进入这个文件默认是没有的直接进入就行
vim /usr/lib/systemd/system/prometheus.service [Unit] #服务单元
DescriptionPrometheus Server
Documentationhttps://prometheus.io
Afternetwork.target #依赖关系[Service]
Typesimple
ExecStart/usr/local/prometheus/prometheus \
--config.file/usr/local/prometheus/prometheus.yml \ #配置文件
--storage.tsdb.path/usr/local/prometheus/data/ \ #数据目录
--storage.tsdb.retention15d \ #保存时间
--web.enable-lifecycle #开启热加载ExecReload/bin/kill -HUP $MAINPID #重载
Restarton-failure[Install]
WantedBymulti-user.target[rootPrometheus prometheus]# systemctl restart prometheus
[rootPrometheus prometheus]# systemctl enable prometheus
[rootPrometheus prometheus]# ss -antp|grep 9090通过浏览器访问http:// 服务器 IP:9090 就可以访问到 Prometheus 的主界面 默认只监控了本机一台点 Status→点 Targets→可以看到只监控了本机 通过 http:// 服务器 IP:9090/metrics 可以查看到监控的数据
三、部署 Node Exporter 监控系统级指标
1、下载安装包
地址https://prometheus.io/download/
监控远程主机被监控端上安装node_Export192.168.10.131组件
1上传所需要软件包到 /opt目录并解压
[rootnode opt]# tar xf node_exporter-1.8.1.linux-amd64.tar.gz
[rootnode opt]# ls
node_exporter-1.8.1.linux-amd64 node_exporter-1.8.1.linux-amd64.tar.gz rh
[rootnode opt]# cd node_exporter-1.8.1.linux-amd64/
[rootnode node_exporter-1.8.1.linux-amd64]# ls
LICENSE node_exporter NOTICE
[rootnode node_exporter-1.8.1.linux-amd64]# mv node_exporter /usr/local/bin/
[rootnode node_exporter-1.8.1.linux-amd64]# 2、配置启动文件
[rootnode ~]# vim /usr/lib/systemd/system/node_exporter.service[Unit]
Descriptionmysqld_exporter
Documentationhttps://prometheus.io/
Afternetwork.target[Service]
Typesimple
ExecStart/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstatExecReload/bin/kill -HUP $MAINPID
Restarton-failure[Install]
WantedBymulti-user.target3、启动
[rootnode ~]# systemctl start node_exporter.service
[rootnode ~]# systemctl enable node_exporter.service
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
[rootnode ~]# ss -natp|grep 9100浏览器访问http://192.168.109.20:9100/metrics 可以看到 Node Exporter 采集到的指标数据通过浏览器访问 http:// 被监控端 IP:9100/metrics 就可以查看到 node_exporter 在被监控端收集的监控信息 点击Metrics可以查看node_exporter 在被监控端收集的监控信息
1修改Prometheus配置文件
vim /usr/local/prometheus/prometheus.yml- job_name: agentstatic_configs:- targets: [192.168.10.131:9100]
[rootPrometheus prometheus]# systemctl restart prometheus.service #修改完后重启服务
[rootPrometheus prometheus]# systemctl status prometheus监测prometheus配置文件是否正确
[rootPrometheus prometheus]#cd /usr/local/prometheus
[rootPrometheus prometheus]# ./promtool check config prometheus.yml成功状态
Checking prometheus.ymlSUCCESS: prometheus.yml is valid prometheus config file syntax失败状态
Checking prometheus.ymlFAILED: parsing YAML file prometheus.yml: 172.16.11.209:9999/cs is not a valid hostname2访问Prometheus服务器刷新
回到 web 管理界面→点 Status→点 Targets→可以看到多了一台监控目标 注也可以在本机安装 node_exporter使用上面的方式监控本机。
四、监控远程MySQL
在被管理机 agent上安装 mysqld_exporter 组件
1、下载安装包
地址https://prometheus.io/download/ 也可在服务器上直接下载
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz2、安装mysqld_exporter组件
[rootagent opt]# tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local
[rootagent opt]# mv /usr/local/mysqld_exporter-0.14.0.linux-amd64/ /usr/local/mysqld_exporter
[rootagent opt]# ls /usr/local/mysqld_exporter/
LICENSE mysqld_exporter NOTICE1 安装mariadb数据库并授权
[rootnode opt]# yum install mariadb\* -y
[rootnode opt]# systemctl start mariadb
[rootnode opt]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[rootnode opt]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type help; or \h for help. Type \c to clear the current input statement.MariaDB [(none)] grant select,replication client,process ON *.* to mysql_monitor192.168.10.131 identified by 123456;
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)] flush privileges;
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)] 2创建一个mariadb配置文件
创建一个mariadb配置文件写上连接的用户名和密码和上面的授权的用户名和密码要对应 3配置启动文件
[rootnode opt]# vim /usr/lib/systemd/system/mysqld_exporter.service[Unit]
Descriptionnode_exporter
Documentationhttps://prometheus.io/
Afternetwork.target[Service]
Typesimple
ExecStart/usr/local/bin/mysqld_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstatExecReload/bin/kill -HUP $MAINPID
Restarton-failure[Install]
WantedBymulti-user.target#启动
systemctl restart mysqld_exporter#设置开机自启
systemctl enable mysqld_exporter#查看端口是否启动9104
netstat -anput | grep 9104第二种启动方式
#进入解压目录
cd /usr/local/mysqld_exporter#挂后台执行 mysqld_exporter
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf/usr/local/mysqld_exporter/.my.cnf #查看端口是否启动
netstat -anput | grep 9104页面访问IP:9104 客户端配置完成
3、配置服务端
[rootPrometheus ~]# vim /usr/local/prometheus/prometheus.yml- job_name: agetn-mysqlstatic_configs: - targets: [192.168.10.131:9104][rootPrometheus ~]# systemctl restart prometheus.service 添加完后重启服务
[rootPrometheus ~]# systemctl restart prometheus.service等待重启完成刷新一下页面如果还是没有可以清除一下缓存试试。 添加成功
五、Grafana平台部署
1、Grafana简介
Grafana是一种开源的数据可视化和监控平台它允许用户通过创建动态仪表板来监视和分析数据。Grafana最初由Torkel Ödegaard于2014年创建旨在为不同数据源提供统一的可视化界面。它支持多种数据源包括但不限于Graphite、Prometheus、Elasticsearch、InfluxDB等。通过Grafana用户可以轻松创建图标、图形和面板以直观和动态的方式展示数据趋势、指标和报警。
随着公司业务的不断发展业务种类的增加、服务器数量的增长和网络环境的复杂以及版本发布频繁从而不可避免带来了线上事故的增多因此需要对服务器进行全方位的监控提前预警急需一个工具来实现解决这个问题而Grafana的出现完美解决了这个问题。 Grafana特点
多数据源支持可以从多种数据源中收集数据并在同一仪表板中进行统一展示。
可视化选项丰富提供了各种图表类型、样式和配置选项用户可以根据需求定制图表。
告警功能支持设置警报规则并在达到特定条件时发送通知。
插件生态系统拥有丰富的插件生态系统用户可以根据需要扩展和定制功能。
社区支持拥有活跃的开发社区提供了丰富的文档、教程和支持资源。
2、Grafana起源与初衷
Grafana的起源可以追溯到2014年由瑞典工程师Torkel Ödegaard创建。当时Torkel是一位开发者他感受到了在处理和展示不同数据源时的困难和不便。他意识到许多组织和开发者都面临着类似的挑战需要从多个数据源中收集数据并以可视化的方式将其呈现出来。
因此Torkel决定创建一个开源的数据可视化平台旨在为用户提供统一的界面和工具帮助他们轻松地监控和分析数据。他的初衷是构建一个灵活、易于使用且功能强大的平台能够满足各种不同场景下的需求。在初始阶段Grafana主要是为了满足Graphite这样的数据存储和可视化工具的需求而创建的。但随着时间的推移Grafana的功能逐渐扩展开始支持更多的数据源如InfluxDB、Prometheus、Elasticsearch等使其成为一个更加通用的数据可视化和监控平台。由于其开放源代码的特性Grafana迅速得到了开发者和用户的欢迎形成了一个活跃的社区。这个社区不断贡献新的功能、插件和改进推动了Grafana的不断发展和壮大。 3、Grafana部署
下载地址https://grafana.com/grafana/download 下载推荐rpm包点击一下就会自动下载或者复制一下粘贴到服务器上也会下载。 如果是直接在服务器执行下载的直接等待下载完成启动即可如果是下载的rpm包就需要上传到服务器上然后使用rpm -ivh grafana-enterprise-9.5.2-1.x86_64.rpm 进行安装 如果是使用的二进制离线包安装的默认是没有系统启动配置文件的所以我们需要加一个
#进入这个文件默认是没有的直接进入就行
vim /usr/lib/systemd/system/grafana.service #将下面的全部写进去
[Unit]
DescriptionGrafana instance
Afternetwork.target[Service]
Typesimple
WorkingDirectory/data/monitor/grafana/
ExecStart/data/monitor/grafana/bin/grafana-server
Restartalways[Install]
WantedBymulti-user.target[rootPrometheus opt]# systemctl start grafana-server.service #启动
[rootPrometheus opt]# systemctl enable grafana-server.service #设置开机自启
[rootPrometheus opt]#ss -anput | grep 3000 #查看端口是否启动3000页面访问 IPport3000
注意默认账号密码为
账号admin
密码admingrafana默认配置文件目录 /etc/grafana/grafana.ini进去需要设置一个新的密码
4、配置数据源 点击保存测试 可以看到刚创建的模板
5、导入模板
点进去选择Dashboards–从中选择任意一个模板这里我选择第二个点击import。 点击名称进入可以查看模板 这里所展示的只是个模板
6、数据源做数据展示
点击右上角加号再点击创建新的仪表板 选择刚刚添加的监控项 在这写了三个条件 再次点击dashboard可以查看到 自定义的监控模块监控的服务端的1、5、15分钟的平均负载一个一个添加比较麻烦我们可以去找一些模板
7、导入监控模板
这里我们使用现成的模板导入即可GitHub上面很多人开发了dashboards模板官方社区上也有很多开源的dashboards模板我们只需要把模板的Copy ID 或者 Download JSON文件导入到grafana即可参考官网免费的dashboards模板。官方模板地址https://grafana.com/grafana/dashboards/进入官网往下拉可以看到选择这几个Data Source 选择Prometheus然后搜索主机监控或者自己定义linux什么的都可以根据自己的需求选择 可以看到右边有Copy ID 和 Download JSON自行选择就行这里我选择复制idjson需要下载 复制好id之后打开在 grafana 页面中 Create - Import 输入面板 ID 号或者上传 JSON 文件点击 Load即可导入监控面板 添加完成后页面视图如下