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

摘要:
$INSPECT_名称]&&[!

 灵活实现方案:  

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  

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

   运行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

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

 

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

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

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

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

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

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

user:        admin             password:          admin

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

配置 grafana DB

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

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

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

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

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

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

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

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

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

相关资料:

官网参考地址 

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

telegraf软件下载地址:

https://influxdata.com/downloads/

免责声明:文章转载自《docker-compose(grafana influxdb) + telegraf 快速搭建简单监控》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Maven部署构件至远程仓库YOLOv3和YOLOv4长篇核心综述(上)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

饿了么全链路压测平台的实现与原理

背景 在上篇文章中,我们曾介绍过饿了么的全链路压测的探索与实践,重点是业务模型的梳理与数据模型的构建,在形成脚本之后需要人工触发执行并分析数据和排查问题,整个过程实践下来主要还存在以下问题: 测试成本较高,几乎每个环节都需要人力支撑,费时费力。 由于测试用例较多,涉及的测试机范围较广,手工执行容易犯错,线上测试尤其危险。 记录结果和测试报告极不方便,需要...

docker-compose搭建mongodb分片集群(单机版)

mongodb分片机制原理 一、概念:   分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载。基本思想就是将集合切成小块,这些块分散到若干片里,每个片只负责总数据的一部分,最后通过一个均衡器来对各个分片进行均衡(数据迁移)。通过一个名为mongos...

Grafana与Prometheus集成(四)

一、安装Grafana 1.1 Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。 https://grafana.com/grafana/download wget https://dl.grafana.com/oss/release/grafana-6.7.3-1.x86_64.rpm yum instal...

Docker Compose 版本过高(Docker版本不匹配),降低docker-compose版本

通过docker-compose启动容器,报错: ERROR: The Docker Engine version is less than the minimum required by Compose. Your current project requires a Docker Engine of version 1.10.0 or greater....

grafana安装部署(一)

Grafana版本:7.1.5 一、Grafana介绍 Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点: 1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式; 2、数据源:Grap...

Zabbix+Grafana打造全方位立体化监控系统

前言简介: Grafana是一个开源的指标量检测和可视化工具。常用于展示基础设施的实时数据和应用程序运行分析;是一个通用的可视化工具,不仅仅用于展示zabbix下的监控数据,也同样适用于一些其他数据可视化的需求;首选需要搞清楚两个概念: 1、数据源(datasource) 数据存储源,主要定义了将用什么方式查询数据展示在grafana上面,不同的datas...