小编lut*_*zky的帖子

docker 中的 Prometheus node_exporter:主机网络与主机名

为了监控小型家庭服务器,我在 docker 上运行 prometheus 和 node_exporter (以及 grafana 和其他一些东西)(类似于https://github.com/stefanprodan/dockprom)。我在桥接的 docker 网络上运行 prometheus。对于node_exporter,我有两个影响node_network_transmit_bytes_total指标的选项。

  • 使用与 prometheus 相同的桥接 docker 网络
    • 优点:得益于 docker 的内部 DNS,nodeexporter 可以直接通过名称进行寻址
    • 缺点:该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)
  • 对 NodeExporter 使用主机模式网络
    • Pro:所有网卡,包括物理主机网卡,都是可见的
    • 缺点:普罗米修斯似乎没有一种干净的方法来解决节点导出器的问题:
      • localhost意思是普罗米修斯本身
      • 主机的主机名似乎无法访问?运行docker exec -it prometheus wget -O - http://actual-hostname:9100/metrics有效(并使用我主机的 LAN IP,192.168.xx),但配置actual-hostname:9100为 prometheus 目标会出现错误 ( Get …

docker docker-compose prometheus prometheus-node-exporter

8
推荐指数
1
解决办法
5530
查看次数

使用-O3编译时出现奇怪的段错误

以下代码在Debian 7上的g ++ 4.7.2-5上编译并正常工作.

#include <iostream>
#include <string.h>

using namespace std;

class mystring {
  char * buf;
  static char * dupbuf(const char * buf) {
    char * result = new char[strlen(buf) + 1];
    strcpy(result, buf);
    return result;
  }

  public:
    mystring(const char * o)
    : buf(dupbuf(o)) {}

    ~mystring() { delete[] buf; }
    mystring(const mystring &) = delete;
    mystring & operator=(const mystring&) = delete;

    void write(ostream & o) const {
      if (!buf) { exit(1); } // remove me
      o << buf;
    } …
Run Code Online (Sandbox Code Playgroud)

c++ gcc gcc4.7

1
推荐指数
1
解决办法
129
查看次数