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
- 配置 MySQL 用户: 创建一个用于监控的 MySQL 用户,并授予适当的权限:
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'your_password';
GRANT SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;
- 运行 MySQL Exporter: 使用配置文件启动 MySQL Exporter,指定 MySQL 的连接信息:
./mysqld_exporter --config.my-cnf=/path/to/.my.cnf
在 ~/.my.cnf 文件中配置 MySQL 的连接信息:
[client]
user=exporter
password=your_password
- 确认 Exporter 启动: 访问 http://localhost:9104/metrics 确认 MySQL Exporter 正常工作,应该可以看到 Prometheus 格式的指标数据。
2. 配置 Prometheus
Prometheus 需要配置 MySQL Exporter 作为数据源。
配置步骤:
- 安装 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
- 编辑 prometheus.yml 配置文件: 在 prometheus.yml 中添加 MySQL Exporter 的 scrape 配置:
scrape_configs:- job_name: 'mysql'static_configs:- targets: ['localhost:9104']
- 启动 Prometheus:
./prometheus --config.file=prometheus.yml
- 访问 Prometheus Web 界面: 打开浏览器,访问 http://localhost:9090,你可以在“Targets”页面查看 MySQL Exporter 是否被成功抓取。
3. 安装和配置 Grafana
Grafana 用于可视化 Prometheus 中的数据。
安装步骤:
- 下载并安装 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>
- 启动 Grafana:
./bin/grafana-server web
-
访问 Grafana Web 界面: 打开浏览器,访问 http://localhost:3000(默认用户和密码都是 admin)。
-
添加 Prometheus 数据源:
- 登录后,点击左侧菜单中的“Configuration”图标,然后选择“Data Sources”。
- 点击“Add data source”,选择“Prometheus”。
- 在 URL 字段输入 http://localhost:9090,然后点击“Save & Test”以验证连接。
4. 创建监控仪表板
- 添加新的仪表板:
- 点击左侧菜单中的“Create”图标,然后选择“Dashboard”。
- 点击“Add new panel”。
- 配置面板:
- 在“Query”部分选择 Prometheus 数据源,并输入你想监控的 MySQL 指标,例如:
- 配置图表类型、标题等。
- 保存仪表板:
- 点击右上角的“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的消息收发数量了!