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 ...
随机推荐
- Stage3D大冒险
摘自:http://dreamana.com/weblog/?p=92 摘自:http://baike.baidu.com/view/6794042.htm Stage3D的Flash Player和 ...
- php+Apache2+Nginx+Mysql
Nginx 1.安装Nginx sudo apt-get clean sudo apt-get update sudo apt-get install ...
- 学点经济学:M0、M1、M2、M3,傻傻分不清?(转载)
来源:http://t.10jqka.com.cn/pid_97006727.shtml 学点经济学:M0.M1.M2.M3,傻傻分不清? 25,508人浏览 2018-08-03 11:06 常听人 ...
- ORACLE隐藏参数查看及修改
查看隐藏参数 select x.ksppinm name, y.ksppstvl value, y.ksppstdf isdefault, decode(bitand(y.ksppstvf,7),1, ...
- lua 根据路径获取文件名
require "lfs" function dirpath(path) for file in lfs.dir(path) do -- lfs.dir 根据路径获取该路径下的文件 ...
- Lua语法要点2
[Lua语法要点2] 1.Lua函数 function 可以添加 local 关键字.添加后为局部函数,不添加(默认)为全局函数.return 可以返回多个返回值,以, 分隔. 使用 ... 来表示变 ...
- 为 Jupyter 添加目录
1.依次在 anaconda prompt 窗口中执行以下两句命令 pip install jupyter_contrib_nbextensions # 安装第三方包 jupyter contrib ...
- springCloud值Eureka
Spring Cloud特点 约定优于配置 开箱即用.快速启动 适用于各种环境 PC Server 云环境 容器(Docker) 轻量级的组件 服务发现Eureka 组件的支持很丰富, ...
- OpenCV 学习笔记(15)openc解帧视频
1 修改读取视频的地址 2 修改保存图片序列的路径 String videopath = "F:/dongdong/0tool/3D/2模型/相机阵列/1_12cam亿级相机/数据/giga ...
- 安装服务器pve虚拟系统(可以通过web管理物理机集群资源与虚拟机)
做此系统前,可以先进入bios,设置一下ipmi的网络地址.可以远程管理服务器 输入服务器的ipmi里面配置的ip 默认账号与密码admin 点击launch 会自动下载认证文件 下载好java软件环 ...