zoukankan      html  css  js  c++  java
  • docker-compose(grafana influxdb) + telegraf 快速搭建简单监控

     灵活实现方案:  

    1:     telegraf 为go 语言写得占用内存小 收集主机各项监控数据 定时写入 时序DB   influxdb ------------------------"telegraf + influxdb + grafana"

    2:  也可自已用python 编写监控脚本收集主机各项数据写入   influxdb ------------------------------------------------------- "python + influxdb + grafana"

     我们选第一种: 第二种我也试了 重点在python  data-type  上   int  string  写入  influxdb  db  时要注意 

    #主机清单 说明

    172.16.1.6          #安装 telegraf  并设置配置文件 收集系统各项监控数据 然后写入远程主机(172.16.1.50) influxdb 内

    172.16.1.50     #安装 docker , docker-compose  运行start-DockerCompose_grafana.sh 生成docker-compose_grafana.yml  并运行  

    特别说明:    

     #1, 172.16.1.50运行 docker-compose 会去docker-hub 拉取最新得 grafana images 镜像  所以必须创建 grafana 用户组 

    #2,grafana 镜像从4.1.2 以后容器内都是以普通用户运行 更换低版镜像并不需要在宿主机上创建grafana user   会在当前目录下生成 docker-compose-grafana.yml  docker-compose file

    相关文档: http://docs.grafana.org/installation/docker/#installing-using-docker

     

    #172.16.1.50主机必须条件 ,  docker ,  docker-compose  

       运行start-DockerCompose_grafana.sh 生成docker-compose_grafana.yml  并自动运行: docker-compose -f   docker-compose_grafana.yml up -d

     cat start-DockerCompose_grafana.sh

    #!/bin/bash
    GRAFANA_DIR=/grafana-dir
    GRAFANA_plugins=/plugins
    INSPECT_NAME=`id -u grafana >> /dev/null 2>&1`
    INSPECT_ID=`id 472 >> /dev/null 2>&1 `
    INSPECT_FILE=`-f ./docker-compose_grafana.yml >> /dev/null 2>&1`

    function newfile () {
    cat >> ./docker-compose_grafana.yml <<EOF
    version: '2'
    services:
    grafana:
    image: grafana/grafana
    restart: always
    container_name: "grafana"
    ports:
    - 3000:3000
    volumes:
    - $GRAFANA_DIR/data:/var/lib/grafana:rw
    - $GRAFANA_DIR$GRAFANA_plugins:/var/lib/grafana/plugins:rw
    - /etc/localtime:/etc/localtime #同步宿主机和容器时间
    links:
    - influxdb
    depends_on:
    - influxdb
    influxdb:
    image: tutum/influxdb:latest
    restart: always
    container_name: "influxdb"
    environment:
    - ADMIN_USER="root"
    - INFLUXDB_INIT_PWD="237356573"
    - PRE_CREATE_DB="telegraf"
    volumes:
    - /etc/localtime:/etc/localtime
    #未做数据卷 如要保存db data 必须做数据卷
    ports:
    - 8086:8086
    - 8083:8083
    EOF
    }

    if [ ! $INSPECT_NAME ] && [ ! $INSPECT_ID ];
    then
    echo "run"
    groupadd -g 472 grafana && useradd -M -u 472 -g 472 grafana
    mkdir -p $GRAFANA_DIR/{data,plugins}
    chown -R grafana:grafana $GRAFANA_DIR
    newfile
    docker-compose -f ./docker-compose_grafana.yml up -d
    elif[ $INSTPECT_FILE ];
    docker-compose -f ./docker-compose_grafana.yml up -d
    else
    newfile
    echo "not run grafana-DockerCompose.yml"
    fi

     

    2:  172.16.1.6   agent 安装  telegraf  并设置配置文件

    2.1下载

    wget http://get.influxdb.org/telegraf/telegraf-0.11.1-1.x86_64.rpm 

    2、2安装

    yum localinstall telegraf-0.11.1-1.x86_64.rpm -y

    2.3修改配置文件:

    cat  /etc/telegraf/telegrag.conf     #扩展目录 /etc/telegraf/telegrag.d/[global_tags]

    [global_tags]
    [agent]
      interval = "8s"
      round_interval = true
      metric_batch_size = 1000
      metric_buffer_limit = 10000
      collection_jitter = "0s"
      flush_interval = "10s"
      flush_jitter = "0s"
      precision = ""
      debug = false
      quiet = false
      logfile = ""
      hostname = ""
      omit_hostname = false
    [[outputs.influxdb]]
    urls = ["http://172.16.1.50:8086"]
    database = "telegraf"
      retention_policy = ""
      write_consistency = "any"
      timeout = "5s"
       username = "root"
      password = "237356573"
    [[inputs.net]]
    interfaces = ["ens33"]
    [[inputs.cpu]]
      percpu = true
      totalcpu = true
      collect_cpu_time = false
      report_active = false
    [[inputs.disk]]
      ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
    [[inputs.diskio]]
    [[inputs.kernel]]
    [[inputs.mem]]
    [[inputs.processes]]
    [[inputs.swap]]
    [[inputs.system]]
    [[inputs.netstat]]

    相关配置说明:https://www.jianshu.com

    启动服务:   systemctl  start  Telegraf

    查看相关服务是否已启动:

    登陆 http://172.16.1.50:8083   检测监控数据是否写入db

    登陆 http://172.16.1.50:3000  配置grafana   

    user:        admin             password:          admin

    配置 grafana DB

     填入地址   IP   因为我们已经在docker 容器内吧  db 容器  links  别名为  influxdb    所以 URL:httpd://influxdb:8086

    导入模板  dashboard 面板   模板下载地址:https://grafana.com/dashboards/1443

    最后来张大图吧      如有个别view  不显  请微调  数据源      telegraf 官网  上有各项监控数据  指标  相关配置说明  找到相关字段

    相关资料:

    官网参考地址 

    https://docs.influxdata.com/telegraf/v0.11/

    telegraf软件下载地址:

    https://influxdata.com/downloads/

  • 相关阅读:
    C# 利用ffmpeg 对视频转换系类操作 (1) 基本分析
    对象的行为
    类、对象、包
    java中的程序流程控制
    季节
    好的博客网址
    大家好 希望大家多多帮助
    Android 4.4 安卓系统突破限制让所有应用程序可操作外置SD卡
    STL笔记:函数配接器(Function adapters)
    STL中仿函数的简要回顾
  • 原文地址:https://www.cnblogs.com/python-diy/p/9801674.html
Copyright © 2011-2022 走看看