欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > grafana 和 prometheus

grafana 和 prometheus

2024/10/24 1:59:07 来源:https://blog.csdn.net/qq_41893505/article/details/143127870  浏览:    关键词:grafana 和 prometheus

1. 监控 mysql 数据库

使用 Grafana 配合 Prometheus 对 MySQL 数据库进行监控的步骤主要包括配置 Prometheus、MySQL Exporter 和 Grafana。以下是详细的步骤:

1. 安装 MySQL Exporter

MySQL Exporter 是一个 Prometheus 的 Exporter,用于从 MySQL 数据库收集指标。

安装步骤:

1. 下载 MySQL Exporter

wget https://github.com/prometheus/mysqld_exporter/releases/latest/download/mysqld_exporter-<version>.linux-amd64.tar.gz
tar -xzf mysqld_exporter-<version>.linux-amd64.tar.gz
cd mysqld_exporter-<version>.linux-amd64
  1. 配置 MySQL 用户: 创建一个用于监控的 MySQL 用户,并授予适当的权限:
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'your_password';
GRANT SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;
  1. 运行 MySQL Exporter: 使用配置文件启动 MySQL Exporter,指定 MySQL 的连接信息:
./mysqld_exporter --config.my-cnf=/path/to/.my.cnf

在 ~/.my.cnf 文件中配置 MySQL 的连接信息:

[client]
user=exporter
password=your_password
  1. 确认 Exporter 启动: 访问 http://localhost:9104/metrics 确认 MySQL Exporter 正常工作,应该可以看到 Prometheus 格式的指标数据。

2. 配置 Prometheus

Prometheus 需要配置 MySQL Exporter 作为数据源。

配置步骤:

  1. 安装 Prometheus(如果尚未安装):
wget https://github.com/prometheus/prometheus/releases/latest/download/prometheus-<version>.linux-amd64.tar.gz
tar -xzf prometheus-<version>.linux-amd64.tar.gz
cd prometheus-<version>.linux-amd64
  1. 编辑 prometheus.yml 配置文件: 在 prometheus.yml 中添加 MySQL Exporter 的 scrape 配置:
scrape_configs:- job_name: 'mysql'static_configs:- targets: ['localhost:9104']
  1. 启动 Prometheus
./prometheus --config.file=prometheus.yml
  1. 访问 Prometheus Web 界面: 打开浏览器,访问 http://localhost:9090,你可以在“Targets”页面查看 MySQL Exporter 是否被成功抓取。

3. 安装和配置 Grafana

Grafana 用于可视化 Prometheus 中的数据。

安装步骤:

  1. 下载并安装 Grafana(可以使用包管理工具或直接从官网下载安装):
wget https://dl.grafana.com/oss/release/grafana-<version>.linux-amd64.tar.gz
tar -zxvf grafana-<version>.linux-amd64.tar.gz
cd grafana-<version>
  1. 启动 Grafana
./bin/grafana-server web
  1. 访问 Grafana Web 界面: 打开浏览器,访问 http://localhost:3000(默认用户和密码都是 admin)。

  2. 添加 Prometheus 数据源

    • 登录后,点击左侧菜单中的“Configuration”图标,然后选择“Data Sources”。
    • 点击“Add data source”,选择“Prometheus”。
    • 在 URL 字段输入 http://localhost:9090,然后点击“Save & Test”以验证连接。

4. 创建监控仪表板

  1. 添加新的仪表板
    • 点击左侧菜单中的“Create”图标,然后选择“Dashboard”。
    • 点击“Add new panel”。
  2. 配置面板
    • 在“Query”部分选择 Prometheus 数据源,并输入你想监控的 MySQL 指标,例如:
    • 配置图表类型、标题等。
  3. 保存仪表板
    • 点击右上角的“Save dashboard”按钮,命名并保存你的仪表板。

5. 监控和调整

通过仪表板,你可以实时监控 MySQL 数据库的各种指标。根据需要调整面板和查询,添加更多监控项。

总结

通过上述步骤,你可以成功使用 Grafana 配合 Prometheus 对 MySQL 数据库进行监控。你可以根据业务需求和数据库规模,灵活调整监控指标和仪表板布局。

2. 监控业务代码指标

比如说:要在Spring Boot项目中使用 Prometheus 和 Grafana 监控 Kafka 的消息收发数量

1. 添加依赖
略。

2. 配置应用程序:在application.yml中配置Prometheus的端点和Kafka的属性。

management:endpoints:web:exposure:include: prometheusmetrics:export:prometheus:enabled: truespring:kafka:bootstrap-servers: localhost:9092consumer:group-id: my-groupauto-offset-reset: earliest

3. 创建Kafka生产者和消费者

@Service
public class KafkaService {private final KafkaTemplate<String, String> kafkaTemplate;private final Counter messagesSent;private final Counter messagesReceived;public KafkaService(KafkaTemplate<String, String> kafkaTemplate, MeterRegistry meterRegistry) {this.kafkaTemplate = kafkaTemplate;this.messagesSent = meterRegistry.counter("kafka_messages_sent");this.messagesReceived = meterRegistry.counter("kafka_messages_received");}public void sendMessage(String topic, String message) {kafkaTemplate.send(topic, message).addCallback((RecordMetadata metadata) -> messagesSent.increment(),(Throwable throwable) -> {// 处理发送失败的情况});}@KafkaListener(topics = "your-topic", groupId = "my-group")public void listen(String message) {messagesReceived.increment();// 处理接收到的消息}
}

4. 启动应用
运行你的Spring Boot应用,并确保 Prometheus 可以访问到 /actuator/prometheus 端点。

5. 配置Prometheus:在Prometheus的配置文件中添加你的Spring Boot应用作为目标

scrape_configs:- job_name: 'my-spring-boot-app'static_configs:- targets: ['localhost:8080']  # 修改为你的Spring Boot应用地址

6. 使用Grafana进行可视化:在Grafana中添加Prometheus数据源,使用PromQL查询如下指标来监控Kafka消息的发送和接收:

  • 发送消息数量:kafka_messages_sent
  • 接收消息数量:kafka_messages_received

这样,你就可以在Grafana中监控Kafka的消息收发数量了!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com