通过更新的Grafana Cloud的MySQL集成收集和可视化MySQL服务器日志

178 阅读2分钟

今天,我们很高兴地宣布,MySQL集成已经得到了一次重要的更新,其中包括一个新的预建MySQL日志仪表板和Grafana代理配置,以查看和收集MySQL服务器日志。

该集成已经可以在Grafana Cloud中使用,我们的平台将你所有的指标、日志和痕迹与Grafana结合起来,实现全栈观察。

为什么你需要日志

在所有可观察性的三个支柱中,指标是使用最广泛的。它们比日志追踪更容易收集和存储。它们对于检测问题和了解系统性能是非常好的,一目了然。然而,指标往往不足以理解是什么导致了问题。

另一方面,一旦你用指标缩小了问题的时间和地点,日志可以告诉你更多关于根本原因的细节。

开始使用MySQL集成

Grafana Agent是通用的收集器,是你向Grafana云堆栈发送不同遥测数据的全部需要,包括度量、日志和跟踪。

如果你已经使用嵌入式Agent集成来收集Prometheus指标,你的Agent配置可能看起来像这样:

integrations:
  prometheus_remote_write:
    - url: https:///api/prom/push
  mysqld_exporter:
    enabled: true
    instance: mysql-01
    data_source_name: "root:put-password-here@(localhost:3306)/"

添加MySQL日志只是添加Grafana Agent config.yml的一些额外行:

metrics:
  wal_directory: /tmp/wal
logs:
  configs:
  - name: agent
    clients:
    - url: https:///loki/api/v1/push
    positions:
      filename: /tmp/positions.yaml
    target_config:
      sync_period: 10s
    scrape_configs:
    - job_name: integrations/mysql 
      static_configs:
        - labels:
            instance: mysql-01
            job: integrations/mysql
            __path__: /var/log/mysql/*.log
      pipeline_stages:
        - regex:
            expression: '(?P.+) (?P[\d]+) \[(?P.+?)\]( \[(?P.+?)\] \[(?P.+?)\])? (?P.+)'
        - labels:
            label:
            err_code:
            subsystem:
        - drop:
            expression: "^ *$"
            drop_counter_reason: "drop empty lines"

integrations:
  prometheus_remote_write:
    - url: https:///api/prom/push
  mysqld_exporter:
    enabled: true
    instance: mysql-01
    data_source_name: "root:put-password-here@(localhost:3306)/"
    relabel_configs:
      - source_labels: [__address__]
        target_label: job
        replacement: 'integrations/mysql'

上面的额外配置通过使用嵌入式PromtailAgent来定位和解析MySQL服务器日志。

最关键的配置部分是确保日志和指标的标签jobinstance 互相匹配。这确保我们可以快速地从图表潜入到相应的日志,以了解实际发生的更多细节。

你可以在我们的MySQL整合文档中找到更多关于配置MySQL整合的信息。

使用MySQL日志仪表板开始监控

除了预制仪表盘以及指标和警报外,Grafana云的MySQL集成现在还捆绑了一个新的MySQL日志仪表盘,当你需要更深入地了解你的MySQL服务器发生了什么时,可以从MySQL概览仪表盘快速访问。

这里应该有一个视频,但由于某些原因,没有。要么是我们输入了错误的ID(哎呀!),要么是Vimeo被关闭了。如果是后者,我们希望他们会很快恢复运行。在这期间,请查看我们的博客

需要注意的是,如果你从一个仪表板跳到另一个,MySQL实例的上下文和时间间隔将保持不变。