Linux云计算架构-Grafana可视化美化工具运维篇

Linux云计算架构-Grafana可视化美化工具运维篇

在学习了ZabbixPrometheus企业级监控系统之后,都需要展示监控数据,如果不懂得更好的使用Grafana这款可视化工具,那就无法更好的了解监控结果,及时保障服务器运行情况,给公司带来巨大的损失。所以这篇博客主要想深入探讨下Grafana。

1. 安装篇

Grafana官网https://grafana.com/

下载地址https://grafana.com/grafana/download

# 最新版直接看下载地址即可
wget https://dl.grafana.com/oss/release/grafana-7.3.6-1.x86_64.rpm
sudo yum install grafana-7.3.6-1.x86_64.rpm

# 博主较喜欢6.7.4版本,排列清晰。
wget https://dl.grafana.com/oss/release/grafana-6.7.4-1.x86_64.rpm
sudo yum install grafana-6.7.4-1.x86_64.rpm

安装过程:

[root@server ~]# cd /usr/local/src/
[root@server src]# rz

[root@server src]# ll
总用量 62280
-rw-r--r--. 1 root root 63773044 9月  28 21:27 grafana-6.7.4-1.x86_64.rpm
[root@server src]# yum install grafana-6.7.4-1.x86_64.rpm -y
[root@server src]# systemctl start grafana-server.service && systemctl enable grafana-server.service 

# 默认占用3000号端口
[root@server src]# netstat -antup |grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      87602/grafana-serve 

# 开放3000端口号
[root@server ~]# firewall-cmd  --permanent --zone=public --add-port=3000/tcp
success
[root@server ~]# firewall-cmd --reload
success

输入网址http://192.168.8.132:3000/login

在这里插入图片描述

初始账号密码admin/admin

需要重置密码:

在这里插入图片描述

登录后,可以看到首页,也表示Grafana已经安装完成了。

在这里插入图片描述

2. 添加Data Source(数据源)、导入plugins(插件、外挂)、Dashboard(仪表盘)篇

2.1 添加Data Source数据源

这里以添加Zabbix数据源为例:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

看到如下标识即表示添加成功:

在这里插入图片描述

2.2 导入Dashboard仪表盘

Dashboard的导入即是一些无私奉献的人,把自己制作的仪表盘,导出后,发布到官网上,然后其他人就可以上去下载下来,并应用在自己的Grafana中。

①数据源自带仪表盘

一般来说,数据源本身会带有一些仪表盘,点击“Import”即可使用。

在这里插入图片描述

打开仪表盘就可以看到各个面板的数据:

在这里插入图片描述

②外部导入仪表盘

官网仪表盘https://grafana.com/grafana/dashboards

在这里插入图片描述

比如选择某个面板:

在这里插入图片描述

在这里插入图片描述

导入到grafana:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击Import即可导入。

③导出仪表盘

在这里插入图片描述

2.3 导入Plugins插件

已有插件:

在这里插入图片描述

官网插件: https://grafana.com/grafana/plugins

在这里插入图片描述

在这里插入图片描述

导入并加载插件,这里以导入zabbix数据源为例:

在这里插入图片描述

在这里插入图片描述

# 解压到plugins目录下
[root@server ~]# unzip alexanderzobnin-grafana-zabbix-v3.12.4-1-g309146f.zip -d /var/lib/grafana/plugins/
[root@server ~]# systemctl restart grafana-server.service 
[root@server ~]# ll /var/lib/grafana/plugins/
总用量 4
drwxr-xr-x. 8 root root 4096 7月  28 16:05 alexanderzobnin-grafana-zab

再次在插件列表中搜索,就可以看到刚刚导入的zabbix插件了,这时zabbix还不在数据源中,要启用才行。

在这里插入图片描述

启用后,就可以使用该数据源了。

在这里插入图片描述

3. 目录文件篇

# 查看安装的rpm包,及被安装的文件路径
[root@rancher ~]# rpm -qa |grep grafana
grafana-6.7.4-1.x86_64
[root@rancher ~]# rpm -ql grafana-6.7.4-1.x86_64
[root@rancher ~]# rpm -ql grafana-6.7.4-1.x86_64 > grafana.txt

主要涉及几个目录:

  • grafana配置文件/etc/grafana/grafana.ini

  • plugins外挂存放位置/var/lib/grafana/plugins/

  • png外来图片存放位置/var/lib/grafana/png/

  • 网站数据目录/usr/share/grafana/

    [root@rancher ~]# cd /usr/share/grafana/
    [root@rancher grafana]# ls
    bin  conf  public  scripts  tools  VERSION
    
    # bin      二进制文件
    # conf     配置文件
    # public   主要的网站数据,包括各前端代码【重点】
    # scripts  脚本目录
    # tools    存放某些工具
    # VERSION  grafana版本文件,存放版本信息
    

在这里插入图片描述

4. 汉化篇

Grafana是多语言开发的系统,主要是TypeScriptGo语言开发的。

grafana源码下载地址https://github.com/grafana/grafana/tree/v6.7.x

在这里插入图片描述

4.1 汉化TypeScript代码

4.1.1 环境部署

# https://yarn.bootcss.com/
# https://yarn.bootcss.com/docs/install/#centos-stable
# 获取repo仓库
[root@server ~]# curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
[yarn]
name=Yarn Repository
baseurl=https://dl.yarnpkg.com/rpm/
enabled=1
gpgcheck=1
gpgkey=https://dl.yarnpkg.com/rpm/pubkey.gpg
[root@server ~]# curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -

# 安装nodejs和yarn
[root@server ~]# yum install -y nodejs
[root@server ~]# yum install -y yarn

# 指定yarn源,这里使用淘宝的源
[root@server ~]# yarn config set registry https://registry.npm.taobao.org --global
yarn config v1.22.5
success Set "registry" to "https://registry.npm.taobao.org".
Done in 0.06s.
[root@server ~]# yarn config get registry
https://registry.npm.taobao.org
[root@server ~]# yarn config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/ -g
yarn config v1.22.5
success Set "sass_binary_site" to "https://npm.taobao.org/mirrors/node-sass/".
Done in 0.10s.

# 上github获取到grafana源代码文件,并解压到指定目录
https://github.com/grafana/grafana/tree/v6.7.x
[root@server ~]# unzip grafana-6.7.x.zip -d /usr/local/src/

# 安装依赖,网速好的还是挺快的。
# 注意yarn install执行的所在目录
[root@server ~]# cd /usr/local/src/grafana-6.7.x/
[root@server grafana-6.7.x]# yarn version
yarn version v1.22.5
info Current version: 6.7.5
[root@server grafana-6.7.x]# yarn install
yarn install v1.22.5
[1/5] Validating package.json...
[2/5] Resolving packages...
success Already up-to-date.
Done in 3.53s.

======================================================================================
# yarn install若在最后一步yarn building卡住了,可以配置以下文件解决。
# 在grafana-6.7.x下配置以下文件,再次yarn install
cat << EOF > .yarnrc
registry "https://registry.npm.taobao.org"
sass_binary_site "https://npm.taobao.org/mirrors/node-sass/"
phantomjs_cdnurl "http://cnpmjs.org/downloads"
electron_mirror "https://npm.taobao.org/mirrors/electron/"
sqlite3_binary_host_mirror "https://foxgis.oss-cn-shanghai.aliyuncs.com/"
profiler_binary_host_mirror "https://npm.taobao.org/mirrors/node-inspector/"
chromedriver_cdnurl "https://cdn.npm.taobao.org/dist/chromedriver"
EOF
======================================================================================

# 修改本地源代码,替换服务器源码中public目录【直接修改服务器中的源码也可以,但不太建议直接操作服务器】

# 重新构建环境(要注意构建时的当前目录)
[root@server grafana-6.7.x]# yarn build
yarn run v1.22.5
$ grunt build
Version 6.7.5
/usr/local/src/grafana-6.7.x
Running "clean:release" (clean) task
>> 0 paths cleaned.

Running "clean:build" (clean) task
>> 0 paths cleaned.

Running "phantomjs" task

Running "copy:phantom_bin" (copy) task
Copied 1 file

Running "exec:webpack" (exec) task
/usr/local/src/grafana-6.7.x
Starting type checking service...
Using 1 worker with 4096MB memory limit
。。。。省略build过程。。。
Done.
Done in 296.26s.


# 重启grafana服务,检查汉化情况。
# -rp  递归持续复制,并保留文件的原有属性
[root@server grafana-6.7.x]# /bin/cp -rp public/ /usr/share/grafana
[root@server grafana-6.7.x]# systemctl restart grafana-server

===========================================================
# 汉化操作,说白了就是在源码上修改为中文,重新构建环境后,替换到当前环境。
# 不建议直接在生产环境修改,可以在本地修改后,再使用ftp或winscp、xshell上传到服务器的指定目录。
# windows上建议使用notepad++查找代码,使用pycharm进行重构,物理内存应大于4G。

# 操作技巧:
1. grep -ril "key_word" *   查询某个关键字在当前目录下的哪个文件中

4.1.2 TypeScript汉化实战

在本文中,以汉化以下界面举例:

在这里插入图片描述

①在本地的pycharm中打开grafana6.7.x的源代码:

在这里插入图片描述

②通过关键词搜索Log InForgot your password? 【pycharm中,快捷键Ctrl+Shift+F用于搜索关键字在哪个文件下】

所在文件路径public/app/core/components/Login/LoginForm.tsx

在这里插入图片描述

在这里插入图片描述

③修改关键字为中文,然后提交到网站数据目录/usr/share/grafana对应目录下

注:一开始,博主的pycharm用的是社区版,是没有Tools-Deployment-Configuration进行ftp配置的,需下载专业版才可以实现代码提交。

在这里插入图片描述

更新代码到生产环境的grafana的对应目录,需提前配置好FTP文件传输,详情可见拓展1。

在这里插入图片描述

在这里插入图片描述

# 这时,服务器中的源码是已经汉化的源码,需要构建下
[root@server ~]# cd /usr/local/src/grafana-6.7.x/
[root@server grafana-6.7.x]# yarn build

# 将构建后的public目录下的代码替换到生产环境中,注意要先备份生产环境的public目录,有备无患。
[root@server grafana-6.7.x]# mv /usr/share/grafana/public /usr/share/grafana/public.source
[root@server grafana-6.7.x]# /bin/cp -r /usr/local/src/grafana-6.7.x/public /usr/share/grafana/public
[root@server ~]# systemctl restart grafana-server.service 

在这里插入图片描述

4.2 汉化Go代码

4.2.1 环境部署

对于go语音编写的代码,使用上述汉化TypeScript代码的方式是不可行的,需要使用go解释器构建。

go下载地址https://gomirrors.org/

# 安装go,下载较慢可以用迅雷。
[root@server ~]# wget https://gomirrors.org/dl/go/go1.15.6.linux-amd64.tar.gz
[root@server ~]# ll go1.15.6.linux-amd64.tar.gz 
-rw-r--r-- 1 root root 120951514 12月 27 17:23 go1.15.6.linux-amd64.tar.gz
[root@server ~]# tar xf go1.15.6.linux-amd64.tar.gz -C /usr/local/


# 设置环境变量
# GOPATH 用来存放grafana代码
================================================
如果遇到加入环境变量后,很多命令无法使用
可以先恢复PATH环境变量【export PATH=/usr/bin:/usr/sbin:/bin:/sbin】,然后再纠正新添加的环境变量。
================================================

[root@server ~]# vim /etc/profile
export GOROOT=/usr/local/go
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/go/bin
export GOPATH=/home/go/src
export GO111MODULE=on
export GOPROXY=https://goproxy.io
[root@server ~]# source /etc/profile


# 查看go的版本
[root@server ~]# go version
go version go1.15.6 linux/amd64


# 下载或克隆源码到GOPATH目录下
[root@server ~]# mkdir -p /home/go/src
[root@server ~]# ll grafana-6.7.x.zip 
-rw-r--r-- 1 root root 19714428 12月 28 10:31 grafana-6.7.x.zip
[root@server ~]# unzip grafana-6.7.x.zip -d /home/go/src/

# 汉化grafana源码中的go代码文件

# 构建及重启grafana
# 在未汉化前,可以使用以下命令安装并构建一次grafana,看能否成功。
[root@server ~]# cd /home/go/src/grafana-6.7.x/
[root@server grafana-6.7.x]# cat << EOF > build.sh 
go run build.go setup
go run build.go build
systemctl stop grafana-server
sleep 1
/bin/cp -rp ./bin/linux-amd64/grafana-server /usr/sbin/
sleep 1
systemctl start grafana-server
EOF
[root@server grafana-6.7.x]# chmod 755 build.sh 
[root@server grafana-6.7.x]# ./build.sh 
# 可以通过github上的Dockerfile查看go的编译过程
# gitee上克隆代码相对于github快很多,晚github一天更新,内容完全一样。

4.2.2 Go汉化实战

下面以汉化以下界面为例:
在这里插入图片描述
找到对应的go代码:
在这里插入图片描述
汉化本地源代码,并导入到服务器源代码:
在这里插入图片描述
不放心就在服务器上检查下:
在这里插入图片描述
安装并构建grafana,然后替换grafana-server文件,这里直接用脚本执行:

[root@server grafana-6.7.x]# cat << EOF > build.sh 
go run build.go setup
go run build.go build
systemctl stop grafana-server
sleep 1
/bin/cp -rp ./bin/linux-amd64/grafana-server /usr/sbin/
sleep 1
systemctl start grafana-server
EOF
[root@server grafana-6.7.x]# chmod 755 build.sh 
[root@server grafana-6.7.x]# ll build.sh 
-rwxr-xr-x 1 root root 177 12月 29 10:58 build.sh

# 开始安装、重构、替换启动脚本
[root@server grafana-6.7.x]# ./build.sh 

在这里插入图片描述
检查下汉化结果:
在这里插入图片描述

总的来说,整个grafana都是可以进行汉化的,如果无法汉化,估计是没有正确汉化方式。

想学习研究的可以看看这个UP主的视频https://www.bilibili.com/video/BV15a4y1a75c

github上已经有汉化的差不多的代码:

①汉化代码https://github.com/tghfly/grafana-chinese

②直接克隆代码git clone https://github.com/tghfly/grafana-chinese.git

拓展1:配置pycharm,推送代码到服务器

服务器部署FTP服务,使用本地用户登录
[root@server ~]# yum install -y vsftpd   # FTP服务端
[root@server ~]# yum install -y ftp      # FTP客户端
[root@server ~]# systemctl start vsftpd && systemctl enable vsftpd

# 配置root用户登录FTP,直接登录时不允许登录的。
[root@server ~]# ftp 192.168.80.165
Connected to 192.168.80.165 (192.168.80.165).
220 (vsFTPd 3.0.2)
Name (192.168.80.165:root): root
530 Permission denied.
Login failed.
ftp> exit
221 Goodbye.

# 在黑名单中去除root
[root@server ~]# sed -i 's/root/# root/g' /etc/vsftpd/ftpusers
[root@server ~]# sed -i 's/root/# root/g' /etc/vsftpd/user_list
[root@server ~]# systemctl restart vsftpd

# 再次登录,可以使用root登陆了
[root@server ~]# ftp 192.168.80.165
Connected to 192.168.80.165 (192.168.80.165).
220 (vsFTPd 3.0.2)
Name (192.168.80.165:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/root"
ftp> exit
221 Goodbye.

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通过以上FTP配置,在本地修改的源码就可以通过FTP传输到服务器。

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/111862347
今日推荐