**前置文章:**[ELK分析Nginx日志,通过Grafana可视化展示](https://www.xiaoleizhang.com/index.php/archives/120/ "ELK分析Nginx日志,通过Grafana可视化展示") **环境配置** |服务器| IP地址| | ------------ | ------------ | |Logstash+Nginx服务器|10.60.60.60| |Elasticsearch服务器|10.60.60.9| |Kibana服务器|10.60.60.27| |Grafana服务器|10.60.60.16| ------------ ------------ # 一、问题描述 前段时间我用ELK搭建了一套环境,然后使用ELK分析Nginx日志,通过Grafana可视化展示,刚开始我在公司内网访问Grafana是没有问题的,但是回到家发现地图是不显示的如下图所示: ![Grafana的Worldmap插件 地图不显示.png](https://www.xiaoleizhang.com/usr/uploads/2022/01/153787068.png) 具体原因通过排查,发现是网络问题,公司的网络出口是国外的,但是家里的网络是国内的,但是地图的URL是国外的,国内访问不了,所以导致了这个问题。 # 二、解决方法 需要替换插件里Grafana文件图片的地址 ## 1、下载上传插件 但是这里有一个问题,我刚开始使用的是grafana-cli plugins install grafana-worldmap-panel直接安装的插件,这样安装的插件版本是0.3.3,我试了很多办法还是不行,我建议使用0.3.2可以去GitHub下载后上传到服务器内 GitHub下载地址:https://github.com/grafana/worldmap-panel/tree/v0.3.2 ![GitHub worldmap-panel v0.3.2 插件下载.png](https://www.xiaoleizhang.com/usr/uploads/2022/01/1151262909.png) 之前已经通过grafana-cli plugins install grafana-worldmap-panel安装的worldmap插件可以直接在服务器内删除掉 ```shell rm -rf /var/lib/grafana/plugins/grafana-worldmap-panel/ ``` 然后上传到服务器内 ```shell [root@10-60-60-16 ~]# ll total 2620 -rw-r--r-- 1 root root 2678869 Jan 9 14:03 worldmap-panel-0.3.2.zip [root@10-60-60-16 ~]# ``` 解压并重命名,移动到相应的目录下 ```shell unzip /root/worldmap-panel-0.3.2.zip mv /root/worldmap-panel-0.3.2 /var/lib/grafana/plugins/grafana-worldmap-panel ``` ## 2、修改插件文件 需要替换插件里Grafana文件图片的地址,以及需要修改下配置文件 使用以下sed命令替换文件中的地图的url,需要替换url的文件主要是 - /var/lib/grafana/plugins/grafana-worldmap-panel/src/worldmap.ts - /var/lib/grafana/plugins/grafana-worldmap-panel/dist/module.js - /var/lib/grafana/plugins/grafana-worldmap-panel/dist/module.js.map sed命令为 ```shell sed -i 's/https:\/\/cartodb-basemaps-{s}.global.ssl.fastly.net\/light_all\/{z}\/{x}\/{y}.png/http:\/\/{s}.basemaps.cartocdn.com\/light_all\/{z}\/{x}\/{y}.png/' /var/lib/grafana/plugins/grafana-worldmap-panel/src/worldmap.ts /var/lib/grafana/plugins/grafana-worldmap-panel/dist/module.js /var/lib/grafana/plugins/grafana-worldmap-panel/dist/module.js.map sed -i 's/https:\/\/cartodb-basemaps-{s}.global.ssl.fastly.net\/dark_all\/{z}\/{x}\/{y}.png/http:\/\/{s}.basemaps.cartocdn.com\/dark_all\/{z}\/{x}\/{y}.png/' /var/lib/grafana/plugins/grafana-worldmap-panel/src/worldmap.ts /var/lib/grafana/plugins/grafana-worldmap-panel/dist/module.js /var/lib/grafana/plugins/grafana-worldmap-panel/dist/module.js.map ``` 删除MANIFEST.txt文件,类似签名验证的文件 ```shell rm /var/lib/grafana/plugins/grafana-worldmap-panel/dist/MANIFEST.txt ``` 修改defaults.ini配置文件 ```shell vim /usr/share/grafana/conf/defaults.ini ``` 找到如下内容的配置行,增加grafana-worldmap-panel,使worldmap可以不检查签名使用 ```shell allow_loading_unsigned_plugins = grafana-worldmap-panel ``` 重启Grafana服务,使修改的配置文件生效 ```shell systemctl restart grafana-server.service ``` # 三、测试效果 继续在国内访问,可以发现地图可以显示了。 ![国内访问Grafana的Worldmap插件测试效果(修改后).png](https://www.xiaoleizhang.com/usr/uploads/2022/01/383429820.png) 最后修改:2022 年 01 月 25 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏