从 Grafana 获取 Slack 警报。但它的格式不太好。有没有办法在 Grafana 的 slack 中自定义通知?我正在使用节点导出器导出指标。仪表板从https://grafana.com/grafana/dashboards/1860下载
如何自定义通知,例如:
标题:服务器上的 CPU 负载警报
实例 IP:192.xxxx 值:CPU 使用率 90% 优先级:高
随附了 slack 中的示例输出。
grafana prometheus grafana-api grafana-alerts prometheus-node-exporter
我在Centos上配置了prometheus,版本详情如下。
prometheus-2.5.0.linux-386
Run Code Online (Sandbox Code Playgroud)
我在 prometheus.yml 配置文件中添加了两个目标,所有服务器节点导出器都在运行。配置如下,
scrape_configs:
- job_name: "node"
scrape_interval: "15s"
target_groups:
- targets: ['192.168.x.x:9100','192.168.x.y:9100']
Run Code Online (Sandbox Code Playgroud)
但是在 prometheus UI Tragets 中只显示单个节点其他没有显示。如果我删除一个节点,则显示现有节点。如何监控多个节点。但是在 Grafana 仪表板中显示Multiple Series Error。
有一个非常简单的问题:从哪里跑步最好node-exporter?直接在主机内部还是来自容器?
两种解决方案的优缺点是什么?开发人员的最佳实践是什么?从使用指南来看我不清楚!
我已经阅读了 3 天,甚至配置了一组容器来测试它们,但我有疑问。
据我了解,Prometheus + Node exporter 的架构是基于:
问题 1:
假设您需要每 15 秒 CPU 指标、每 5m 硬盘指标、每 1m 网络、每 30 秒处理一次。
由于普罗米修斯决定了抓取间隔,如何配置为仅抓取这些值?
问题2:
假设您需要 1 个 prometheus 实例和 3 个节点导出器,不同的公共服务器。我没有看到有关节点导出器及其安全性的任何信息。HTTP 端点是公共的。
如何安全地从我的 3 个服务器查询指标?
问题 3:
我不知道我是否遗漏了什么。但是,例如,将其与 Telegraf 进行比较,后者将指标发送到数据库。因此,Telegraf 充当“节点导出器”。我只需要保护数据库连接(仅暴露端口)。
可以将节点导出器配置为每 X 次向普罗米修斯服务器发送一组指标吗?(所以我不必在每个公共服务器中公开一个公共端口,只是普罗米修斯服务器)我明白“pushgateway”是为了那个?如何更改节点导出器行为?
您是否向我推荐了任何其他可以满足我需求的架构?(1个master,多个slave来查询指标)
为了监控小型家庭服务器,我在 docker 上运行 prometheus 和 node_exporter (以及 grafana 和其他一些东西)(类似于https://github.com/stefanprodan/dockprom)。我在桥接的 docker 网络上运行 prometheus。对于node_exporter,我有两个影响node_network_transmit_bytes_total指标的选项。
node_network_transmit_bytes_total指标仅包含 docker 的虚拟内部 NIC,而不包含被监控机器的物理 NIC。/proc这是从主机到/host/proc容器的依赖绑定安装(具体来说,我的物理接口是,在主机上
eno0可见):/proc/net/dev$ docker exec -it nodeexporter2 cat /host/proc/net/dev | awk '{print $1}'
Inter-|
face
eth0:
lo:
Run Code Online (Sandbox Code Playgroud)
localhost意思是普罗米修斯本身docker exec -it prometheus wget -O - http://actual-hostname:9100/metrics有效(并使用我主机的 LAN IP,192.168.xx),但配置actual-hostname:9100为 prometheus 目标会出现错误 ( Get …我正在使用 Prometheus 来监控我的 Kubernetes 集群。我已经在单独的命名空间中设置了 Prometheus。我有多个命名空间并且多个 pod 正在运行。每个 pod 容器在这个端点公开一个自定义指标,:80/data/metrics. 我正在获取 Pods CPU、内存指标等,但如何配置 Prometheus 以从:80/data/metrics每个可用的 Pod 中提取数据?我已经使用本教程来设置 Prometheus,链接
我对普罗米修斯很陌生,所以这可能是一个愚蠢的问题 - 但就这样吧。
当我请求 node_memory_Active_bytes 和 node_memory_MemTotal_bytes 时,我得到:
node_memory_Active_bytes{instance="10.1.4.9:9100",job="node-exporter"} 3257815040
(..and..)
node_memory_MemTotal_bytes{instance="10.1.4.9:9100",job="node-exporter"} 16509550592
Run Code Online (Sandbox Code Playgroud)
但是,在盒子上,如果我运行free -b,我会得到以下信息:
$ free -b
total used free shared buff/cache available
Mem: 16509550592 2264915968 6787731456 59121664 7456903168 14140530688
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
我正在努力将普罗米修斯的内存视图与实际机器的视图进行映射。我确信我一定做错了什么,但我不知道是什么。总体匹配,但免费
由于我的服务器托管在 VPS 中,因此我没有可以为 node_exporter(版本 0.17.0)提供磁盘统计信息的 /proc/diskstats。所以我最终得到了重复的错误消息:
错误[0037]错误:diskstats收集器在0.000034s后失败:无法获取diskstats:打开/proc/diskstats:没有这样的文件或目录source =“collector.go:132”
我想告诉导出器忽略 diskstats 收集器,但无法做到这一点。因为仅放置标志 --collector.diskstats 不会执行任何操作,因为它是默认启用的。
如何启动导出器,同时告诉它忽略collector.diskstats(或任何其他收集器)?
太感谢了 !
Node Exporter 始终在 localhost:9100 上的本地计算机上运行,即使我不使用终端执行它并遵循以下错误消息:
FATA[0000] 监听 tcp :9100: 绑定: 地址已在使用中 source="node_exporter.go:172"
据此我可以了解到该端口号已被另一个应用程序使用,但问题是我没有在那里托管任何内容。这就是netstat | grep 9100 给出:
tcp 0 0 本地主机:60232 本地主机:9100 已建立 tcp6 0 0 本地主机:9100 本地主机:60232 已建立
我需要一个包含普罗米修斯导出器(例如节点导出器)的所有指标和相应描述的表。
一些导出器在其文档中具有这样的表,例如 cadvisor: https: //github.com/google/cadvisor/blob/master/docs/storage/prometheus.md#prometheus-container-metrics但节点导出器没有这样的表包含指标和描述的详细表格。
所有指标的列表都可以在这里找到http://localhost:9090/api/v1/label/__name__/values,但是描述是什么?还有其他方法可以实现这一目标吗?
prometheus ×10
docker ×2
containers ×1
grafana ×1
grafana-api ×1
kubernetes ×1
linux ×1
promql ×1
terminal ×1