天天看點

2. Grafana使用docker安裝運作

2. Grafana使用docker安裝運作

參考文獻

參考官方文檔進行docker安裝Grafana。

http://docs.grafana.org/installation/docker/

使用docker安裝Grafana

首先查詢一下grafana的鏡像看看

[root@server81 granfana]# docker search grafana/grafana
INDEX       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/bash
basedir=$(cd `dirname $0`;pwd)

docker stop grafana
docker rm grafana
docker run -d --name grafana  -p 3000:3000 grafana/grafana grafana
           

運作腳本啟動服務:

[root@server81 granfana]# ls
restart_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/grafana
a5a6f2f73cd8: Pull complete
08e6195c0f29: Pull complete
b7bd3a2a524c: Pull complete
d3421658103b: Pull complete
cd7c84229877: Pull complete
49917e11f039: Pull complete
Digest: sha256:d1deecef03c1baf2c136b7f0796252820ad21f597d00af43d0e8528599112a83
Status: Downloaded newer image for docker.io/grafana/grafana:latest
96b71114e6d5e95deed134324b17ce6c96014fb514a31d2659bb9507bf56096f
[root@server81 granfana]#
## 檢視運作起來的docker程序,第一個就是grafana服務
[root@server81 granfana]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
96b71114e6d5        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   influxdb
82a294241ff7        registry:2          "/entrypoint.sh /e..."   4 weeks ago         Up 5 days           0.0.0.0:5000->5000/tcp   registry
[root@server81 granfana]#
           
那麼下面來通路看看:
2. Grafana使用docker安裝運作

Grafana的頁面現在也可以正常打開了,從上面看登陸需要使用者名和密碼,這個使用者名和密碼從哪裡來的呢?

這個初始密碼其實是儲存在配置檔案裡面的。那麼配置檔案在哪裡呢?下面來找找吧。

檢視Grafana的配置檔案(

/etc/grafana/grafana.ini

)

進入Grafana容器,查找

grafana.ini

檔案,然後看看配置檔案裡面的預設登陸使用者以及密碼。

## 進入容器内
[root@server81 granfana]# docker exec -it grafana bash
grafana@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.ini
find: '/etc/ssl/private': Permission denied
find: '/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]#
           
2. Grafana使用docker安裝運作
下面就用預設的使用者名和密碼

admin/admin

進行通路
2. Grafana使用docker安裝運作

第一次登陸的時候,會被要求需要修改密碼,如下:

2. Grafana使用docker安裝運作

我就簡單修改一個密碼為

newpwd

吧。

2. Grafana使用docker安裝運作

登陸後的界面

但是用容器啟動都有一個問題,就是容器重新開機之後,資料就會丢失,那麼下面就要考慮如何資料持久化。

另外,還有一個問題,能否直接在腳本處定義好登陸的密碼呢?

在腳本設定登陸密碼

為了驗證腳本可以設定登陸密碼,首先将容器重新開機一邊,那麼密碼就會恢複為

admin

[root@server81 granfana]# ./restart_granfana.sh
grafana
grafana
b3c1fec524d4332293ef85064de5e2596226a00830923f17e5877bea6f9d6f0d
[root@server81 granfana]#
[root@server81 granfana]# docker ps
CONTAINER 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   influxdb
82a294241ff7        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頁面如下:

2. Grafana使用docker安裝運作
2. Grafana使用docker安裝運作
那麼下面就來修改一下啟動腳本,看看能不能直接設定初始化的密碼:

配置檔案

grafana.ini

中的選項可以使用文法使用環境變量進行覆寫,格式:

GF_<SectionName>_<KeyName>

#!/bin/bash
basedir=$(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]#
           
2. Grafana使用docker安裝運作
2. Grafana使用docker安裝運作

直接就可以登陸了

還有許多配置選項。有關所有這些選項的詳細資訊,請轉到“ 配置”頁面。

要使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/bash
basedir=$(cd `dirname $0`;pwd)

mkdir -p data # creates a folder for your data
ID=$(id -u) # saves your user id in the ID variable

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" \
       --user $ID --volume "$PWD/data:/var/lib/grafana" \
       grafana/grafana grafana
           
## 重新開機容器
[root@server81 granfana]# ./restart_granfana.sh
grafana
grafana
7c2cfa07cebfe61c69fa521edecead0a67f3d5139988ef7ce5c72323b8e64b32
[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]#
           

繼續閱讀