docker環境下的Grafana安裝


一 、docker環境下的Grafana安裝

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/

三、配置郵件

vim /etc/grafana/grafana.ini

#修改一下內容
#################################### SMTP / Emailing ##########################
[smtp]
# 啟用 smtp
enabled = true
# 郵件服務器地址和端口
host = smtp.189.cn:465
# 發送告警郵件郵箱賬號
user = xuewenlong1993@189.cn
# 發送告警郵件郵箱密碼
password = xuewenlong
;cert_file =
;key_file =
;skip_verify = false
from_address = xuewenlong1993@189.cn
from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
ehlo_identity = dashboard.example.com
 
[emails]
;welcome_email_on_sign_up = false

然后重新stop docker; restart docker

四、小結:

1、docker安裝grafana雖然比較方便,但是,有些問題是必須高度關注的,如grafana容器內系統本身是以grafana用戶身份運行的,對應的掛載目錄的權限也必須調整為grafana權限。

2、在安裝測試過程中用到docker一些命令配合調試工作,比較有用,這里列出如下:

docker stop/start grafana (或者容器ID)   #停止/啟動 grafana容器,對應有start和restart來啟動和重啟容器。

docker rm grafana (或者容器ID)  #刪除grafana容器,以便后續新建同名容器

docker logs grafana (或者容器ID)  #查看grafana容器log,方便debug

docker container prune  #刪除運行異常的全部容器,運行異常就是直接使用 docker ps或docker container ls無法列出的容器。

docker ps -a 或 docker container ls -a   #列出所有容器,包括運行異常的容器。

docker inspect grafana (或者容器ID)  #查看容器grafana的配置詳情,包括容器id號,掛載信息,環境變量、主機名稱等等。因為其內容較多,可使用管道符到處到文件做更細致分析,如 docker inspect grafana > grafana.txt

docker exec -it grafana (或者容器ID) /bin/bash   或  docker exec -it grafana /bin/sh       #進入容器grafana內的console狀態,以便查探容器內的文件系統。

3、Modify permissions
The commands below run bash inside the Grafana container with your volume mapped in. This makes it possible to modify the file ownership to match the new container. Always be careful when modifying permissions.

$ docker run -ti --user root --volume "<your volume mapping here>" --entrypoint bash grafana/grafana-enterprise:8.2.0

# in the container you just started:
chown -R root:root /etc/grafana && \
chmod -R a+r /etc/grafana && \
chown -R grafana:grafana /var/lib/grafana && \
chown -R grafana:grafana /usr/share/grafana


免責聲明!

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



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