coding 发表于 2018-10-24 14:04:14

docker-compose(grafana influxdb) + telegraf 快速搭建简单监控

灵活实现方案:1:   telegraf 为go 语言写得占用内存小 收集主机各项监控数据 定时写入 时序DB   influxdb ------------------------"telegraf + influxdb + grafana"2:也可自已用python 编写监控脚本收集主机各项数据写入 influxdb ------------------------------------------------------- "python + influxdb + grafana"
我们选第一种: 第二种我也试了 重点在pythondata-type上   intstring写入influxdbdb时要注意 #主机清单 说明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.ymldocker-compose file相关文档:http://docs.grafana.org/installa ... alling-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 -y2.3修改配置文件:cat/etc/telegraf/telegrag.conf   #扩展目录 /etc/telegraf/telegrag.d/
interval = "8s"round_interval = truemetric_batch_size = 1000metric_buffer_limit = 10000collection_jitter = "0s"flush_interval = "10s"flush_jitter = "0s"precision = ""debug = falsequiet = falselogfile = ""hostname = ""omit_hostname = false[]urls = ["http://172.16.1.50:8086"]database = "telegraf"retention_policy = ""write_consistency = "any"timeout = "5s"   username = "root"password = "237356573"[]interfaces = ["ens33"][]percpu = truetotalcpu = truecollect_cpu_time = falsereport_active = false[]ignore_fs = ["tmpfs", "devtmpfs", "devfs"][][][][][][][]
相关配置说明:https://www.jianshu.com启动服务:   systemctlstartTelegraf查看相关服务是否已启动:登陆 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/
</eof

coding 发表于 2018-10-24 14:07:40

my blog
页: [1]
查看完整版本: docker-compose(grafana influxdb) + telegraf 快速搭建简单监控