大佬:可可,我们的大屏好像挂了,没有数据和图像显示了,你尽快处理一下,老板要看的。
可可:老大,收到。
我们的大屏就是一个led屏,显示的是grafana的图像,数据来源是zabbix的监控数据。grafana是一款可视化的工具,简单的来说,可以凸显图像的逼格,一般用来展示给领导看。
大屏挂了,说明grafana出问题了。因为之前zabbix做了反响代理,grafana和zabbix是在一台服务器上的,大屏还是用的旧的grafana的地址,当然无法显示了。这个问题简单,做一下grafana的反向代理即可。
vi usr/local/nginx/conf.d/zabbix.keke.com.conf
server {
listen 80;
server_name zabbix.keke.com;
}
location grafana/ {
proxy_pass http://172.16.2.2:3000/;
}
nginx -s reload
复制
但是当我打开http://zabbix.keke.com/grafana,却没有出现想当然的结果,nginx日志报了大量的404,nginx的配置应该不可能有问题,应该是grafana的问题了,去官网看了一下,grafana有专门的反向代理配置,在配置文件加如下两行就行了。
vi etc/grafana/grafana.ini
domain = zabbix.keke.com
root_url=%(protocol)s://%(domain)s:%(http_port)s/grafana
复制
重启grafana后,打开网址,出现了熟悉的界面,多少还是有点兴奋的。
但是,因为zabbix的url换了,还是没有数据,只要把data source换成新的zabbix地址就行了。但是当我test的时候,又出现了一个神奇的错误。
zabbix api plugin error:attempt ip is too long。
zabbix允许的请求ip长度最大为39bytes,但nginx过去的请求是48bytes,超过了允许的长度。修改zabbix的api难度较大,也不现实。想着从nginx入手,找了半天也没找到限制ip大小的功能。但是,我发现zabbix的反向代理配置了,获取用户的真实ip,极有可能是因为这个功能导致请求的ip过大,取消如下配置后,成功解决问题。
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
复制
熟悉的大屏界面也回来了,问题成功解决,好了,今天就到此为止。至于为什么,我就不细讲了,因为我也不知道。