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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM