http://www.51niux.com/?id=83 第一篇文章讲述了ganglia的搭建过程以及主要配置文件的参数解释,这篇文章对web界面的功能做解释。
gweb由:Main、Search、Views、Aggregate Graphs、Compare Hosts、Events、Reports、Automatic Rotation、Live Dashboard、Cubism、Mobile这些选项卡组成,用户可以快速查看所需信息。
一、Main选项卡
1.1 网格视图
(网格中所有集群的图形概述,是可用视图中的最高层视图。网格图标概述了单个gmetad进程中所有主机的数据。)
1.2 集群视图和物理视图
集群视图(集群是许多gmond的集合,集群视图顶部显示了整个集群的概要图标。每个主机的快速视图浏览再页面的下部。):
#利用率热图:可以通过conf.php或者cond_default.conf里面的$conf['heatmaps_enabled'] = 0;来关闭
#如果节点过多,在连接缓慢的网络中使用gweb时,危及群众每个节点都加载一幅图表会话费大量时间,可以通过定义conf.php文件中的:$conf['max_graphs'] = 数字;来设置集群视图中所显示的主机图标数量的上限。
物理视图:
在页面最下角有一个组里面的所有主机的某个指标的显示信息:
博文来自:www.51niux.com
1.3 调整时间范围
从上面那些图中,我们看到了有个时间的地方,那么如果我们要自定义时间范围呢,想以分钟,小时的范围显示呢?
# vi /var/www/html/ganglia/conf_default.php
修改前:
$conf['time_ranges'] = array(
'hour'=>3600,
'2hr'=>7200,
'4hr'=>14400,
'day'=>86400,
'week'=>604800,
'month'=>2419200,
'year'=>31449600,
# Needs to be an entry here to support 'r=job' in the query args to graph.php
'job'=>0
);
修改后:
$conf['time_ranges'] = array(
'5min'=>300,
'30min'=>1800,
'1hr'=>3600,
'day'=>86400,
'week'=>604800,
'month'=>2419200,
'year'=>31449600,
# Needs to be an entry here to support 'r=job' in the query args to graph.php
'job'=>0
)
查看效果:
1.4 主机视图(显示和概括一个gmond进程上的指标)
二、Search选项卡
一般我们用Search选项卡来查找主机,当你主机过多的话,通过Search能够快速的定位。
三、Views选项卡
视图是指标、主机报告图表或汇总图表的任意集合,是用户概览所指定内容的一种方式。
创建方法一(使用GUI创建视图):
因为我们默认来宾用户只拥有readonly权限,所以不能通过GUI的形式来创建视图,这里为了方便演示,我们对conf.php进行一下修改。
$conf['auth_system'] = 'disabled'; #将此从readonly改为disabled,就是来宾用户不用通过授权也能通过ganglia的web界面进行编辑,还有一个参数enabled就是开启登录授权功能。
修改完配置完毕后,再回到web界面:
注:这里做了设置补充下前面的一个页面设置:
3.1 页面graphs的修改:
下面是正题:
Views==>Create View==>
3.2 创建方法二(使用JSON定义视图):
视图以JSON文件的形式存放在conf_dir目录下。conf_dir的路径为conf_default.php里面的配置:
$conf['gweb_confdir'] = "/var/lib/ganglia-web";
$conf['views_dir'] = $conf['gweb_confdir'] . '/conf';
所以我们的views视图的默认配置文件是:
# cat /var/lib/ganglia-web/conf/view_system_mem.json #这就是我们刚才添加的那个views视图
{
"view_name": "system_mem", #视图名称,必须唯一
"default_size": "medium", #视图显示尺寸
"items": [
{
"hostname": "192.168.1.101", #需要显示指标或图标的主机名称
"metric": "mem_free", #指标名称
"vertical_label": "KB", #指标单位
"title": "Free Memory" #指标标题
},
{
"hostname": "192.168.1.101",
"metric": "mem_free",
"vertical_label": "KB",
"title": "Free Memory",
"warning": "3.3", #(可选)添加垂直黄线,提供预警状态的可视化提示
"critical": "3.5" #(可选)添加垂直红线,提供临界状态的可视化提示
},
{
"hostname": "192.168.1.101",
"metric": "mem_free",
"vertical_label": "KB",
"title": "Free Memory",
"warning": "3.6",
"critical": "3.4"
},
{
"hostname": "192.168.1.101",
"metric": "mem_free",
"vertical_label": "KB",
"title": "Free Memory",
"warning": "3.0",
"critical": "2.5"
},
{
"hostname": "192.168.1.102",
"metric": "mem_free",
"vertical_label": "KB",
"title": "Free Memory"
} ,
{
"hostname": "192.168.1.103",
"metric": "swap_free",
"vertical_label": "KB",
"title": "Free Swap Space",
"warning": "5",
"critical": "4"
},
{
"hostname": "192.168.1.103",
"graph": "mem_report" #图标名称
}
],
"view_type": "standard", #standard或regex。regex类型视图允许用户指定用户指定正则表达式匹配主机。
"parent": null,
"common_y_axis": 0
}
# python -m json.tool view_system_mem.json #用此命令可以检测我们的编写的view视图有没有问题,下面是报错提示再54行没有逗号,如果正确的话,会将整个配置文件输出。
Expecting , delimiter: line 54 column 3 (char 1160)
举个例子:如果我们比较关心某些主机的某些指标数据,就可以通过编写一个json的views视图,来集中展示一些主机的指标。
比如我们想看192.168.1.107到192.168.1.112的内存指标graphs图:
# cat /var/lib/ganglia-web/conf/view_mem_graphs.json
{"view_name":"mem_graphs",
"items":[
{"hostname":"192.168.1.107","graph":"mem_report"},
{"hostname":"192.168.1.108","graph":"mem_report"},
{"hostname":"192.168.1.109","graph":"mem_report"},
{"hostname":"192.168.1.110","graph":"mem_report"},
{"hostname":"192.168.1.111","graph":"mem_report"},
{"hostname":"192.168.1.112","graph":"mem_report"}],
"view_type":"standard"}
查看效果图:
博文来自:www.51niux.com
四、Aggregated Graphs选项卡
汇总图标,允许创建回合不同指标的综合图标,但最低限速是必须提供主机和指标的正则表达式。
另外上图再JSON和Inspect中间有一个按钮Decompose,点击这个按钮可以弹出一个界面,这个界面有这些所有主机在此时间范围内所有此指标的数据图形。
五、Compare Hosts
主机比较特性使得用户可以比较所有匹配指标的主机。它会创建不同主机的每种指标的汇总图标。当用户想要查出某台主机(或某些主机)与其他主机采集指标上面的不同时候。
另外上图再JSON和Inspect中间有一个按钮Decompose,点击这个按钮可以弹出一个界面,这个界面有这些所有主机在此时间范围内所有此指标的数据图形。但是前提是上一个指标项目Aggregated Graphs已经做了创建了,不然弹出的界面会提示:Alert: This graph can not be decomposed
如果比较某几个主机的:Hosts值那里设置,类似于:192.168.1.1(01|03|10)
六、Events
事件是自定义的叠加在图标上的“垂直标记”,在特定事件发生时为用户提供可视化的提示。
再次查看192.168.1.110的主机指标图,已经跟我们创建的时间相关联:
查看下我们添加的事件配置:
# cat /var/lib/ganglia-web/conf/events.json
[{"event_id":"58803066f0ca5","start_time":1484755200,"summary":"rrdcached guancha","grid":"*","cluster":"*","host_regex":"192.168.1.110","description":""},{"event_id":"588030ea863ff","start_time":1484755200,"summary":"rrdcached guane","grid":"*","cluster":"*","host_regex":"192.168.1.110","description":"","end_time":1485792000}]
博文来自:www.51niux.com
六、Reports
报告功能,以文字的形式展示我们要查看的值。
#所有主机的话用.表示。
七、Automatic Rotation
自动循环是面向数据中心管理员的一项特性,可以连续循环指标,该特性与视图联合使用,点击Automatic Rotation,然后选择所需循环的视图即可。浏览器关闭前指标将一直循环。当视图循环时可以修改视图,该修改将影响一个完整的循环。图标默认每30秒循环一次,可以再下拉按钮选择循环的时间最短为10秒,最长为90秒一循环。点击时间下拉框下面的Go back to Ganglia可以退出循环返回主界面。用户在不同的监视器上调用不同的视图进行循环。
八、Live Dashboard
活动信息中心提供了紧凑格式的所有视图指标概览。 数据每15秒更新一次。 仅支持包含指标或图表报告的元素。 将不包括聚合图。您可以使用浏览器缩放功能,每页获得更多图表。
在下拉框选择对应的views视图后的结果:
九、Cubism
这个仪表盘的作用也是显示数据,以图形说明更清楚一点。
下面是效果图:
十、Mobile
gweb的Mobile是为了移动设备优化的Ganglia Web界面。gweb主机上的/ganglia/mobile.php路径下可以找到移动视图,适用于jQueryMobile工具包支持的任意移动浏览器.
十一、自定义复合图标
在Views选项卡的讲解中已经点到了复合图表,那么我们如何修改复合图表或者自定义呢?
首先复合图表所在的位置,为ganglia web站点目录的graph.d下面,如:/var/www/html/ganglia/graph.d/
现在我们自定义一个复合图表,里面只有cpu空闲,内存空闲和磁盘空闲,如下列:
# cat system_base_report.json
{
"report_name" : "system_base_report", #复合图的名称
"title" : "system base report", #图表中显示的标题
"vertical_label" : "system_base", #Y轴的描述(可选)
"series" : [ #构成图表的指标
{ "metric":"cpu_idle", "color":"3333bb", "label":"cpu_idle", "line_width":"2","type":"line"},
{ "metric":"disk_free_percent_rootfs", "color":"6d9eeb", "label":"disk_free_percent_rootfs ", "line_width":"2","type":"line"},
{ "metric":"mem_free", "color":"ffea00", "label":"Free Memory", "line_width":"2","type":"line"},
{ "metric":"procstat_gmond_mem", "color":"a64d79", "label":"gmond_mem", "line_width":"2","type":"line"}
]
}
#metric :指标名称,如果指标不存在,系统将自动略过
#color :6位进制颜色编码
#label :指标的标签,也就是图表下方显示内容值的名称
#type :属性类型,line(线性)或stack(堆叠)
#line_width :线宽,默认值为2。如果设置的type是stack,则设置了线宽系统也会自动忽略。
然后点击Edit Optional Graphs按钮,会看到我们自定义的这个system_base_report,已经出现了,添加到页面中来。
十二、其他特性
初始折叠指标组:
$conf['metric_groups_initially_collapsed'] = false; #这里默认是不折叠,将false改为true,就会默认折叠所有的指标组,需要点开才能看到指标图。
默认刷新周期:
$conf['default_refresh'] = 300; #默认主机视图和集群视图每五分钟刷新一次,调整这里可以改变刷新的频率
从图表主机名中删除域名:
$conf['strip_domainname'] = false; #gweb接口在图标中默认显示全称域名。如果主机在同一域,这里设置为true,来删除域名。设置成true好一点。在主机图标显示的地方只显示主机会显得简洁一点。
设置默认时间周期:
$conf['default_time_range'] = 'hour'; #默认时间显示就是hour,就是当前一个小时,我们可以调整期显示的时间,如改为:day,下面看效果:
ganglia开启认证登录(ganglia还是只是readonly模式,我们用apache自带的认证系统):
# cat /etc/httpd/conf/httpd.conf #在配置文件末尾加上下面这些
<Directory "/var/www/html/ganglia">
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "ganglia Access"
AuthUserFile /usr/local/ganglia/htpasswd.user
Require valid-user
</Directory>
下面是测试结果(当然如果你不想只用一个用户,想每个人一个用户,可以用LDAP等加入进来):
#经测试,验证成功才能进入ganglia界面,不然会提示下方的内容,无法访问ganglia页面。
注:还有一种更细致的权限管理方案,ganglia会根据不同的用户身份授予不同的权限:GangliaAcl。