背景

新增两台物理机用于压测,为了查看资源使用情况,需要对服务器进行监控,所以安装prometheus+grafana来监控服务。

准备

  • 机器:

    机器1机器2
    192.168.1.103192.168.1.102
    mock服务,压测脚本业务服务
    prometheus+ grafana+node-exporter+cadvisornode-exporter+cadvisor

说明:

   cadvisor: 用于收集容器的信息
   node-exporter: 用于收集机器主机的信息
   prometheus:分别把node-exporter和cadivsor的数据统一集合
   grafana: 页面web展示
  • 同步时间
    因为物理机是新装的centos7.9的系统,本地时间和windows的时间不一致,会导致后续的grafana不能拉取到数据no data. 同步网络时间很重要。 date 查看时间

    安装ntpd
    yum install -y ntpd 
    
    systemctl enable ntpd
    systemctl  start ntpd 
    systemctl status ntpd 
    同步时间
    ntpdate -u ntp.sjtu.edu.cn 
  • 关闭防火墙或者开放相应的端口 systemctl status firewalld 查看防火墙情况
  • 机器的网口名要一致
    目前我的两台机器网口名一个是:p2p1, 一个是:enp3s0. 导致grafana页面填写收集的表达式device不能统一,很麻烦。
    node_network_receive_bytes_total{instance=~'$node', device="enp3s0", job="host"}
    ifconfig 查看网口名

node_network_speed_bytes 查看网卡速率,是百兆还是千兆网卡,我的网卡是12.5MB/s,百兆网卡。

开始部署

  • node-exporter
docker run  -v "/proc:/host/proc" -v  "/sys:/host/sys" -v "/:/rootfs" --net=host --restart=always --name node-exporter prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

说明: node-exporter一定要以host模式安装,bridge模式,不能收集到网口的数据。

  • cadvisor
    docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys/sys:ro --volume=/home/docker-file/:/var/lib/docker:ro --volume=/dev/disk:/dev/disk:ro --net=host --detach=true --name=cadvisor --restart=always google/cadvisor:latest

说明: --volume=/home/docker-file:/var/lib/docker 这个指向的是本地docker服务运行的路径,我这里是指向了/home/docker-file路径,如果没有改动的话就是/var/lib/docker。df -h 可以查看路径。

  • prometheus
    docker run -d -v /home/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml --restart=always --net=host --name=prometheus prom/prometheus

prometheus.yaml

global:
   scrape_interval: 15s
   evaluation_interval: 15s
   external_labels: 
     monitor: 'edc-lab-monitor'

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['192.168.1.103:9090']
  
  - job_name: 'host' 
    static_configs:
      - targets: ['192.168.1.102:9100', '192.168.1.103:9100']
  
  - job_name: 'container'
    static_configs:
      - targets: ['192.168.1.102:8080', '192.168.1.103:8080']  

可以通过192.168.1.103:9090查看prometheus的数据收集情况,
在搜索框中搜索node_network_receive_bytes_total 可以查看网口进来的数据。

iwEcAqNwbmcDAQTRBs4F0QN0BrCAqGyAKN9rZgTkNElyAJEAB9MAAAAA4ee2DggACaJpbQoAC9IAAU8j.png_720x720q90.jpg

  • grafana
    docker run -d -i -p 3000:3000 -e "GF_SERVER_ROOT_URL=http://grafana.server.name" -e "GF_SECURITY_ADMIN_PASSWORD=admin123" --restart=always --name=grafana grafana/grafana

GF_SECURITY_ADMIN_PASSWORD:web登陆admin的密码

登陆grafana

http://192.168.1.103:3000/login 输入用户名: admin 密码:admin123

  1. 添加data sources

选中prometheus
iwEcAqNwbmcDAQTRBuEF0QMsBrBLBx0TMfgQFQTkNQZrgLIAB9MAAAAA4ee2DggACaJpbQoAC9IAAWNq.png_720x720q90.jpg
填写http连接:http://192.168.1.103:9090 然后点击save and test ok的话,数据添加成功,不成功,检查服务或者防火墙等。

iwEcAqNwbmcDAQTRBQAF0QOUBrAOC-UVeqKscwTkNR6kwLIAB9MAAAAA4ee2DggACaJpbQoAC9IAAS21.png_720x720q90.jpg

  1. 添加grafana模版:
    点击左侧的“Home”-->Dashboards。在New按键下,选择import
    iwEcAqNwbmcDAQTRByYF0QNtBrDTuYI481O0RQTkNmAywKAAB9MAAAAA4ee2DggACaJpbQoAC9IAAWBJ.png_720x720q90.jpg
    常用的模版是9276,193, 315, 6139,3146等,其他的可以在grafana官网上查找。
    iwEcAqNwbmcDAQTRA00F0QL_BrBeP6HCd0Y14gTkNnt2wKAAB9MAAAAA4ee2DggACaJpbQoAC9IAAIfW.png_720x720q90.jpg
    选择promethues, import成功。
    iwEcAqNwbmcDAQTRA1YF0QKbBrCT51LNxC-a9QTkNqQRAKAAB9MAAAAA4ee2DggACaJpbQoAC9IAALEw.png_720x720q90.jpg

查看页面,分组选择"host",可以看到主机的信息,容器的话,该模版中没显示出来,可以其他的容器模块来看容器的信息。
lQLPJxbtugcYaezNAuHNBmKwmVDdnyTUrWUE5Dh5BkC2AA_1634_737.png_720x720q90g.jpg


白沙云影
1 声望2 粉丝

一个专注于voip的频道