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 ...
随机推荐
- HTML惊天地
博主网站 一.HTML文档结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- java获取客户端请求IP地址(公网ip)
之前写了一个获取ip地址的方法,但是放网上一查显示此Ip地址是局域网ip地址,要是想获取请求端的真实公网ip地址怎么样了,看了一些别人的博客后发现,想要获取客户端的公网ip必须借助第三方. packa ...
- 掌握 Async/Await
摘要: 还不用Async/Await就OUT了.. 原文:掌握 Async/Await 作者:Jartto Fundebug经授权转载,版权归原作者所有. 前端工程师肯定都经历过 JS 回调链狱的痛苦 ...
- FTP服务搭建配置笔记
1.什么是文件共享服务? 简单来说就是文件域存储块设备可以共享给他人使用. 1.1 实现文件共享服务的三种方式 FTP:属于应用层服务,可以跨平台使用 NFS:属于内核模式,不可以跨平台使用 Samb ...
- EtherNet/IP CIP协议
EtherNet/IP CIP协议 1.EtherNet/IP简述 EtherNet/IP(Ethernet/Indstrial Protocol,以太网/工业协议)是一种基于以太网和TCP/IP技术 ...
- 内核中dump_stack的实现原理(3) —— 内核函数printk的实现
参考内核文档: Documentation/printk-formats.txt 在内核中使用dump_stack的时候可以看到如下用法: static inline void print_i ...
- The 2019 Asia Nanchang First Round Online Programming Contest B. Fire-Fighting Hero
题目链接:https://nanti.jisuanke.com/t/41349 题意:有一个灭火英雄,和一个灭火团队,一个人与一个团队比较. 灭火英雄到其他灭火点的最短路最大值,与一个团队到其他灭火点 ...
- django orm 基于双下划线的跨表查询
一..基于双下划线的跨表查询(join实现) key:正向查询按字段,反向查询按表明小写 1.一对多跨表查询 查询在跨表中可以有两种方式,正向查询就是关键字段在你要搜索的表,没有关键字段就是反向查询 ...
- AcWing 24. 机器人的运动范围
习题地址 https://www.acwing.com/solution/acwing/content/2970/ 题目描述地上有一个 m 行和 n 列的方格,横纵坐标范围分别是 0∼m−1 和 0∼ ...
- robot framework Selenium2library wait小问题
最近在使用selenium2Library时,用到其中的 Wait Until Page函数,因我们的网页相对比较敏感,经常获取不到,不明觉历 看看源码吧,如下: def wait_until_pag ...