<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[By Ulric Qin]]></title><description><![CDATA[一个互联网散兵的絮絮叨叨]]></description><link>https://blog.youkuaiyun.com/MorFlame</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MorFlame]]></copyright><item><title><![CDATA[滴滴夜莺 Nightingale 发布 v3 版本，从运维监控演化成了运维平台]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/108968682</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/108968682</guid><author>MorFlame</author><pubDate>Thu, 08 Oct 2020 21:18:27 +0800</pubDate><description><![CDATA[Nightingale从 3 月份开源到现在，过去了半年多点时间，收获了接近 2000 个 github star，300 多个 issue，感谢各位业界同仁的关注和社区参与。

经过慎重考虑，我们决定把商业版本中的更多功能拿出来开源，组成一个轻量级运维平台，这块业界的开源解决方案较少，我们希望贡献一份自己的力量。除了已有的监控告警的能力，又引入了如下功能模块：

用户资源中心：提供完备的用户信息管理、组织结构管理、组织权限管理、组织资源管理、操作审计日志等，里边最重要的是组织权限管理，后面各公司如果要做自]]></description><category></category></item><item><title><![CDATA[写了一个linux单机监控工具falcon-eye]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84544583</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84544583</guid><author>MorFlame</author><pubDate>Wed, 02 Apr 2014 16:43:20 +0800</pubDate><description><![CDATA[
它是个啥？
这是我们团队正在写的监控系统的一部分
这是一个用golang写的小工具，没有任何部署依赖
这只是一个采集linux基础数据并做简单展示的agent，不会报警的哦
 
它可以采集哪些数据？
机器基本数据，比如kernel version，uptime，hostname等等
cpu使用情况：比如idle、user、nice、system、iowait、irq、softir...]]></description><category></category></item><item><title><![CDATA[Git配置多个服务器]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84542739</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84542739</guid><author>MorFlame</author><pubDate>Fri, 28 Mar 2014 18:13:49 +0800</pubDate><description><![CDATA[
mkdir -p ~/.ssh

cd ~/.ssh/
ssh-keygen -t rsa -C &quot;xx@xiaomi.com&quot; # 把这个文件命名为id_rsa_xiaomi，然后一路回车
ssh-keygen -t rsa -C &quot;yy@163.com&quot; # 把这个文件命名为id_rsa_github，然后一路回车

# 此时在~/.ssh下面生成两对公私钥

touch ...]]></description><category></category></item><item><title><![CDATA[JFinal使用idea做开发不能自动编译]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84510203</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84510203</guid><author>MorFlame</author><pubDate>Fri, 06 Dec 2013 22:46:31 +0800</pubDate><description><![CDATA[
看到JFinal不错，今天特地来尝试一下，使用idea来做开发，悲剧就此产生……
 
1、写了一个简单的Controller，完全按照文档写的肯定没问题，结果死活就是404，而且是jetty渲染的那种404页面，不是JFinal渲染的那个404页面，说明Jetty成功启动了，但是，JFinal的Filter没有被加载，问题出在哪里呢？？？JFinal启动的时候需要传入4个参数：webAppD...]]></description><category></category></item><item><title><![CDATA[CloudFoundry中cf logs命令报权限错]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84509685</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84509685</guid><author>MorFlame</author><pubDate>Thu, 05 Dec 2013 12:30:49 +0800</pubDate><description><![CDATA[
自己搭建的CloudFoundry集群，push应用很正常，只是……
 
在cf logs &amp;lt;APP&amp;gt;的时候报权限错，说没法读取这个container路径下的env.log
 
既然是文件没法读取，那肯定是权限位设置的有问题，进入cf-release目录grep &quot;env.log&quot;
应该可以找到这么个文件：dea_next/lib/dea/starting/startup_...]]></description><category></category></item><item><title><![CDATA[CloudFoundry中gorouter深入解读]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84508609</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84508609</guid><author>MorFlame</author><pubDate>Mon, 02 Dec 2013 10:30:12 +0800</pubDate><description><![CDATA[
导读
首先，所谓的深入解读比较标题党了哈：）只是给大家分享一下我的理解，希望共同进步
我们以一个问题开篇，主要介绍代码结构、接口交互、主要逻辑，最后稍微总结一下，希望能把你讲明白：）
 
背景问题
思考这么一个问题：paas是多租户的，每个app都希望有自己的域名，比如miui.com、miliao.com、xiaomi.com，为了提高可用性，每个app一般都会有多个instance...]]></description><category></category></item><item><title><![CDATA[CloudFoundry中buildpack介绍与自定义实践]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84504957</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84504957</guid><author>MorFlame</author><pubDate>Tue, 19 Nov 2013 14:55:48 +0800</pubDate><description><![CDATA[
背景
用一个问题开篇：一个服务能够run起来，到底需要些什么？
做过部署系统的同学会对这个问题认识比较深，总结一下，我们可以归为如下几类：
1、程序本身的代码文件，嗯，这个不用解释
2、需要的配置，比如测试环境下有一套配置，开发环境、线上环境各有一套配置，还有甚者，一个idc一套配置
3、环境依赖，比如语言环境：Python2.7、JDK6，一些操作系统特性等
4、运行时依赖，比如我...]]></description><category></category></item><item><title><![CDATA[cf push之后到底做了什么？ - Cloudfoundry发布app过程]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84495091</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84495091</guid><author>MorFlame</author><pubDate>Sat, 02 Nov 2013 16:06:42 +0800</pubDate><description><![CDATA[
 
上面的图片是从CloudFoundry官方文档中拿到的，整个过程如下：
 
1、用户在命令行下进入自己的app所在的目录，运行cf push，这表示说：我要上传应用了
2、cf命令行工具发现用户给的指令是push，于是发请求给CCNG，说：我要创建一个新应用
3、CCNG管辖了两个存储，一个是CCDB（是一个RDBMS，可以用mysql），另一个是BlobStore，存储一些大的二...]]></description><category></category></item><item><title><![CDATA[Cloudfoundry中app无法启动的排错方法]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84495025</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84495025</guid><author>MorFlame</author><pubDate>Sat, 02 Nov 2013 10:03:13 +0800</pubDate><description><![CDATA[
Cloudfoundry提供了一些命令行工具来帮我们了解app的状况和排错
 
1、检查app的健康状况
cf health appname
 
2、查看app用了多少内存
cf stats appname
 
3、查看环境变量和最新的log信息
cf logs appname
 
4、用tail的方式来查看log
cf tail appname
 
5、如果app ...]]></description><category></category></item><item><title><![CDATA[自己搭建Cloudfoundry使用cf logs <app>报permission denied解决方案]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84494970</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84494970</guid><author>MorFlame</author><pubDate>Fri, 01 Nov 2013 20:20:55 +0800</pubDate><description><![CDATA[
自己搭建CloudFoundry，一切就绪，cf push一个app测试一把，结果出错，想查原因，所以运行cf logs &amp;lt;app&amp;gt;命令，结果报错如下：
 
CFoundry::BadResponse: 500: Can't serve request due to error: open /home/vcap/var/warden/containers/179u5obpsru...]]></description><category></category></item><item><title><![CDATA[Cloudfoundry中查看router中所有路由信息]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84494953</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84494953</guid><author>MorFlame</author><pubDate>Fri, 01 Nov 2013 18:48:05 +0800</pubDate><description><![CDATA[
我们知道在CloudFoundry中，router是入口，那么它就要保存所有的域名和ip的对应关系，如何查看各个app和内部组件的真实ip:port呢？
 
登陆部署gorouter的机器，netstat -ant | grep 8082，gorouter默认会启动8082和80端口，如果你之前修改过就grep你修改之后的端口，看到8082在监听了吧，e.g. 127.0.0.1:8082，...]]></description><category></category></item><item><title><![CDATA[Cloudfoundry报错：Application failed to stage]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84494241</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84494241</guid><author>MorFlame</author><pubDate>Wed, 30 Oct 2013 20:04:18 +0800</pubDate><description><![CDATA[
不同的错误表现肯定是不一样，我先描述一下我的错误情况和场景，看是否和你的match，如果match的话很可能你也是这么解决，O(∩_∩)O~
 
我搞了一个php的应用，使用github上一个buildpack：cf-php-apache-buildpack来部署的，刚开始我设置的一个instance，告诉我说Application failed to stage。但是cf apps看到的却...]]></description><category></category></item><item><title><![CDATA[自己搭建CloudFoundry push应用出现SocketError]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84494041</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84494041</guid><author>MorFlame</author><pubDate>Wed, 30 Oct 2013 12:06:09 +0800</pubDate><description><![CDATA[
这是CloudFoundry v2的一个坑，解决方案很简单，但是确实被折腾坏了，后来在Google Group中找到了一个哥们的回复才解决。
 
实际只需要修改dea.yml，增加一个配置项：domain: xae.xx.com（不同公司肯定配置的不一样，这个配置是假设你在cloud_controller.yml中配置的external_domain为：api2.xae.xx.com，取ap...]]></description><category></category></item><item><title><![CDATA[Linux下MySQL5.5安装配置]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84483679</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84483679</guid><author>MorFlame</author><pubDate>Thu, 26 Sep 2013 21:01:01 +0800</pubDate><description><![CDATA[

这个版本的mysql安装需要cmake，可以使用root直接安装cmake，configure到默认目录即可，然后make &amp;amp;&amp;amp; make install 解压缩mysql.tar.gz，比如我解压到/home/users/qinxiaohui01/src下面
搞一个shell脚本：
 
#! /bin/sh

cd /home/users/qinxiaohui0...]]></description><category></category></item><item><title><![CDATA[部署问题的抽象本质以及平台职责]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84483677</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84483677</guid><author>MorFlame</author><pubDate>Thu, 26 Sep 2013 20:55:29 +0800</pubDate><description><![CDATA[
上一篇博文《部署问题域分析》主要是讲述了平时听到的一些一线研发工程师的直接需求。解决问题的第二步是分析问题，OK，那我们就来看看这些问题的本质~~以下只是我的私人观点，有说得不对的地方欢迎大家批评指正一起讨论~~ 部署实质是对线上环境的一种变更 部署需要做到幂等，不管上线多少次，只要是同一个发布包，就应该达到同样的效果 部署的大致流程是在一个中心点触发部署动作，之后在各个目标机器上执行一段部署...]]></description><category></category></item><item><title><![CDATA[部署问题域分析-自动化部署到底要解决什么问题]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84483401</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84483401</guid><author>MorFlame</author><pubDate>Thu, 26 Sep 2013 10:04:21 +0800</pubDate><description><![CDATA[
自动化持续部署号称持续集成最后一公里，对整个持续集成过程有很重要的意义。而且即使是非持续集成的团队，同样需要部署，需要快速上线。那么对于这个Topic来讲，问题域有多大，难点在哪里~今天 Ulric 来简单侃一侃，如果有说得不对或不全面的地方，欢迎指正，大家共同学习进步哈~~
 
俺们不是Hacker，俺们是工程师，工程师主要来解决工程问题，那么对于部署这个问题，典型场景大概如下~
 ...]]></description><category></category></item><item><title><![CDATA[用持续集成的观点来看Maven]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84482926</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84482926</guid><author>MorFlame</author><pubDate>Wed, 25 Sep 2013 08:13:01 +0800</pubDate><description><![CDATA[
今天读了《系列文章整理 - “听”乔梁讲述持续集成的故事》，其中一些观点非常赞同，其中提到一个Java领域中一个很有名气的项目管理工具：Maven，特别想对此多说几句，于是形成此文~~
先说个题外话，老的Java程序员一看到Maven就想起Ant，而实际本站的代码构建也是用的Ant，不过Maven和Ant的关注点真的不是很一样，Ant帮你执行很多脚本目标，仅此而已，是个很好的工具，可以用它做...]]></description><category></category></item><item><title><![CDATA[C语言的#include指令不是非得引入.h头文件]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84482135</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84482135</guid><author>MorFlame</author><pubDate>Mon, 23 Sep 2013 11:28:22 +0800</pubDate><description><![CDATA[
搞过C语言的同学肯定都知道它的#include指令，无非就是引入头文件的。而实际上～它可以引入任何文件，比如～
我首先有个文件：inc.core，其内容为：
 
printf(&quot;This is inc.core\n&quot;);
 
还有个文件：inc.ext，其内容为：
 
printf(&quot;This is inc.ext\n&quot;);
#include &quot;inc.core&quot;
 
最后...]]></description><category></category></item><item><title><![CDATA[介绍一个很有意思的网站，可以在线展示代码和编译执行]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84482134</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84482134</guid><author>MorFlame</author><pubDate>Mon, 23 Sep 2013 11:28:02 +0800</pubDate><description><![CDATA[
      今天偶尔看到了一个网站：http://codepad.org/ ，你可以在线编辑代码，然后提交运行。系统会自动编译/执行，把结果打印出来，同时生成一个短url，方便你和别人分享你的代码，或者拿着去请教问题之类的。当然，如果当前手头没有在线编辑解释器，用一下也挺好的。
 
      另外大家可以尝试写写恶意代码攻击一下，作者欢迎之至，呵呵
...]]></description><category></category></item><item><title><![CDATA[开源几个perl小util]]></title><link>https://blog.youkuaiyun.com/MorFlame/article/details/84482117</link><guid>https://blog.youkuaiyun.com/MorFlame/article/details/84482117</guid><author>MorFlame</author><pubDate>Mon, 23 Sep 2013 10:52:15 +0800</pubDate><description><![CDATA[
      之前主要用Java混饭吃，从大学就开始搞，大约有5个年头了，不过语言毕竟只是个工具，现在在公司主要是用Perl了，话说什么语言没所谓，关键是能帮公司解决问题啊（“帮公司解决问题”这个道理是我工作这两年时间学到的呢，哈哈）
      由于Java出身的人一般工程性比较强，喜欢搞各种design pattern，喜欢写各种类库，现在用Perl了也把这个习惯带过来了。把平时搞的几个小u...]]></description><category></category></item></channel></rss>