经过两年多时间的学习积累,从今天起终于可以将一些知识联系起来了,从今天开始,每天总结自己的心得。JUST DO “IT”!
1. mac os 环境安装Gragana 、InfluxDB
环境:OS X EI Capitan 10.11.5;
需求:对一个项目进行 监控统计,使用InfluxDB 和 Gragana。
安装:
1)InfluxDB的安装:
官网地址:https://influxdata.com/get-started/download-and-install-influxdb/
安装:> brew update
> brew install influxdb
安装完成之后:
启动influxdb:> influxd
停止influxdb:> ps -ef|grep influxd
> sudo kill -QUIT "influxdID"
使用:
Æ 在命令行使用influxDB:> influx
执行以上命令,即可进入influxdb命令行操作模式。
Æ 通过URL使用influxDB:
连接influxDB:
Æ 使用浏览器:http://hostname:8083
Æ 其他使用:hostname:8086
至此:influxDB就已经安装完成,并可以使用了。
2)Grafana的安装:
在mac os下安装Grafana遇到了一些困难,后面详细描述。先看官网安装教程。
下载:官网提供用brew下载安装;
安装:(官网提供)
> brew update
> brew install grafana/grafana/grafana
然而,安装过程中遇到了一些问题:
a. 使用命令 brew update ,命令行并没有什么反应,或者报错,update失败;
b. 不进行 brew update,直接使用brew install grafana/grafana/grafana 命令下载安装grafana,但是报错:
解决办法:在/usr/local/Library/ 目录下,手动删除Homebrew,进行重新安装。
官网提供命令:> /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
官网地址:http://brew.sh/
安装好home-brew之后,从新执行brew update,brew可以进行升级。并且可以执行 brew install grafana/grafana/grafana命令。开始下载安装grafana及其依赖。等待一段时间后,总是在这三部出错:
前两部出错,从新执行brew install grafana/grafana/grafana命令即可,最头疼的是第三步,nam install --verbose这里。命令行也不报错,一直卡在这里没有反应。上网找了很多办法,重新安装了node、node.js、nam也是不行,还是一直卡在这里。于是一直开着电脑,从第一天晚上10点到第二天早上10点时,手动停掉了。
但是!!!从新执行命令: brew install grafana ,又等了好久之后竟然不卡了!!
到现在都不知道是什么原因,不知道是网速问题还是因为重新安装了node、node.js、npm的问题。
折腾了一天,grafana也安装好了。
使用:(附上grafana的简单使用手册)
Æ 启动grafana: > grafana start
Æ 停止grafana: > grafana stop
2. 关于web、webx的入后及初始化顺序
1)web启动过程:
当要启动某个j2ee项目时,服务器软件或容器如(tomcat)会第一步加载项目中的web.xml文件,通过其中的各种配置来启动项目,只有其中配置的各项均无误时,项目才能正确启动。web.xml有多项标签,在其加载的过程中顺序依次为:
context-param >> listener >> fileter >> servlet。(同类多个节点以出现顺序依次加载)
1> web.xml先读取context-param和listener这两种节点;
2> 然后容器创建一个ServletContext(上下文),应用于整个项目;
3> 容器会将读取到的context-param转化为键值对并存入servletContext;
4> 根据listener创建监听;
5> 容器会读取,根据指定的类路径来实例化过滤器(filter);
6> 此时项目初始化完成;
7> 在发起第一次请求时,servlet节点才会被加载实例化
2)webx的启动过程:
webx的启动依赖于web的web.xml配置文件,在web.xml文件中的 filter 阶段,可以配置:
<filter>
<filter-name>webx</filter-name>
<filter-class>com.alibaba.citrus.webx.servlet.<span style="color:#ff6600;">WebxFrameworkFilter</span></filter-class>
<init-param>
<param-name>excludes</param-name>
<!-- 需要被“排除”的URL路径,以逗号分隔,如/static, *.jpg。适合于映射静态页面、图片。 -->
<param-value>/htdocs</param-value>
</init-param>
<init-param>
<param-name>passthru</param-name>
<param-value><!-- 需要被“略过”的URL路径,以逗号分隔,如/myservlet, *.jsp。适用于映射servlet、filter。
对于passthru请求,webx的request-contexts服务、错误处理、开发模式等服务仍然可用。 --></param-value>
</init-param>
</filter>
然后,针对于 webx 的配置单另使用 webx.xml 进行配置。
理解到的一个概念:很多配置都写于 xml 文件中,那么在web.xml 、 webx.xml文件中,可以使用:
<beans:import resource="XXX.xml" />
来导入其他的配置。
3. 监控统计
监控统计所需要的一些数据需要从 web 的 filter 中,或者是 webx 的 pipeline 中进行获取。