总览

如果您使用和管理着Kubernetes集群以及您的应用运行在Kubernetes之上,请参考 在K8s中使用grafana-agent

在Windows环境安装和运行grafana-agent

  1. Grafana github releases下载Windows安装文件;
  2. 运行安装文件后,会对grafana-agent进行配置,并注册为Windows服务;
  3. 更详细的配置文档,可以参考;

在Docker中运行grafana-agent

如果您的宿主机上运行有服务,那么使用docker运行grafana-agent 是最快捷的方式。在命令行终端运行以下命令,即可在容器中启动grafana-agent

2. 启动 grafana-agent 容器

  1. docker run \
  2. -v /tmp/agent:/etc/agent/data \
  3. -v /tmp/grafana-agent-config.yaml:/etc/agent/agent.yaml \
  4. -p 12345:12345 \
  5. -d \
  6. grafana/agent:v0.23.0 \
  7. --config.file=/etc/agent/agent.yaml \
  8. --prometheus.wal-directory=/etc/agent/data

上述步骤中,几个需要注意的点:

  • remote_writebasic_auth ,请根据自己的实际情况填写;
  • -p 把容器中的端口12345映射到主机,-d 把容器进程放到后台运行;
  • -v /tmp/agent:/etc/agent/data 是把宿主机的目录 /tmp/agent 映射到容器中 /etc/agent/data,用于 grafana-agent 持久化保存其 WAL(Write Ahead Log) ;
  • -v /tmp/grafana-agent-config.yaml:/etc/agent/agent.yaml 是把 grafana-agent 的配置文件,放置到容器指定的位置,即 /etc/agent/agent.yaml

您可以通过直接 curl http://localhost:12345/metrics 来验证数据的产生是否符合预期,正常情况下会显示如下:

  1. agent_build_info{branch="HEAD",goversion="go1.17.6",revision="36b8ca75",version="v0.23.0"} 1
  2. agent_inflight_requests{method="GET",route="metrics"} 1
  3. agent_metrics_active_configs 1
  4. agent_tcp_connections{protocol="grpc"} 0
  5. agent_tcp_connections{protocol="http"} 2
  6. go_gc_duration_seconds_count 6
  7. go_goroutines 50
  8. log_messages_total{level="debug"} 44
  9. log_messages_total{level="error"} 0
  10. log_messages_total{level="info"} 13
  11. log_messages_total{level="warn"} 0
  12. loki_logql_querystats_duplicates_total 0
  13. loki_logql_querystats_ingester_sent_lines_total 0
  14. net_conntrack_dialer_conn_attempted_total{dialer_name="local_scrape"} 1
  15. net_conntrack_dialer_conn_attempted_total{dialer_name="remote_storage_write_client"} 1
  16. net_conntrack_dialer_conn_closed_total{dialer_name="local_scrape"} 0
  17. net_conntrack_dialer_conn_closed_total{dialer_name="remote_storage_write_client"} 0
  18. net_conntrack_dialer_conn_established_total{dialer_name="local_scrape"} 1
  19. net_conntrack_dialer_conn_established_total{dialer_name="remote_storage_write_client"} 1
  20. process_cpu_seconds_total 11.53
  21. process_max_fds 1.048576e+06
  22. process_open_fds 17
  23. process_resident_memory_bytes 9.4773248e+07
  24. process_start_time_seconds 1.64499076013e+09
  25. process_virtual_memory_bytes 1.356931072e+09
  26. process_virtual_memory_max_bytes 1.8446744073709552e+19
  27. prometheus_interner_num_strings 275
  28. prometheus_interner_string_interner_zero_reference_releases_total 0
  29. prometheus_sd_consulagent_rpc_duration_seconds_sum{call="services",endpoint="agent"} 0
  30. prometheus_sd_consulagent_rpc_duration_seconds_count{call="services",endpoint="agent"} 0
  31. prometheus_sd_dns_lookup_failures_total 0
  32. prometheus_sd_dns_lookups_total 0
  33. prometheus_sd_file_read_errors_total 0
  34. prometheus_sd_file_scan_duration_seconds{quantile="0.5"} NaN

在本机安装运行grafana-agent

如果您的主机上没有docker或者您希望直接把grafana-agent运行在宿主机上,可以依照以下步骤:

1. 下载预先编译好的二进制包

下载地址为: https://github.com/grafana/agent/releases/download/${version}/agent-${platform}-${arch}.zip

  • 其中,version当前为v0.23.0
  • 其中,可下载的platformarch列表如下:
    • linux/amd64
    • linux/arm64
    • linux/armv7
    • linux/armv6
    • darwin/amd64
    • darwin/arm64
    • windows/amd64
    • linux/mipsle
    • freebsd/amd64
  1. # download the binary
  2. curl -SOL "https://github.com/grafana/agent/releases/download/v0.23.0/agent-linux-amd64.zip"
  3. # extract the binary
  4. gunzip ./agent-linux-amd64.zip
  5. # make sure it is executable
  6. chmod a+x "agent-linux-amd64"

3. 启动 grafana-agent

  1. nohup ./agent-linux-amd64 \
  2. -config.file ./agent-cfg.yaml \
  3. -metrics.wal-directory ./data \
  4. &> grafana-agent.log &
  • 您也可以通过访问 grafana-agent 所暴露的 API ,获取到 targets 列表来确认是否符合预期,操作命令为 curl http://localhost:12345/agent/api/v1/targets

至此,我们已经成功的将 grafana-agent 运行起来,并且开始收集 grafana-agent 自身的 metrics 指标。下一步,我们讲述如何通过 grafana-agent 的内嵌的各种 exporter 来采集主机、进程、MySQL等监控指标。