zabbix+Grafana安装使用监控结合

Posted by Yancy on 2016-06-17

前言

做运维的很重要的基础工作就是监控去准确定位问题,之前用的是Nagios做过监控,也用过cacti,这个之前在IDC做CDN网络方面用的比较多,监控流量好帮手。

为什么选择zabbix其实现在是算开源监控比较火的。更重要是几款监控做了对比。

cacti、zabbix同nagios一样,都是非常优势的开源监控软件。

Nagios: 轻量级/方便/快捷是nagios最大的优势,特别是它的插件机制,你可以用自己熟悉的语言实现几乎任何自己想要实现的监控。但nagios的图标图形显示的很丑,这方面的确不敢恭维。
Cacti: cacti的优势表现在系统方面的监控,特别针对流量的监控功能, 以及cacti图形显示美观等,cacti在这两方面表现的都不错。
Zabbix: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。功能全面,很多公司都是基于zabbix自建的监控平台。但维护相对困难,相比没有nagios轻量及灵活。

现在sass监控,也成为企业监控的选择之一了,加上zabbix、Ganglia等,再加上APM的兴起,监控体系也越来越完善了。从基础网络监控、硬件、服务器、应用、性能,然后端到端等方面,都可以插入,但是没有一个比较完整的监控体系是可以完全胜任的,所以还需要根据自身的应用和目标去综合做选择。

前几天接触到了ELK(logstash, elasticsearch, kibana)这套日志收集展示工具集,的确很方便,这样对以后开发指定权限查看日志,可以很好管理。

这里简单说了下为什么使用zabbix, Ganglia的功能是哪些?下面有讲到。

Grafana是什么?

个人认为: Grafana是一款对后端数据进行实时展示,跟elk那种差不多,非常清晰而且灵活丰富的图形化选项,可以混合多种风格,支持白天和夜间的模式,多个数据源,而跟zabbix比起来没有那么专业监控,没有那么丰富的监控功能,就是一个图像展示。

功能亮点

  • 丰富的图形与Grafana
  • 模板变量可以创建可重用的仪表板

官方是怎么解释Grafana的:

grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。
grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。
grafana有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。

Grafana功能亮点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
丰富的图形
完全交互的,可编辑的图表。多个Y轴,对数刻度和选项。
混合造型
画出你的图形,你想怎么。混线,点和酒吧。混合堆叠瓦特/隔离系列。
主题
附带两个主题。如果你不喜欢默认的黑暗的主题,切换到光的主题。
模板变量
创建变量会自动填入值从您的数据库。
一般可重复使用
您可以在度量查询和面板标题中使用变量。
重复面板
自动重复每个选定的变量值的行或面板。
数据源
支持Graphite,Elasticsearch,Prometheus,InfluxDB,OpenTSDB和KairosDB开箱。或使用插件功能来添加自己的。
认证
管理用户,角色和组织。通过LDAP,基本验证与认证代理
注释
注释与datasouces包括Elasticsearch,石墨和InfluxDB丰富的活动图
快照共享
创建和共享在1点击一个完全交互式图表和只有你的团队或全世界分享。

Grafana官网

Granfana官网:http://grafana.org

Granfana官网安装参考文档

安装文档:http://docs.grafana.org/installation/

grafana和LDAP集成:

LDAP集成:http://docs.grafana.org/installation/ldap/

grafana演示站点

grafana演示站点: http://play.grafana.org/

3.0版本关于Grafana-zabbix插件官方文档:

Grafana-zabbix插件安装官方使用文档

官网下载地址

Download Grafana:Download Grafana

安装Grafana

  • 温馨提示:
1
2
grafana的版本和grafana-zabbix的版本必须匹配,否则会出现异常。
本文以grafana2.5版本为例讲解,如果后面grafana和grafana-zabbix更新,需要将2个版本匹配即可。

现在最新版本是3.0版本,我们可以试试安装在基于RPM的Linux版本(CentOS,Fedora的,OpenSuse当中,红帽)

安装最新稳定版:

1
sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.1.0-1468321182.x86_64.rpm

如果被墙,可以到我github上面下载:Grafana

这里需要安装下依赖包:

1
2
$ sudo yum install initscripts fontconfig
$ sudo rpm -Uvh grafana-3.1.0-1468321182.x86_64.rpm

或者选择YUM方式安装:

1
2
3
4
5
6
7
8
9
10
11
vim etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

还有,如果你想测试版或发布候选测试存储库。

1
baseurl=https://packagecloud.io/grafana/testing/el/6/$basearch

然后通过安装Grafana yum的命令。

1
$ sudo yum install grafana

RPM GPG密钥
RPM包进行签名,可以验证这个签名公共GPG密钥。

包装细节

  • 安装二进制文件到 /usr/sbin/grafana-server
  • 副本的init.d脚本/etc/init.d/grafana-server
  • 默认的安装文件环境,以在/etc/sysconfig/grafana-server
  • 拷贝配置文件/etc/grafana/grafana.ini
  • 安装systemd服务(如果systemd可用)名称grafana-server.service
  • 默认配置使用的日志文件在/var/log/grafana/grafana.log
  • 默认配置指定以sqlite3的数据库/var/lib/grafana/grafana.db

启动服务(的init.d服务)

1
$ sudo service grafana-server start

这将启动grafana服务进程作为grafana用户,这是包安装过程中创建。默认HTTP端口是 3000,和默认的用户和组管理。

要配置服务器Grafana在启动时启动:

1
sudo /sbin/chkconfig --add grafana-server

centos 7 系统启动服务:

1
2
3
$ systemctl daemon-reload
$ systemctl start grafana-server
$ systemctl status grafana-server

centos 7 设置开机启动

1
sudo systemctl enable grafana-server.service

环境文件

该systemd服务文件和脚本的init.d都使用位于文件 在/etc/sysconfig/grafana服务启动后端时所使用的环境变量。
在这里,您可以覆盖日志目录,数据目录和其他变量。

记录

默认情况下Grafana将记录到的/var/log/grafana

数据库

默认配置指定位于一个sqlite3的数据库 /var/lib/grafana/grafana.db。请备份升级之前,这个数据库。你也可以使用MySQL或者Postgres作为Grafana数据库上详述配置页面。

组态

该配置文件位于/etc/grafana/grafana.ini.去配置页面上的所有这些选项的详细信息。

配置

http://docs.grafana.org/installation/configuration/#database

配置文件里分段给出了非常详细的说明,非常人性化

默认使用的是sqlite3的,这里我调整为自己MySQL的。

1.创建数据库和用户

1
2
3
4
5
6
7
8
mysql> CREATE DATABASE grafana DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.02 sec)
mysql> GRANT ALL ON grafana.* TO grafana@'192.168.1.%' IDENTIFIED BY 'haozhuo.com' WITH GRANT OPTION;
Query OK, 0 rows affected (0.26 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)

2.指定数据库及认证信息

cp /etc/grafana/grafana.ini{,.default}
vim /etc/grafana/grafana.ini

配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[database]
# Either "mysql", "postgres" or "sqlite3", it's your choice
type = mysql
host = 192.168.1.201:3306
name = grafana
user = grafana
password = haozhuo.com
[session]
# Either "memory", "file", "redis", "mysql", "postgres", default is "file"
provider = redis
provider_config = addr=127.0.0.1:6379,pool_size=100,db=grafana
cookie_name = grafana_sess
cookie_secure = false
session_life_time = 86400

grafana.ini 配置文件详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
app_mode:应用名称,默认是production
[path]
data:一个grafana用来存储sqlite3、临时文件、回话的地址路径
logs:grafana存储logs的路径
[server]
http_addr:监听的ip地址,,默认是0.0.0.0
http_port:监听的端口,默认是3000
protocol:http或者https,,默认是http
domain:这个设置是root_url的一部分,当你通过浏览器访问grafana时的公开的domian名称,默认是localhost
enforce_domain:如果主机的header不匹配domian,则跳转到一个正确的domain上,默认是false
root_url:这是一个web上访问grafana的全路径url,默认是%(protocol)s://%(domain)s:%(http_port)s/
router_logging:是否记录web请求日志,默认是false
cert_file:如果使用https则需要设置
cert_key:如果使用https则需要设置
[database]
grafana默认需要使用数据库存储用户和dashboard信息,默认使用sqlite3来存储,你也可以换成其他数据库
type:可以是mysql、postgres、sqlite3,默认是sqlite3
path:只是sqlite3需要,定义sqlite3的存储路径
host:只是mysql、postgres需要,默认是127.0.0.1:3306
name:grafana的数据库名称,默认是grafana
user:连接数据库的用户
password:数据库用户的密码
ssl_mode:只是postgres使用
[security]
admin_user:grafana默认的admin用户,默认是admin
admin_password:grafana admin的默认密码,默认是admin
login_remember_days:多少天内保持登录状态
secret_key:保持登录状态的签名
disable_gravatar:
[users]
allow_sign_up:是否允许普通用户登录,如果设置为false,则禁止用户登录,默认是true,则admin可以创建用户,并登录grafana
allow_org_create:如果设置为false,则禁止用户创建新组织,默认是true
auto_assign_org:当设置为true的时候,会自动的把新增用户增加到id为1的组织中,当设置为false的时候,新建用户的时候会新增一个组织
auto_assign_org_role:新建用户附加的规则,默认是Viewer,还可以是Admin、Editor
[auth.anonymous]
enabled:设置为true,则开启允许匿名访问,默认是false
org_name:为匿名用户设置组织名称
org_role:为匿名用户设置的访问规则,默认是Viewer
[auth.github]
针对github项目的,很明显,呵呵
enabled = false
allow_sign_up = false
client_id = some_id
client_secret = some_secret
scopes = user:email
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
team_ids =
allowed_domains =
allowed_organizations =
[auth.google]
针对google app的,呵呵
enabled = false
allow_sign_up = false
client_id = some_client_id
client_secret = some_client_secret
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
auth_url = https://accounts.google.com/o/oauth2/auth
token_url = https://accounts.google.com/o/oauth2/token
api_url = https://www.googleapis.com/oauth2/v1/userinfo
allowed_domains =
[auth.basic]
enabled:当设置为true,则http api开启基本认证
[auth.ldap]
enabled:设置为true则开启LDAP认证,默认是false
config_file:如果开启LDAP,指定LDAP的配置文件/etc/grafana/ldap.toml
[auth.proxy]
允许你在一个HTTP反向代理上进行认证设置
enabled:默认是false
header_name:默认是X-WEBAUTH-USER
header_property:默认是个名称username
auto_sign_up:默认是true。开启自动注册,如果用户在grafana DB中不存在
[analytics]
reporting_enabled:如果设置为true,则会发送匿名使用分析到stats.grafana.org,主要用于跟踪允许实例、版本、dashboard、错误统计。默认是true
google_analytics_ua_id:使用GA进行分析,填写你的GA ID即可
[dashboards.json]
如果你有一个系统自动产生json格式的dashboard,则可以开启这个特性试试
enabled:默认是false
path:一个全路径用来包含你的json dashboard,默认是/var/lib/grafana/dashboards
[session]
provider:默认是file,值还可以是memory、mysql、postgres
provider_config:这个值的配置由provider的设置来确定,如果provider是file,则是data/xxxx路径类型,如果provider是mysql,则是user:password@tcp(127.0.0.1:3306)/database_name,如果provider是postgres,则是user=a password=b host=localhost port=5432 dbname=c sslmode=disable
cookie_name:grafana的cookie名称
cookie_secure:如果设置为true,则grafana依赖https,默认是false
session_life_time:session过期时间,默认是86400秒,24小时
以下是官方文档没有,配置文件中有的
[smtp]
enabled = false
host = localhost:25
user =
password =
cert_file =
key_file =
skip_verify = false
from_address = admin@grafana.localhost
[emails]
welcome_email_on_sign_up = false
templates_pattern = emails/*.html
[log]
mode:可以是console、file,默认是console、file,也可以设置多个,用逗号隔开
buffer_len:channel的buffer长度,默认是10000
level:可以是"Trace", "Debug", "Info", "Warn", "Error", "Critical",默认是info
[log.console]
level:设置级别
[log.file]
level:设置级别
log_rotate:是否开启自动轮转
max_lines:单个日志文件的最大行数,默认是1000000
max_lines_shift:单个日志文件的最大大小,默认是28,表示256MB
daily_rotate:每天是否进行日志轮转,默认是true
max_days:日志过期时间,默认是7,7天后删除

3.重启grafana

service grafana-server restart
tail -f /var/log/grafana/grafana.log

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
[root@LAN_zabbix ~]# tail -f /var/log/grafana/grafana.log
t=2016-07-14T00:49:01+0800 lvl=info msg="Executing migration" logger=migrator id="Rename table dashboard to dashboard_v1 - v1"
t=2016-07-14T00:49:01+0800 lvl=info msg="Executing migration" logger=migrator id="create dashboard v2"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="create index IDX_dashboard_org_id - v2"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_dashboard_org_id_slug - v2"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="copy dashboard v1 to v2"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="drop table dashboard_v1"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="alter dashboard.data to mediumtext v1"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="Add column updated_by in dashboard - v2"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="Add column created_by in dashboard - v2"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="Add column gnetId in dashboard"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="Add index for gnetId in dashboard"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="create data_source table"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="add index data_source.account_id"
t=2016-07-14T00:49:02+0800 lvl=info msg="Executing migration" logger=migrator id="add unique index data_source.account_id_name"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="drop index IDX_data_source_account_id - v1"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="drop index UQE_data_source_account_id_name - v1"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="Rename table data_source to data_source_v1 - v1"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="create data_source table v2"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="create index IDX_data_source_org_id - v2"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_data_source_org_id_name - v2"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="copy data_source v1 to v2"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="Drop old table data_source_v1 #2"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="Add column with_credentials"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="create api_key table"
t=2016-07-14T00:49:03+0800 lvl=info msg="Executing migration" logger=migrator id="add index api_key.account_id"
t=2016-07-14T00:49:04+0800 lvl=info msg="Executing migration" logger=migrator id="add index api_key.key"
t=2016-07-14T00:49:04+0800 lvl=info msg="Executing migration" logger=migrator id="add index api_key.account_id_name"
t=2016-07-14T00:49:04+0800 lvl=info msg="Executing migration" logger=migrator id="drop index IDX_api_key_account_id - v1"
t=2016-07-14T00:49:04+0800 lvl=info msg="Executing migration" logger=migrator id="drop index UQE_api_key_key - v1"
t=2016-07-14T00:49:04+0800 lvl=info msg="Executing migration" logger=migrator id="drop index UQE_api_key_account_id_name - v1"
t=2016-07-14T00:49:04+0800 lvl=info msg="Executing migration" logger=migrator id="Rename table api_key to api_key_v1 - v1"
t=2016-07-14T00:49:04+0800 lvl=info msg="Executing migration" logger=migrator id="create api_key table v2"
t=2016-07-14T00:49:04+0800 lvl=info msg="Executing migration" logger=migrator id="create index IDX_api_key_org_id - v2"
t=2016-07-14T00:49:05+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_api_key_key - v2"
t=2016-07-14T00:49:05+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_api_key_org_id_name - v2"
t=2016-07-14T00:49:05+0800 lvl=info msg="Executing migration" logger=migrator id="copy api_key v1 to v2"
t=2016-07-14T00:49:05+0800 lvl=info msg="Executing migration" logger=migrator id="Drop old table api_key_v1"
t=2016-07-14T00:49:06+0800 lvl=info msg="Executing migration" logger=migrator id="create dashboard_snapshot table v4"
t=2016-07-14T00:49:18+0800 lvl=info msg="Executing migration" logger=migrator id="drop table dashboard_snapshot_v4 #1"
t=2016-07-14T00:49:18+0800 lvl=info msg="Executing migration" logger=migrator id="create dashboard_snapshot table v5 #2"
t=2016-07-14T00:49:18+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_dashboard_snapshot_key - v5"
t=2016-07-14T00:49:18+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_dashboard_snapshot_delete_key - v5"
t=2016-07-14T00:49:19+0800 lvl=info msg="Executing migration" logger=migrator id="create index IDX_dashboard_snapshot_user_id - v5"
t=2016-07-14T00:49:19+0800 lvl=info msg="Executing migration" logger=migrator id="alter dashboard_snapshot to mediumtext v2"
t=2016-07-14T00:49:19+0800 lvl=info msg="Executing migration" logger=migrator id="create quota table v1"
t=2016-07-14T00:49:19+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_quota_org_id_user_id_target - v1"
t=2016-07-14T00:49:19+0800 lvl=info msg="Executing migration" logger=migrator id="create plugin_setting table"
t=2016-07-14T00:49:19+0800 lvl=info msg="Executing migration" logger=migrator id="create index UQE_plugin_setting_org_id_plugin_id - v1"
t=2016-07-14T00:49:19+0800 lvl=info msg="Executing migration" logger=migrator id="create session table"
t=2016-07-14T00:49:20+0800 lvl=info msg="Executing migration" logger=migrator id="Drop old table playlist table"
t=2016-07-14T00:49:20+0800 lvl=info msg="Executing migration" logger=migrator id="Drop old table playlist_item table"
t=2016-07-14T00:49:20+0800 lvl=info msg="Executing migration" logger=migrator id="create playlist table v2"
t=2016-07-14T00:49:20+0800 lvl=info msg="Executing migration" logger=migrator id="create playlist item table v2"
t=2016-07-14T00:49:20+0800 lvl=info msg="Executing migration" logger=migrator id="drop preferences table v2"
t=2016-07-14T00:49:20+0800 lvl=info msg="Executing migration" logger=migrator id="drop preferences table v3"
t=2016-07-14T00:49:20+0800 lvl=info msg="Executing migration" logger=migrator id="create preferences table v3"
t=2016-07-14T00:49:20+0800 lvl=info msg="Created default admin user: [admin]"
t=2016-07-14T00:49:20+0800 lvl=info msg="Starting plugin search" logger=plugins
t=2016-07-14T00:49:20+0800 lvl=eror msg="Plugins: Failed to load plugin json file: [/usr/share/grafana/public/app/plugins/datasource/zabbix/plugin.json invalid character '\"' after object key:value pair], err: %!v(MISSING)"
t=2016-07-14T00:49:20+0800 lvl=info msg="Server Listening" logger=server address=0.0.0.0:3000 protocol=http subUrl=

logger=server address=0.0.0.0:3000 protocol=http

Dashboard

web:

http://192.168.1.220:3000

默认用户名:admin

默认用户名密码:admin

登录后一片空白,所以需要安装相应插件。

grafana-zabbix插件

1
2
3
4
5
https://github.com/alexanderzobnin/grafana-zabbix
http://play.grafana-zabbix.org/
http://docs.grafana-zabbix.org/installation/
http://docs.grafana-zabbix.org/installation/configuration/
https://grafana.net/plugins/alexanderzobnin-zabbix-app/installation

1.安装插件

官网讲的非常详细参考链接:http://docs.grafana-zabbix.org/installation/

1
2
3
4
5
6
7
8
[root@LAN_zabbix ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 3.0.0
from url: https://grafana.net/api/plugins/alexanderzobnin-zabbix-app/versions/3.0.0/download
into: /var/lib/grafana/plugins
✔ Installed alexanderzobnin-zabbix-app successfully
Restart grafana after installing plugins . <service grafana-server restart>

然后在登陆查看,这里已经安装上zabbix插件了。

三、grafana使用

grafana的仪表和zabbix的监控差不多,基本是先创建监控模板、监控项,然后再添加仪表。这里先建立数据源,再创建仪表对象,并添加模板,最后添加仪表。

组态

启用插件

转到Grafana侧面板插件,选择应用程序选项卡,然后选择的zabbix,打开配置 选项卡并启用插件。

1.配置zabbix数据源

启用插件后可以添加的zabbix数据源。

要添加新的zabbix数据源公开数据源在侧面板中,单击添加数据源,并选择的zabbix从下拉列表中。

http://192.168.1.220/zabbix/api_jsonrpc.php

注意: api_jsonrpc.php是zabbix的API调用接口

HTTP设置

  • 网址:设置的zabbix API URL(完整路径api_jsonrpc.php)。
  • 访问:
    • 代理:通过Grafana后端访问
    • 直接:从浏览器访问。
  • HTTP认证:配置如果使用代理验证。
    • 基本认证:
    • 凭据:
      代理访问意味着Grafana后端将代理从浏览器的所有请求,并送他们到数据源。这是有用的,因为它可以消除CORS(跨产地站点资源)的问题,以及消除需要​​宣传认证细节数据源到浏览器。

直接访问仍然支持,因为在某些情况下,可能是有用的直接访问数据源取决于Grafana,用户,和数据源的使用情况和拓扑。

ZABBIX API细节

  • 用户和密码:设置登录访问的zabbix API。同时检查用户的权限的zabbix如果你不能得到任何组和主机的Grafana。
  • 趋势:启用如果您使用的zabbix 3.x或补丁中的zabbix 2.x的趋势支撑(ZBXNEXT-1193)。此选项严格推荐用于显示时间长周期(超过几天,在不同的zabbix您的项目的更新间隔的),因为项目历史几天包含吨的点。使用趋势将增加Grafana性能。

    • 从使用趋势之后的趋势将被使用的时间。默认值是7天(7天)。您可以在Grafana格式的时间。有效时间specificators是:
  • ^ h -小时

  • ð -天
  • 中号 -个月

  • 缓存更新间隔:插件缓存提高性能的一些API请求。将该值设置为所需的缓存生存期(此选项影响类的物品列表数据)。
    然后单击添加 -数据源将被添加,您可以使用检查连接 测试连接按钮。此功能可以帮助找到一些错误,类似于无效的用户名或密码,错误的API网址。

导入示例仪表板

您可以从仪表盘导入示例仪表板选项卡中的插件配置。

请注意有关的zabbix 2.2或更低

ZABBIX 2.4之前的zabbix API(api_jsonrpc.php)不允许跨域请求(CORS)。你可以得到HTTP错误412(预处理失败)。要修复它添加此代码的版权后,立即api_jsonrpc.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
标题(“访问控制允许来源:*');
标题(“访问控制允许信头:Content-Type的');
标题(“访问控制允许的方法:POST');
标题(“访问控制,最大年龄:1000');
如果($ _ SERVER [ 'REQUEST_METHOD' ] === '选项'){
返回 ;
}

之前

1
2
require_once dirname( __FILE__ ). '/include/func.inc.php' ;
require_once dirname( __FILE__ ). '/include/classes/core/CHttpRequest.php' ;

完全修复上市。欲了解更多详情,请参见ZABBIX发出ZBXNEXT-1377 和ZBX-8459。
请注意有关浏览器缓存

更新插件,清除浏览器缓存和重新加载应用程序页面后。详情请参见铬, 火狐。您需要清除缓存而已,没有Cookie,历史记录和其他数据。

升级

从2.X升级

后启用的zabbix应用到数据源,打开你的配置的zabbix数据源端选择的zabbix从类型列表中再次。这是必要的,因为插件ID在Grafana 3.0改变。

参考官网配置数据源:http://docs.grafana-zabbix.org/installation/configuration/

###入门Grafana-zabbix

你经过安装和配置Grafana-zabbix数据源,让我们创建一个简单的仪表板。

下面是自带的模板,自己新建的模板在我github上面有详细的创建步骤。

入门gafana创建仪表板:Grafana-github

zabbix-server2.4服务端编译安装 zabbix-server服务端编译安装

zabbix2.4监控80端口状态 : zabbix监控80端口状态

zabbix+Grafana安装使用监控结合 :zabbix+Grafana安装使用监控结合

zabbix监控MySQL-添加自定义监控项 : zabbix监控MySQL-添加自定义监控项

zabbix的ICMP_Ping模版实现对客户端网络状态的监控 : zabbix的ICMP_Ping模版实现对客户端网络状态的监控

zabbix性能监控故障总结 zabbix性能监控故障总结