docker环境下的Grafana安装
一、参考资源:https://grafana.com/docs/grafana/latest/installation/docker/
二、过程
1、安装grafana
查看可用image
[root@DL ~]# docker search grafana
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
grafana/grafana The official Grafana docker container 1484
拉取grafana镜像:
[root@DL ~]# docker pull grafana/grafana
2、运行grafana:
[root@DL ~]# docker run -d -p 3000:3000 --name=grafana grafana/grafana
3、登录web:http://192.168.0.202:3000/login #初始登录参数:admin/admin
至此,基本安装完成,但是,考虑到一旦docker容器停止,其存储的数据就会丢失,因此还需要进行数据的持久化工作。
使用“docker inspect grafana”(其中的grafana是容器名称)命令查看grafana容器内的配置,可以看到如下环境变量信息:
"Env": [
"PATH=/usr/share/grafana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GF_PATHS_CONFIG=/etc/grafana/grafana.ini",
"GF_PATHS_DATA=/var/lib/grafana",
"GF_PATHS_HOME=/usr/share/grafana",
"GF_PATHS_LOGS=/var/log/grafana",
"GF_PATHS_PLUGINS=/var/lib/grafana/plugins",
"GF_PATHS_PROVISIONING=/etc/grafana/provisioning"
分析上述环境变量信息得知,需要把容器内的/etc/grafana、/var/lib/grafana、/var/log/grafana三个目录挂载到宿主机上以确保数据不随容器的停止而消失。
4、宿主机新建3个目录
mkdir -p /root/grafana/conf
mkdir -p /root/grafana/data
mkdir -p /root/grafana/log
5、在前述运行的grafana系统中,把上述三个目录内的文件和目录全部拷贝到宿主机中。
[root@DL ~]# docker cp grafana:/etc/grafana/. /root/grafana/conf
[root@DL ~]# docker cp grafana:/var/lib/grafana/. /root/grafana/data
[root@DL ~]# docker cp grafana:/var/log/grafana/. /root/grafana/log
6、修改宿主机新建目录的所有者为grafana(这一步很重要,若缺乏所有者权限配合,grafana页面在登录时就会出错,无法登录)
(1)宿主机新增用户grafana,并修改UID和GID都为472(因为容器内的运行用户也是grafana,且UID和GID都是472)
useradd grafana
vi /etc/passwd
...
grafana:x:472:472::/home/grafana:/bin/bash
vi /etc/group
...
grafana:x:472:
(2)修改grafana目录所有者为grafana
[root@DL ~]# chown -R grafana:grafana grafana
[root@DL ~]# ls -lhat
...
drwxr-xr-x. 5 grafana grafana 41 5月 22 20:59 grafana
[root@DL ~]# ls -lhat grafana
总用量 4.0K
drwxr-xr-x. 5 grafana grafana 41 5月 22 20:59 .
drwxr-xr-x. 2 grafana grafana 6 5月 22 20:59 log
drwxr-xr-x. 4 grafana grafana 50 5月 22 20:55 data
dr-xr-x---. 18 root root 4.0K 5月 22 20:06 ..
drwxr-xr-x. 2 grafana grafana 45 5月 22 19:57 conf
7、编制docker运行命令
vi grafana.sh
内容如下:
docker run -d --name grafana -p 3000:3000 -v /root/grafana/conf:/etc/grafana -v /root/grafana/data:/var/lib/grafana -v /root/grafana/log:/var/log/grafana grafana/grafana
8、为grafana.sh添加执行权限
chmod +x grafana.sh
9、运行grafana.sh
./grafana.sh
三、测试
web登录:http://192.168.0.202:3000/
四、小结:
1、docker安装grafana虽然比较方便,但是,有些问题是必须高度关注的,如grafana容器内系统本身是以grafana用户身份运行的,对应的挂载目录的权限也必须调整为grafana权限。
2、在安装测试过程中用到docker一些命令配合调试工作,比较有用,这里列出如下:
docker stop grafana #停止grafana容器,对应有start和restart来启动和重启容器。
docker rm grafana #删除grafana容器,以便后续新建同名容器
docker container prune #删除运行异常的全部容器,运行异常就是直接使用 docker ps或docker container ls无法列出的容器。
docker ps -a 或 docker container ls -a #列出所有容器,包括运行异常的容器。
docker inspect grafana #查看容器grafana的配置详情,包括容器id号,挂载信息,环境变量、主机名称等等。因为其内容较多,可使用管道符到处到文件做更细致分析,如 docker inspect grafana > grafana.txt
docker exec -it grafana /bin/bash 或 docker exec -it grafana /bin/sh #进入容器grafana内的console状态,以便查探容器内的文件系统。
3、关于显示时区问题,grafana的web界面已提供本地时间显示功能(可选),因此,不用调整docker容器的时区。
五、待验证的运行方法:
https://grafana.com/docs/grafana/latest/installation/configure-docker/
If you do not designate a location for information storage, then all your Grafana data disappears as soon as you stop your image. To save your data, you need to set up persistent storage or bind mounts for your container.
(1)Run Grafana container with persistent storage (recommended)
# create a persistent volume for your data in /var/lib/grafana (database and plugins)
docker volume create grafana-storage
上述命令可生成一个docker volume,使用命令docker volume inspect grafana-storage 或 docker inspect grafana-storage查看详情,如存储位置:
"Mountpoint": "/var/lib/docker/volumes/grafana-storage/_data"
# start grafana
docker run -d -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana
(2)Run Grafana container using bind mounts
You may want to run Grafana in Docker but use folders on your host for the database or configuration. When doing so, it becomes important to start the container with a user that is able to access and write to the folder you map into the container.
mkdir data # creates a folder for your data
ID=$(id -u) # saves your user id in the ID variable
# starts grafana with your user id and using the data folder
docker run -d --user $ID --volume "$PWD/data:/var/lib/grafana" -p 3000:3000 grafana/grafana:5.1.0
docker环境下的Grafana安装的更多相关文章
- Elasticsearch Docker环境下安装
Elasticsearch Docker环境下安装 Daemon镜像配置的是https://registry.docker-cn.com Linux:vi /etc/docker/daemon.jso ...
- Nginx系列(8)- Nginx安装 | Docker环境下部署
Docker环境下部署Nginx https://www.cnblogs.com/gltou/p/15186971.html
- Docker环境下的Mysql8 实现主从数据库数据同步方案
本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...
- docker环境下solrcloud+zookeeper集群部署教程
前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...
- 如何在 Docker 环境下自动给 .NET 程序生成 Dump
前言 之前"一线码农"大佬有写文章介绍了如何在 windows 下自动 dump,正好手里有个在 docker 环境下 dump 的需求,所以在参考大佬文章的基础上,有了本篇. ...
- Docker环境下运行python+selenium+chrome
Docker环境下运行python+selenium+chrome docker运行时占用的资源非常少,而且能将环境进行有效的隔离,可以快速的进行部署,因此可以将docker与selenium结合实现 ...
- Windows环境下MongoDB的安装与配置
MongoDB是一种高性能的文档型数据库,现介绍一下在Windows环境下MongDB的安装与配置 获取MongoDB 打开官方网站 www.mongodb.org,找到页面右上解的DownLoad链 ...
- window环境下glog的安装
window环境下glog的安装 分类: c++2014-09-23 14:12 32人阅读 评论(0) 收藏 举报 下载后解压,利用Visual Studio打开google-glog.sln.生成 ...
- Linux环境下Python的安装过程
Linux环境下Python的安装过程 前言 一般情况下,Linux都会预装 Python了,但是这个预装的Python版本一般都非常低,很多 Python的新特性都没有,必须重新安装新一点的版本,从 ...
随机推荐
- 软件——IDEA主题美化
前言 IntelliJ IDEA主要用于支持 Java.Scala.Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用.移动应用和 Web 应用的开发. IntelliJ ...
- Java——Java泛型
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...
- 蓝桥杯2019初赛]迷宫(dfs版本)
传送门 大意: 题目的意思还是模板的搜索,不同的是我们要记录路径了,而且是最短字典序最小的路径. 思路: 1.对于字典序最小,也就是说我们要尽量先往下走,然后是左- 这个很简单,因为在dfs中是顺序枚 ...
- K - Painful Bases 状压dp
Painful Bases LightOJ - 1021 这个题目一开始看,感觉有点像数位dp,但是因为是最多有16进制,因为限制了每一个数字都不同最多就有16个数. 所以可以用状压dp,看网上题解是 ...
- 线段树 G - Mayor's posters 小技巧
G - Mayor's posters POJ - 2528 这个题目要倒着来写,从后面往前面贴,因为前面的有些会被后面的覆盖. 所以我们就判断这张海报的位置有没有完全被覆盖,如果完全被覆盖了就不能贴 ...
- hadoop中如何动态更新集群队列和容量
1.集群默认是FIFO容量调度器,有的时候不同的业务部门都需要使用hadoop集群,那么这时候就需要来设置容量调度器了,如何平衡各个部门的容量.合理利用资源? 首先配置调度器需要在修改两个配置文件,分 ...
- Ubuntu 配置/etc/fstab参数实现开机自动挂载硬盘
文章目录 前言 fstab 参数含义 实现步骤 1 查看硬盘信息,并找到需要进行挂载的硬盘 2 sudo mkfs.ext4 /dev/sdc 3 sudo mkdir /home/diska 4 查 ...
- 新鲜出炉高仿网易云音乐 APP
我的引语 晚上好,我是吴小龙同学,我的公众号「一分钟GitHub」会推荐 GitHub 上好玩的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注我. 项目中成长是最快的,如何成长,就 ...
- Python基础语法day_03——列表
day_03 列表是什么 在Python中,用[]来表示列表,并用逗号来分隔其中的元素.下面是一个简单的列表示例: >>> bicycles = ['treak','cannonda ...
- PHP EOF使用说明
PHP EOF(heredoc) 使用说明 PHP EOF(heredoc)是一种在命令行shell(如sh.csh.ksh.bash.PowerShell和zsh)和程序语言(像Perl.PHP.P ...