随着业务的越发复杂,对软件系统的要求越来越高,这意味着我们需要随时掌控系统的运行情况。因此,对系统的实时监控以及可视化展示,就成了基础架构的必须能力。

Grafana官方网站

https://grafana.com/

Grafana介绍

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2、数据源:zabbix,Graphite,InfluxDB,OpenTSDB,Elasticsearch,CloudWatch和KairosDB等;
3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

下载安装

本文这次介绍 zabbix与 Grafana结合使用
首先 先安装好zabbix 配置完成后开始安装Grafana

zabbix官网
https://www.zabbix.com/
Grafana官网
https://grafana.com/

zabbix安装这次不再赘述   没安装的可以看我之前的博客

获取Grafana

访问Grafana下载页面https://grafana.com/grafana/download在这里可获取该软件的全版本。
可以按照使用需求,进行下载相应版本。

安装Grafana

系统环境说明

[root@centos /root]
#cat  /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

[root@centos /root]
#uname -r
3.10.0-862.el7.x86_64

[root@centos /root]
#systemctl  status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

[root@centos /root]
#sestatus
SELinux status:                 disabled

Grafana

在这次安装中,我们使用的是grafana-5.2.4版本。不同版本之间功能存在着一定的差距。
[root@centos /root]
#wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.4-1.x86_64.rpm
[root@centos /root]
#yum install initscripts fontconfig  #安装依赖
grafana-5.2.4-1.x86_64.rpm
[root@centos /root]
#yum localinstall grafana-5.2.4-1.x86_64.rpm

Grafana

[root@centos /root]
#systemctl  start grafana-server.service
[root@centos /root]
#systemctl enable grafana-server.service

检查监听端口
Grafana默认监听端口为3000,可以通过修改配置文件(/etc/grafana/grafana.ini)对其做定制化配置。

[root@centos /root]
#netstat  -lntup |grep grafana
tcp6       0      0 :::3000                 :::*                    LISTEN      1333/grafana-server

Grafana的使用

访问界面

通过流量器访问 http://ip:3000 即可访问grafana页面,初始用户名与密码均为admin,可在登陆是修改默认密码。
可视化工具Grafana部署-LMLPHP
登陆成功之后可以先进行创建第一个数据源,以及第一个展示面板。
可视化工具Grafana部署-LMLPHP

Grafana For Zabbix

使用Zabbix收集数据,Grafana展示图形。Grafana默认没有zabbix作为数据源,需要给zabbix安装一个插件,然后再添加进Grafana即可。
注:本次使用zabbix版本为3.4.14。

[root@centos /root]
#zabbix_server -V
zabbix_server (Zabbix) 3.4.14

获取zabbix 插件

通过grafana-cli plugins list-remote命令 可以获取到grafana的插件列表。

[root@centos /root]
#grafana-cli plugins list-remote  |grep  zabbix
id: alexanderzobnin-zabbix-app version: 3.9.1

安装插件

[root@centos /root]
#grafana-cli plugins install alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 3.9.1
from url: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.9.1/download
into: /var/lib/grafana/plugins

✔ Installed alexanderzobnin-zabbix-app successfully
Restart grafana after installing plugins . <service grafana-server restart>
出现√即为安装成功。在安装完成后务必重启Grafana
[root@centos /root]
#systemctl  restart grafana-server.service

配置zabbix源

登陆grafana页面,开启zabbix插件。
点击enable开启插件。
可视化工具Grafana部署-LMLPHP
添加zabbix数据源
可视化工具Grafana部署-LMLPHP
相关配置项目说明:

Name给数据源起一个名字。
Default选择默认,意味着数据源将预先选定为新的面板。
Type选择数据源的类型。
Url这里的Url是http协议,地址和端口是zabbix-web提供的接口。或为zabbix的api地址。
Access访问代理,这里选择了proxy表示Grfana通过后端访问,还有direct值表示从浏览器直接访问目录。
Username输入zabbix的用户名,需要进行认证,一般使用管理员。
Password输入zabbix用户的密码。

代理(proxy)访问意味着的Grafana后端将从浏览器代理所有请求,并将它们发送到数据源。这样是有用的,因为它可以消除CORS(交叉来源站点资源)的问题,如消除需要传播到数据源到浏览器的身份验证详细信息。但还支持直接(direct)访问,因为在某些情况下可能用来访问直接根据用例和拓扑结构的Grafana、 用户和数据源的数据源。
以上信息都填写完成之后点击Save & Test,出现Success就表示成功了,就可以去利用zabbix中数据添加图形了。

下面先引入zabbix自带的dashboard,点击import。
可视化工具Grafana部署-LMLPHP
查看zabbix dashboard页面
可视化工具Grafana部署-LMLPHP
 使用grafana的好处是对图形的自定义更加简便,通过变更不同的json文件,即可在数据源中查找到想要的结果,然后绘制出图。

Grafana相关补充

Grafana插件安装目录

在Linux系统上,grafana-cli会假定grafana插件目录是/var/lib/grafana/plugins。通过指定-pluginsDir标志可以覆盖grafana-cli将要运行的目录。在Windows系统中,必须为每个呼叫指定此参数

Grafana-cli命令说明

安装插件最简单的方法是使用与grafana捆绑在一起的CLI工具grafana-cli。在修改插件之后发生任何修改之前,grafana服务器需要重新启动。

列出可用的插件
#grafana-cli plugins list-remote

安装最新版本的插件
#grafana-cli plugins install <plugin-id>

安装特定版本的插件
#grafana-cli plugins install <plugin-id> <version>

列出安装的插件
#grafana-cli plugins ls

更新所有安装的插件
#grafana-cli plugins update-all

更新一个插件
#grafana-cli plugins update <plugin-id>

删除一个插件
#grafana-cli plugins remove <plugin-id>
05-23 06:37