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
my blog
页:
[1]