Pivotal Gemfire gfsh shell的使用
Pivotal Gemfire gfsh提供了一个简单的,强大的命令行接口。可以启动,管理,监控Pivotal Gemfire进程,数据和应用。
使用gfsh可以做什么?
Gfsh支持管理,调制(排除故障),部署Pivotal Gemfire进程和应用。
使用gfsh可以:
启动或者停止一个Pivotal Gemfire进程,例如:locator,cache servers
启动或者停止网关发送器进程和网关接收器进程。
部署应用。
新建和摧毁region
执行功能函数
管理硬盘存储
导入和导出数据
监控Pivotal Gemfire进程
开启Pivotal Gemfire监控工具
Gfsh命令行接口可以让开发者话费少量的时间去管理cache,而不用去操作xml,属性,日志文件,和统计数据。Gfsh命令生成报告:获得集群统计信息,支持导出统计信息,日子文件,配置信息等。
像Spring Roo一样,gfsh特征命令完成(所以你不需要知道语法),上下文敏感的帮助,脚本,和通过使用一个简单的API的应用程序调用一些命令的能力。该gfsh用户接口通过使用JMX/RMI与Pivotal GemFire的进程进行沟通。
可以使用http协议连接一个远程的分布式系统的gfsh,在148页会详细介绍。
8.0版本的Pivotal GemFire支持已经存在在以前版本的所有gfsh命令,也包括先前在Gemfire和cacheserver文档中发现的功能。
默认情况下,当你你使用gfsh新建一个Pivotal GemFire对象的时候,集群配置服务保存Pivotal GemFire集群的配置信息。你可以到处这个配置信息并将它导入到另外一个Pivotal GemFire集群中。
启动gfsh
当你启动gfsh之前,应该确定你是否配置了环境变量。
为了更好的管理server和locator,gfsh需要将tool.jar添加到CLASSPATH。
注意:在windows环境下,你必须设置正确的JAVA_HOME变量,才可以正确启动,停止,和查看locator和servers状态的命令。
在任何一台安装Pivotal GemFire的机器上启动gfsh命令行接口,执行下面的命令:
也可以使用下面的方式运行一条gfsh命令:
可以在269页获得更多启动和运行gfsh的信息。
配置gfsh的环境
Gfsh.bat和gfsh bash脚本自动添加所需要的Pivotal Gemfire和JDK.jar函数库到已经存在的CLASSPATH中。为了安全,环境变量,日志和检错点,可以对用户配置属性进行设置。
CLASSPATH中的JAR库函数
当启动gfsh时,它可以自动加载被打包在gfsh-dependencies.jar文件夹下面的所需要的JAR文件,运行gfsh不需要修改CLASSPATH。当在gfsh下启动servers和locators的时候,start server和start locator命令将会加载serverdependencies.jar文件和locator-dependencies.jar文件到进程的CLASSPATH中。这些以来的JAR文件被打包在安装Gemfire的目录下面的lib目录下。
注意:gfsh命令行也可以用来搜索tools.jar并将它添加到gfsh的CLASSPATH中。如果没有安装JDK,gfsh将会用基于文件的通信来替代status和stop的命令。如果使用JRE替代JDK,gfhs在locator和server进程的工作目录下必须具有读写权限。
机器名字
在一些操作系统中,你需要确定你的主机名字已经在你的系统hosts文件中设置过了,例如:为了gfsh操作正确,在MAC系统中你需要在/etc/hosts文件中将你的主机名映射到你的IP地址上。
配置gfsh安全
自从gfsh连接到一个JMX管理成员去运行某一个指令的时候,JMX管理员配置就可以影响gfsh安全了。在文件gemfire.propertie中,下面的Pivotal Gemfire属性就可以影响gfsh到JMX管理员的连接设置。
jmx-manager-ssl
jmx-manager-port
jmx-manager-password-file
jmx-manager-access-file
你也需要去证实端口是不是可用的,并且打开客户端连接。
配置gfsh环境变量
默认情况下,gfsh的回忆记录是禁用的,为了确保gfsh记录,必须设置java系统属性-Dgfsh.log-level=desired_log_level,desired_log_level是下面的集中值,分别是:severe, warning, info, config, fine, finer, finest。例如,在linux中:
export JAVA_ARGS=-Dgfsh.log-level=info
接着启动gfsh
Gfsh将会产生一个名字为gfsh-%u_%g.log的日志文件,这个日志文件将会记录gfsh的发生的事件。包括环境信息,例如,java和系统信息,详细的命令执行,变量将会被下面的值所替代:
%u-防止冲突产生的一个独特的数值
%g-区别循环日志产生的数值
如下图所示:
gfsh使用JDK的记录器去记录gfsh的日志文件,可以查看http://docs.oracle.com/javase/7/docs/api/java/util/logging/FileHandler.html来学习怎样使用变量来命名这个日志文件,产生的gfsh日志文件默认的名字是不能被改变的。
默认情况下,这个日志文件会被写在执行gfsh或者gfsh.Bat脚本的当前目录下,要想修改日志文件的地址,需要使用到java的属性gfsh.log-dir
export JAVA_ARGS="-Dgfsh.log-level=info -Dgfsh.log-dir=/machinename/logs
然后启动gfsh。
另外,gfsh会将命令操作的历史记录到${SYS_USER_HOME}/.gemfire/.gfsh.history文件中,该文件可以用来创建脚本和回顾以前使用过的命令。
成员日志文件
Gfsh为一些通过gfsh启动的成员写一些日志文件,有用的日志文件包括:
<locator_name>.log:详细介绍locator的配置信息(包括所有的gemfire.properties),以及locator启动之后所有出现的动作,这个日志文件被写到一个以locator命名的文件中,例如,如果你启动了一个名字为locator1的locator,那么这个日志文件将会写到locator1的目录下。
Vf.gf.locator.pid:包含locator的进程号,可以使用进程号去停止或者查看locator的状态,这个日志文件将会写到locator1的目录下。
<server_name>.log:详细介绍server的配置信息(包括所有的gemfire.properties),以及server启动之后所有出现的动作,这个日志文件被写到一个以locator命名的文件中,例如,如果你启动了一个名字为server1的server,那么这个日志文件将会写到server1的目录下。
Vf.gf.server.pid:包含server的进程号,可以使用进程号去停止或者查看server的状态,这个日志文件将会写到server1的目录下。
标签完成
文节仅使用与Unix系统下的安装
当在unix的shell下运行gfsh命令的时候,通过运行下面的命令来启动自动制表符。
source <gemfire-install-directory>/bin/gfsh-completion.bash
运行这条命令之后,当在bash shell中运行gfsh命令是可以自动的完成。
历史命令和gfsh.history文件
已经执行成功的命令被记录在gfsh.history文件中,这个文件放在你运行gfsh命令的用户的目录下的.gemfire目录下,也可以使用history --file=your_file_name命令导出history文件到制定的文件夹中。注意该文件夹是隐藏文件夹。
.gfsh.history文件
JMX管理员更新率和系统监控
当你执行数据操作(例如上传数据),监控系统的状态(例如使用gfsh的show metrics命令或者Pivotal Gemfire Pulse)这个监控系统可能不会立即响应出最新的操作,例如,如果你执行一个put操作,然后快速的执行gfsh的show metrics命令,你可能不会再region中看到正确的项目数,这个管理层会没两秒更新一次,等一段时间之后再进行查看操作就可以看到正确的结果。
你可以通过修改gemfire.properties文件中的jmx-manager-update-rate属性的值来增加或者减少更新率,这个属性的设置应该等价于或者强于statistic-sample-rate。如果你体验性能问题,想要提高更新率;然而,将这个属性值设置的太高的话,在gfsh和Pivotal Gemfire Pluse中看到比较旧的值。