ubuntu docker inflxudb(安装 使用 备份 还原 以及python编码) telegraf Grafana
inflxudb1.7.7
1.拉取最新的镜像 docker pull influxdb
2.运行实例:
docker run -d --restart=always -p 8086:8086 -p 8083:8083 -p 2003:2003 -v /root/docker/influxdb/data/:/var/lib/influxdb/data -v /root/docker/influxdb/dump/:/var/lib/influxdb/dump/ -e INFLUXDB_GRAPHITE_ENABLED=true -e INFLUXDB_ADMIN_ENABLED=true -e INFLUXDB_DB=db0 -e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_PASSWORD=admin -e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=telegraf --name influxdb influxdb
8086 HTTP API port
8083 Administrator interface port, if it is enabled
2003 Graphite support, if it is enabled
The above would create the database db0, create an admin user with the password admin, then create the telegraf user with your telegraf's secret password. It would then exit and leave behind any files it created in the volume that you mounted.
参考:https://hub.docker.com/_/influxdb
需要保证/root/docker/influxdb/data/是空的

3.建数据库
方法1 进入容器系统
docker exec -it influxdb bash
curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb1"
或者(192.168.100.3 是物理机的ip)
curl -G http://192.168.100.3:8086/query --data-urlencode "q=CREATE DATABASE mydb2"
方法2
docker exec -it influxdb influx
create database "mydb3"
如图(注意这里有我们初始化的db0数据库):

基本用法如下:
create database "db_name" #创建数据库
show databases #显示所有的数据库
drop database "db_name" #删除数据库
use db_name #使用数据库
show measurements #显示该数据库中所有的表
drop measurement "measurement_name" #删除表
#insertyour_measurement,tag_name=tag_value... column_name=column_value
insert test,host=127.0.0.1,monitor_name=test count=1 #创建表test,直接在插入数据的时候指定表名test
insert payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i #创建表payment i是integer的意思,默认数字是float
#例子
curl -i -XPOST 'http://192.168.100.3:8086/write?db=mydb3' --data-binary 'payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i'
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb3" --data-urlencode "q=select * from payment order by time desc"

python操作influxdb:
需要安装pip3 install influxdb

python 代码如下:
# -*- coding: utf- -*-
import time ,random
from influxdb import InfluxDBClient
#这个函数每次调用返回当前cpu的运行状况
#因为没有安装psutil包,所以使用一个随机函数代替cpu信息的获取
def read_info():
data_list = [{
'measurement': 'win'
,'tags': {'cpu': 'i7-7700HQ'}
,'fields': {
'cpu_info_user': random.random()
,'cpu_info_system': random.random()
,'cpu_info_idle': random.random()
,'cpu_info_interrupt': random.random()
,'cpu_info_dpc': random.random()
}
}]
return data_list if __name__ == '__main__':
db_name = 'db0'
#创建一个influxdb的客户端
client = InfluxDBClient('192.168.100.3', , 'admin', 'admin', db_name)
#创建数据库
client.create_database(db_name)
# 初始化
counts =
#计数,也就是数据上传20次
while counts <= :
counts +=
#write_points(points, time_precision=None, database=None, retention_policy=None, tags=None, batch_size=None, protocol=u'json')
#write(data, params=None, expected_response_code=, protocol=u'json')
client.write_points(read_info())
time.sleep()
#查询结果
#query(query, params=None, epoch=None, expected_response_code=, database=None, raise_errors=True, chunked=False, chunk_size=)
result = client.query('select * from win')
print("Result: {0}".format(result))

python参考https://influxdb-python.readthedocs.io/en/latest/examples.html 和https://zhuanlan.zhihu.com/p/37523795
备份和还原
我们先备份db0然后还原db1
docker exec -it influxdb influxd backup -portable -database db0 /tmp/db0 #备份db0到容器
docker cp influxdb:/tmp/db0 /root/docker/influxdb/dump #拷贝到主机
docker exec -it influxdb influxd restore -portable -db db0 -newdb db1 /tmp/db0 #还原到新的数据库db1, 这里省略了拷贝到容器的步骤
或者
docker exec -it influxdb influxd backup -portable -database db0 /var/lib/influxdb/dump/db0 #备份
docker exec -it influxdb influxd restore -portable -db db0 -newdb db1 /var/lib/influxdb/dump/db0 #还原
如果指定了dump文件 备份结果如下: 备份还原请参考https://docs.influxdata.com/influxdb/v1.7/administration/backup_and_restore/


注意进入容器的指令是docker exec -it influxdb influx 而不是docker exec -it influxdb influxd 我在还原数据库 就多输入了一个d字符 老提示listen tcp 127.0.0.1:8088: bind: address already in use 还找了很多解决方法https://stackoverflow.com/questions/40844762/influxdb-port-8088

telegraf
这里的数据采集可以采用telegraf来完成, ubuntu下的安装如下:
cat <<EOF | sudo tee /etc/apt/sources.list.d/influxdata.list
deb https://repos.influxdata.com/ubuntu bionic stable
EOF
sudo curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install telegraf
参考https://computingforgeeks.com/how-to-install-and-configure-telegraf-on-ubuntu-18-04-debian-9/
修改配置:

添加服务并启动
sudo systemctl enable --now telegraf
systemctl status telegraf

grafana
1.拉取镜像 docker pull grafana/grafana
2.运行实例:docker run -d --restart=always -p 3000:3000 --name grafana grafana/grafana 如果需要开启防火墙,请执行:
firewall-cmd --zone=public --add-port=8086/tcp --permanent
firewall-cmd --zone=public --add-port=3000/tcp --permanent
systemctl restart firewalld
3.访问grafana :http://192.168.100.3:3000 输入用户名和密码 admin/admin

第一次进入需要修改密码:


4.配置数据源(add data source)



5. 回到主页添加 dashboard






上面的terlegraf是安装到linux的物理机,现在我们来试一下它的docker安装
docker pull influxdb #拉取镜像
docker run -d --restart=always --name=telegraf -v /root/docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro telegraf #启动实例
docker logs -f telegraf #查看日志


---2019-8-13补充
注意上面python操作influxdb的文件而命名不能包含influxxxx.py; 我第一次命名比较随意,但是这次新搭建环境命名叫influxdb.py,结果程序在运行时提示 ImportError: cannot import name 'InfluxDBClient', 参考influxdb-python结果还是失败


也修改了python路径, sudo gedit /etc/profile 指令来修改环境变量,加入 export PATH=<你要加入的路径>:$PATH
最后修改文件名称就好了,。。。。。

参考地址:
https://hub.docker.com/_/influxdb
https://www.cnblogs.com/LUA123/p/9507029.html
ubuntu docker inflxudb(安装 使用 备份 还原 以及python编码) telegraf Grafana的更多相关文章
- Centos + docker,Ubuntu + docker介绍安装及详细使用
docker笔记 常用命令 设置docker开机自启:sudo chkconfig docker on 查所有镜像: docker images 删除某个镜像:docker rmi CONTAINER ...
- ubuntu docker的安装和使用
Docker CE for Ubuntu Docker CE for Ubuntu is the best way to install the Docker platform on Ubuntu L ...
- Ubuntu Docker 简单安装 GitLab
相关博文: Ubuntu 简单安装 Docker Ubuntu 简单安装和配置 GitLab 服务器版本 Ubuntu 16.04 LTS. 1. 安装和配置 安装命令: sudo docker ru ...
- Ubuntu+docker+jenkins安装详细指南
最近项目上开始实行自动化测试,避免不了与jenkins等持续集成工具打交道,今天就给大家分享一下有关jenkins的简单安装和使用 1,准备环境 (1)ubuntu系统 (2)docker (3)je ...
- ubuntu docker 环境安装
转载:https://www.cnblogs.com/blog-rui/p/9946382.html 1. 在Ubuntu中安装Docker 更新ubuntu的apt源索引 sudo apt-get ...
- db2安装配置备份还原
环境 cenos 7.0 db2版本 db2_v101_linuxx64_expc.tar 安装db2 解压db2 tar zxvf db2_v101_linuxx64_expc.tar cd exp ...
- Ubuntu+docker+gitlab安装和使用
以前自己写的代码都是在本地,因为都是自己一个人维护,现在交给团队维护了,所以想着搭建一个gitlab 1,拉镜像 安装非常简单 docker search gitlab 搜索镜像 docker pu ...
- Ubuntu Docker 安装和配置 GitLab CI 持续集成
相关文章: Ubuntu Docker 简单安装 GitLab 劈荆斩棘:Gitlab 部署 CI 持续集成 目的:在 Ubuntu 服务器上,使用 Docker 安装和配置 GitLab Runne ...
- ubuntu docker 搭建 mongodb,开启授权访问 redis,mysql mssql 备份还原
命令安装docker 如果您想从Ubuntu存储库安装docker版本,则可以运行下面的apt命令. sudo apt install docker.io等到安装完成后,您可以启动Docker并使用s ...
随机推荐
- 【转】PHP利用Apache、Nginx的特性实现免杀Webshell
转载备忘: get_defined_vars().getallheaders()是两个特性函数,我们可以通过这两个函数来构造我们的webshell. 前几天看到的,一直忘记写,填坑. 环境 函数 用法 ...
- 在小程序中实现 Mixins 方案
摘要: 小程序开发技巧 作者:jrainlau 原文:在小程序中实现 Mixins 方案 Fundebug经授权转载,版权归原作者所有. 在原生开发小程序的过程中,发现有多个页面都使用了几乎完全一样的 ...
- 数据库系统(四)---关系型数据库设计及E-R图
1.关系型数据库: 关系型数据库是一类采用关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析.概念结构设计.逻辑结构设计.物理结构设计.数据库实施.数据库的运行和维护等阶段 ...
- Flask拾遗总汇1
目录 1.flask的路由分发方式 2.请求响应相关 3.flask配置文件拾遗(config) 4.路由系统参数配置 4.1 可传入参数: 4.2 常用路由系统有以上五 5.反向生成URL: url ...
- Android: Error inflating class android.support.v4.view.ViewPager 问题的解决方法
ViewPager是个很好很强大的控件,很多应用用它来实现很酷的效果,但是很多情况下在运行时会遇到Error inflating class android.support.v4.view.ViewP ...
- ubuntu配置定时任务crontab何保存退出
crontab -e配置完成后,如何把保存并退出? 1.Ctrl+o 写入 2.出现“FIile name to Write...”,输入Enter 3.Ctrl+x 保存输出 提示“crontab: ...
- P1908 逆序对-(cdq分治)
https://www.luogu.org/problem/P1908 沿用归并排序的思想求逆序对. 坑1:结果爆int型,需要用longlong 坑2:相对于归并排序,在比较的时候多了一个等号 举例 ...
- contest5 CF991 div2 ooooxx ooooox ooooox
题意 div2D 给出一个棋盘, 有一些点不能放, 总共\(2\)排, 长度\(n(\le 100)\) 在上面空位摆放\('L'\)字形的牌, 问最多能放几个 例如: 00X00X0XXX0 0XX ...
- Linux下进程间通信方式——信号量(Semaphore)
1.信号量 信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据 ...
- 洛谷 P1508
P1508 所属知识点:DP 主要题意: 就是求一个矩阵从下边走到上边,可以走自己前方或左前方或右前方. 问走到上边一共经过的路径和. 类型题:P1216 解题思路: 参考上边的类型题(因为比较简单) ...