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: prometheus
  metrics:
    export:
      prometheus:
        enabled: true

spring:
  kafka:
    bootstrap-servers: localhost:9092
    consumer:
      group-id: my-group
      auto-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的消息收发数量了!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部