仅供学习,转载请注明出处
参考文献
参考官方文档进行docker安装Grafana。
使用docker安装Grafana
首先查询一下grafana的镜像看看
[root@server81 granfana]# docker search grafana/grafanaINDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/grafana/grafana The official Grafana docker container 987 docker.io docker.io/kamon/grafana_graphite All in one image running StatsD, Graphite ... 151 docker.io docker.io/monitoringartist/grafana-xxl Dockerized Grafana 5.x/4.x/3.x with all pr... 74 [OK] docker.io docker.io/samuelebistoletti/docker-statsd-influxdb-grafana Docker Image with Telegraf (StatsD), Influ... 64 [OK] docker.io docker.io/tutum/grafana Grafana dashboard for InfluxDB. Please set... 57 [OK] docker.io docker.io/fg2it/grafana-armhf Unofficial Grafana docker container for armhf 37 docker.io docker.io/philhawthorne/docker-influxdb-grafana A docker container to run InfluxDB and Gra... 10 [OK] docker.io docker.io/appcelerator/grafana Grafana image based on Alpine linux 5 [OK] docker.io docker.io/bitnami/grafana Bitnami Docker Image for Grafana 3 [OK] docker.io docker.io/grafana/loki Loki - Cloud Native Log Aggregation by Gra... 3 docker.io docker.io/luzifer/grafana Automated build from Grafana Debian package 3 [OK] docker.io docker.io/carlosedp/monitoring-grafana Grafana unofficial packages for ARM32 and ... 2 docker.io docker.io/stefanprodan/swarmprom-grafana Docker Swarm Prometheus Grafana 2 docker.io docker.io/1and1internet/ubuntu-graphite-grafana Graphite & Grafana 1 [OK] docker.io docker.io/rycus86/grafana Grafana time series analytics software - g... 1 [OK] docker.io docker.io/tcjennings/rpi-grafana Grafana for Raspberry Pi. 1 docker.io docker.io/wkulhanek/grafana Grafana Docker Image for use with Red Hat ... 1 docker.io docker.io/appcelerator/grafana-amp Grafana image customized for AMP 0 [OK] docker.io docker.io/basi/grafana Grafana with some limited automated data s... 0 [OK] docker.io docker.io/grafana/grafana-enterprise Official Grafana Enterprise docker image 0 docker.io docker.io/ibmcom/grafana Docker Image for IBM Cloud Private-CE (Com... 0 docker.io docker.io/igneoussystems/base-grafana Base image for grafana 0 docker.io docker.io/matisq/grafana TIG Stack - Grafana 0 [OK] docker.io docker.io/rplan/grafana customized grafana docker image 0 [OK] docker.io docker.io/rusn/grafana Lightweight Grafana image 0 [OK] [root@server81 granfana]#
看到有镜像之后,下一步就是看看怎么启动这个服务。
编写Granfana的docker启动脚本
[root@server81 granfana]# vim restart_granfana.sh #!/bin/bashbasedir=$(cd `dirname $0`;pwd) docker stop grafana docker rm grafana docker run -d --name grafana -p 3000:3000 grafana/grafana grafana
运行脚本启动服务:
[root@server81 granfana]# lsrestart_granfana.sh## 执行启动脚本,第一次运行需要下载镜像[root@server81 granfana]# ./restart_granfana.sh Error response from daemon: No such container: grafana Error response from daemon: No such container: grafana Unable to find image 'grafana/grafana:latest' locally Trying to pull repository docker.io/grafana/grafana ... latest: Pulling from docker.io/grafana/grafanaa5a6f2f73cd8: Pull complete 08e6195c0f29: Pull complete b7bd3a2a524c: Pull complete d3421658103b: Pull complete cd7c84229877: Pull complete 49917e11f039: Pull complete Digest: sha256:d1deecef03c1baf2c136b7f0796252820ad21f597d00af43d0e8528599112a83Status: Downloaded newer image for docker.io/grafana/grafana:latest96b71114e6d5e95deed134324b17ce6c96014fb514a31d2659bb9507bf56096f [root@server81 granfana]# ## 查看运行起来的docker进程,第一个就是grafana服务[root@server81 granfana]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES96b71114e6d5 grafana/grafana "/run.sh grafana" 4 seconds ago Up 3 seconds 0.0.0.0:3000->3000/tcp grafana d2918dc47850 influxdb "/entrypoint.sh in..." 3 days ago Up 3 days 0.0.0.0:8086->8086/tcp influxdb82a294241ff7 registry:2 "/entrypoint.sh /e..." 4 weeks ago Up 5 days 0.0.0.0:5000->5000/tcp registry [root@server81 granfana]#
那么下面来访问看看:
Grafana的页面现在也可以正常打开了,从上面看登陆需要用户名和密码,这个用户名和密码从哪里来的呢?
这个初始密码其实是保存在配置文件里面的。那么配置文件在哪里呢?
下面来找找吧。
查看Grafana的配置文件(/etc/grafana/grafana.ini
)
进入Grafana容器,查找grafana.ini
文件,然后看看配置文件里面的默认登陆用户以及密码。
## 进入容器内[root@server81 granfana]# docker exec -it grafana bashgrafana@96b71114e6d5:/usr/share/grafana$ grafana@96b71114e6d5:/usr/share/grafana$ ls LICENSE.md NOTICE.md README.md VERSION bin conf public scripts tools## 从 / 目录查找配置文件,可以看到第一个路径就是配置文件的路径grafana@96b71114e6d5:/usr/share/grafana$ find / -type f -name "grafana.ini"/etc/grafana/grafana.inifind: '/etc/ssl/private': Permission deniedfind: '/proc/tty/driver': Permission denied## 查看配置文件grafana@96b71114e6d5:/usr/share/grafana$ more /etc/grafana/grafana.ini
配置文件有些长,下面我将文件从容器中导出来看看:
[root@server81 granfana]# docker exec -it grafana cat /etc/grafana/grafana.ini > grafana.ini[root@server81 granfana]#
下面就用默认的用户名和密码
admin/admin
进行访问
第一次登陆的时候,会被要求需要修改密码,如下:
我就简单修改一个密码为 newpwd
吧。
登陆后的界面
但是用容器启动都有一个问题,就是容器重启之后,数据就会丢失,那么下面就要考虑如何数据持久化。
另外,还有一个问题,能否直接在脚本处定义好登陆的密码呢?
在脚本设置登陆密码
为了验证脚本可以设置登陆密码,首先将容器重启一边,那么密码就会恢复为admin
。
[root@server81 granfana]# ./restart_granfana.sh grafana grafana b3c1fec524d4332293ef85064de5e2596226a00830923f17e5877bea6f9d6f0d [root@server81 granfana]# [root@server81 granfana]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b3c1fec524d4 grafana/grafana "/run.sh grafana" 6 seconds ago Up 5 seconds 0.0.0.0:3000->3000/tcp grafana d2918dc47850 influxdb "/entrypoint.sh in..." 3 days ago Up 3 days 0.0.0.0:8086->8086/tcp influxdb82a294241ff7 registry:2 "/entrypoint.sh /e..." 4 weeks ago Up 5 days 0.0.0.0:5000->5000/tcp registry [root@server81 granfana]#
使用admin/admin
重新访问一下grafana页面如下:
那么下面就来修改一下启动脚本,看看能不能直接设置初始化的密码:
配置文件grafana.ini
中的选项可以使用语法使用环境变量进行覆盖,格式:GF_<SectionName>_<KeyName>
。
#!/bin/bashbasedir=$(cd `dirname $0`;pwd) docker stop grafana docker rm grafana docker run \ -d --name grafana -p 3000:3000 \ -e "GF_SERVER_ROOT_URL=http://grafana.server.name" \ -e "GF_SECURITY_ADMIN_PASSWORD=newpwd" \ grafana/grafana grafana
说明:
设置服务的默认域名 :
-e "GF_SERVER_ROOT_URL=http://grafana.server.name"
设置admin的密码为
newpwd
:-e "GF_SECURITY_ADMIN_PASSWORD=newpwd"
那么下面来再次重启一下服务看看:
[root@server81 granfana]# ./restart_granfana.sh grafana grafana 0eca53c2a1b463175122b52972b4857a3b1c227eb40057132a844601b8335042 [root@server81 granfana]#
直接就可以登陆了
还有许多配置选项。有关所有这些选项的详细信息,请转到“ 配置”页面。
要使grafana.ini(或相应的环境变量)的任何更改生效,您需要通过重新启动Docker容器来重新启动Grafana。
环境变量配置的默认路径
环境变量 | 默认值 |
---|---|
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 |
好了,上面已经完成了登陆密码的初始化。
那么下面来继续看看如何数据持久化。
挂载数据文件,设置Grafana数据持久化
修改脚本如下:
[root@server81 granfana]# vim restart_granfana.sh #!/bin/bashbasedir=$(cd `dirname $0`;pwd) mkdir -p data # creates a folder for your dataID=$(id -u) # saves your user id in the ID variabledocker stop grafana docker rm grafana docker run \ -d --name grafana -p 3000:3000 \ -e "GF_SERVER_ROOT_URL=http://grafana.server.name" \ -e "GF_SECURITY_ADMIN_PASSWORD=newpwd" \ --user $ID --volume "$PWD/data:/var/lib/grafana" \ grafana/grafana grafana
重启脚本运行:
## 重启容器[root@server81 granfana]# ./restart_granfana.sh grafana grafana7c2cfa07cebfe61c69fa521edecead0a67f3d5139988ef7ce5c72323b8e64b32 [root@server81 granfana]# ## 查看重启之后,挂在grafana的数据文件目录[root@server81 granfana]# ls -ll data/total 400-rw-r--r-- 1 root root 409600 Jan 8 00:11 grafana.db drwxr-xr-x 2 root root 6 Jan 8 00:11 plugins drwx------ 2 root root 6 Jan 8 00:11 png drwx------ 4 root root 24 Jan 8 00:11 sessions [root@server81 granfana]#
好啦,到这里grafana已经可以数据持久化以及设置登陆的管理员密码了。
作者:DevOps海洋的渔夫
链接:https://www.jianshu.com/p/fc6a85d830ab