Sep 042015
 

纠结了很久,到底是使用Mac还是继续用thinkpad,不过为了方便,还是选择Thinkpad,日后自己再单独搞一台Mac来玩。

现在安装windows操作系统的机会已经比以前减少很多,发现我现在使用的软件数量没啥变化,软件版本,也基本不需要啥变化,这里就记录一下,希望这是我最后一次给自己折腾windows系统。

据说现在年轻人都已经不使用windows,都是在用手机或者Mac。看来真的是老。年纪大了,很多东西都记不住,写这个就仅仅是为了记录一下。没任何技术含量。已经把机器的全部软件都放到网盘里,确保日后重装,非常顺利。

Continue reading »

Aug 162015
 

第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了。

很多企业都表示出他们很关心安全,不过他们压根就没看过和关注过自己服务器的日志,这是有点讽刺的。先把日志管理好,然后我们再去深入讨论安全。

Mirantis的Fuel,已经引入ELK作为OpenStack的监控工具,所以我们也需要重点去学习一下ELK。

刚好看到一个老外的视频,介绍CentOS 7安装ELK,讲的很实在,至少我比较喜欢这种形式。

视频地址 http://yunpan.cn/cd5feBr4diFDn 访问密码 019a 文档的内容,我基本是完全照搬视频的内容。

动手验证一遍,顺便把CentOS 7也熟悉一下,真的是第一次在CentOS7下来装东西。目前文档还有问题。正在完善中。都是使用当前最新的版本软件。kibana,估计需要投入很大的精力去配置,才能实现很好的展现。

基本介绍

Elasticsearch  目前最新的版本是1.7.1 ,

Logstash  目前最新版本是1.5.3

kibana  目前最新版本是:4.1.1

Logstash Forwarder,目前最新的版本是0.4.0

Snap7

安装过程

创建一个虚拟机CentOS7.1,分配公网IP,来进行测试

准备

查看操作系统版本

cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 

查看Selinux状态

sestatus
SELinux status:                 disabled

FQDN

设置FQDN,其实有两种方法,http://www.opsers.org/base/linux-fqdn-set.html 这位朋友总结的很好。

记住:创建SSL证书的时候需要用到,这是必做

 cat /etc/hostname
#i-2053f7hj
elk
# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6



# hostname loopback address
127.0.1.1       i-2053f7hj
10.70.26.187    elk.chenshake.com       elk

然后运行

hostname -F /etc/hostname

这时候你可以查看自己的FQDN名字

# hostname -f
elk.chenshake.com
# hostname
elk

安装Firewall

CentOS7有一个重大改变,用firewalld取代iptables,大家都习惯iptables,所以青云默认的镜像,就是使用iptables,没有安装firewalld。

yum install firewalld firewall-config
systemctl start firewalld.service
systemctl enable firewalld.service
systemctl status firewalld

查看是否生效

firewall-cmd --state

安装java

yum install java-1.7.0-openjdk

Elasticsearch

wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.noarch.rpm

安装

yum localinstall elasticsearch-1.7.1.noarch.rpm 

启动相关服务

Snap3

照提示做就可以。

systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch
systemctl status elasticsearch

查看Elasticsearch的配置文件

# rpm -qc elasticsearch
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/logging.yml
/etc/init.d/elasticsearch
/etc/sysconfig/elasticsearch
/usr/lib/sysctl.d/elasticsearch.conf
/usr/lib/systemd/system/elasticsearch.service
/usr/lib/tmpfiles.d/elasticsearch.conf

查看端口使用情况

# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      606/sshd            
tcp6       0      0 :::9200                 :::*                    LISTEN      3051/java           
tcp6       0      0 :::9300                 :::*                    LISTEN      3051/java           
tcp6       0      0 :::22                   :::*                    LISTEN      606/sshd  

在使用9200和9300端口,防火墙打开端口

firewall-cmd --permanent --add-port={9200/tcp,9300/tcp}
firewall-cmd --reload

查看防火墙端口情况

# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports: 9200/tcp 9300/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

 

kibana

下载tar包

wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz

解压

tar zxf kibana-4.1.1-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
mv kibana-4.1.1-linux-x64 kibana

创建启动文件

创建一个kibana.service文件。

cat > /etc/systemd/system/kibana.service <<EOF
[Service]
ExecStart=/usr/local/kibana/bin/kibana


[Install]
WantedBy=multi-user.target
EOF

启动kibana服务

systemctl enable kibana
systemctl start kibana
systemctl status kibana

查看端口

# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      3830/node           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      977/sshd            
tcp6       0      0 :::9200                 :::*                    LISTEN      978/java            
tcp6       0      0 :::9300                 :::*                    LISTEN      978/java            
tcp6       0      0 :::22                   :::*                    LISTEN      977/sshd            

操作过程基本一样,打开5601端口

firewall-cmd --permanent --add-port=5601/tcp firewall-cmd --reload firewall-cmd --list-all

这个时候,访问虚拟机,就可以通过 http://ip:5601端口访问。对于青云的系统,你需要在防火墙打开5601端口。

firewalld功能还是很强大,你可以设置转发

firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=5601
firewall-cmd --reload
firewall-cmd --list-all

Snap4

 

Logstash

下载rpm包

wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-1.5.3-1.noarch.rpm

安装

yum localinstall logstash-1.5.3-1.noarch.rpm 

设置ssl

这是最容易出错的地方,SSL证书创建,可以通过FQDN或者IP进行创建,我通过IP创建没有成功。我这里使用的FQDN名字是 elk.chenshake.com ,

cd /etc/pki/tls
openssl req -subj '/CN=elk.chenshake.com/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

 

创建一个01-logstash-initial.conf 文件

cat > /etc/logstash/conf.d/01-logstash-initial.conf << EOF
input {
  lumberjack {
    port => 5000
    type => "logs"
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}


filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

output {
  elasticsearch { host => localhost }
  stdout { codec => rubydebug }
}
EOF

启动logstash服务

systemctl start logstash
systemctl status logstash

查看端口,需要等2分钟,才能看到5000端口启动

# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      3830/node           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      977/sshd            
tcp6       0      0 :::5000                 :::*                    LISTEN      20017/java          
tcp6       0      0 :::9200                 :::*                    LISTEN      978/java            
tcp6       0      0 :::9300                 :::*                    LISTEN      978/java            
tcp6       0      0 :::9301                 :::*                    LISTEN      20017/java          
tcp6       0      0 :::22                   :::*                    LISTEN      977/sshd         

logstash在监听5000端口

firewall-cmd --permanent --add-port=5000/tcp
firewall-cmd --reload
firewall-cmd --list-all

 

如果启动有问题,你可以去看logstash的日志/var/log/logstash

 

Logstash Forwarder

ELK的机器,也作为一个一个客户端进行收集日志

wget https://download.elastic.co/logstash-forwarder/binaries/logstash-forwarder-0.4.0-1.x86_64.rpm

ssh登陆到客户端,安装Logstash Forwarder

yum localinstall logstash-forwarder-0.4.0-1.x86_64.rpm

查看logstash-forwarder的配置文件位置

# rpm -qc logstash-forwarder
/etc/logstash-forwarder.conf

备份配置文件

cp /etc/logstash-forwarder.conf /etc/logstash-forwarder.conf.save

编辑 /etc/logstash-forwarder.conf, servers,你需要根据你的情况进行修改。

cat > /etc/logstash-forwarder.conf << EOF
{
  "network": {
    "servers": [ "elk.chenshake.com:5000" ],

    "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt",

    "timeout": 15
  },

  "files": [
    {
      "paths": [
        "/var/log/messages",
        "/var/log/secure"
      ],

      "fields": { "type": "syslog" }
    }
  ]
}
EOF

 

启动服务

systemctl enable logstash-forwarder
systemctl start logstash-forwarder
systemctl status logstash-forwarder

查看日志,确认服务正常

kibana设置

访问IP,就可以出现Kibana的页面

Snap5

选择create,点击上面的Discover

Snap6

你可以尝试ssh退出登录,再ssh进去,马上就可以在日志里看到你ssh登录的事件。

增加节点

增加客户端的安装,只需要把Logstash Forwarder安装和配置都是一样的。你需要额外多做一步的就是

把服务器上的  /etc/pki/tls/certs/logstash-forwarder.crt 复制到目标节点的相同的目录下就可以。

参考资料

https://www.digitalocean.com/community/tutorials/how-to-use-logstash-and-kibana-to-centralize-logs-on-centos-7

https://media-glass.es/2015/04/19/installing-an-elk-stack-on-centos-7/

https://gist.github.com/ashrithr/c5c03950ef631ac63c43

Aug 102015
 

这是学习 构建可靠的S3服务 的过程。原文提供视频,不过看视频实在太累。不过总算是把实验做完。

Docker的源都在国外,所以我是选择青云的香港节点来做测试,这样简单很多。这真的是我第一次完整完成Docker的实验。并且这个实验还是很值得记录一下。

青云使用基础网络,创建一个虚拟机,Ubuntu 14.04,绑定公网的IP。ssh到虚拟机里。

安装docker

感觉Ubuntu 14.04带的docker比较旧,所以我干脆就直接安装最新的版本的docker。

http://linuxkurser.nu/wp-content/uploads/2015/04/Upgrade-to-Docker-1.6-Ubuntu-14.pdf

curl -sSL https://test.docker.com/ubuntu | sh

查看docker的版本

# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): f45ba9d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): f45ba9d
OS/Arch (server): linux/amd64

1.7的版本,应该是最新的。

查看网络

# ifconfig
docker0   Link encap:Ethernet  HWaddr 56:84:7a:fe:97:99  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 52:54:38:23:ee:12  
          inet addr:10.70.74.144  Bcast:10.70.74.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:38ff:fe23:ee12/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9828 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6498 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:13266351 (13.2 MB)  TX bytes:589469 (589.4 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1184 (1.1 KB)  TX bytes:1184 (1.1 KB)

 

下载docker的镜像,ip地址,需要替换成eth0的IP

docker run -d –net=host -e MON_IP=10.70.74.144 -e CEPH_NETWORK=10.70.74.0/24 ceph/demo

装完后,可以用命令查看

root@i-dczpde51:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
116ae154cae4        ceph/demo           "/entrypoint.sh"    37 seconds ago      Up 36 seconds                           gloomy_jang

 

进入docker ,就是上面的容器的ID

docker exec -i -t 116ae154cae4 /bin/bash

查看ceph

# ps aux | grep "ceph"
root         1  0.1  2.1 563436 22280 ?        Ssl  15:04   0:00 /usr/bin/python /usr/bin/ceph -w
root        34  0.2  2.3 217052 23988 ?        Sl   15:04   0:00 ceph-mon -i i-dczpde51 --public-addr 10.70.74.144:6789
root       203  0.9  2.9 681016 29788 ?        Ssl  15:04   0:00 ceph-osd -i 0 -k /var/lib/ceph/osd/ceph-0/keyring
root       414  0.0  1.1 236640 11428 ?        Ssl  15:04   0:00 ceph-mds --cluster=ceph -i 0
root       472  0.1  2.3 1707856 24360 ?       Ssl  15:04   0:00 radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway -k /var/lib/ceph/radosgw/i-dczpde51/keyring --rgw-socket-path= --rgw-frontends=civetweb port=80
root       473  0.4  3.1 710596 32200 ?        Sl   15:04   0:00 /usr/bin/python /usr/bin/ceph-rest-api -n client.admin
root       689  0.0  0.0   8868   720 ?        S+   15:06   0:00 grep --color=auto ceph

 

# ceph -s
    cluster b700af15-ed1d-44ea-bdc7-aac227c24a8d
     health HEALTH_OK
     monmap e1: 1 mons at {i-dczpde51=10.70.74.144:6789/0}
            election epoch 2, quorum 0 i-dczpde51
     mdsmap e5: 1/1/1 up {0=0=up:active}
     osdmap e16: 1 osds: 1 up, 1 in
      pgmap v19: 120 pgs, 8 pools, 2810 bytes data, 63 objects
            2415 MB used, 16572 MB / 20028 MB avail
                 120 active+clean

创建用户,下面命令,你最好是手工敲入,我折腾了半天,才发现进入docker,我的secureCRT的粘贴好像有点不一样。

radosgw-admin user create --uid="johndoe" --display-name="John Doe" --email=john@example.com

下面是输出

{
    "user_id": "johndoe",
    "display_name": "John Doe",
    "email": "john@example.com",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [],
    "keys": [
        {
            "user": "johndoe",
            "access_key": "XRCME1D7HXDC3JRBBU1Y",
            "secret_key": "2g7H3mscKD0V6Kj1fkkJuIVNOH8OmU8XuovWP8+s"
        }
    ],
    "swift_keys": [],
    "caps": [],
    "op_mask": "read, write, delete",
    "default_placement": "",
    "placement_tags": [],
    "bucket_quota": {
        "enabled": false,
        "max_size_kb": -1,
        "max_objects": -1
    },
    "user_quota": {
        "enabled": false,
        "max_size_kb": -1,
        "max_objects": -1
    },
    "temp_url_keys": []
}

重点是access key和secret key。

apt-get update -y
apt-get install -y python
apt-get install -y python-pip
pip install boto
pip install ipython
pip install s3cmd
apt-get install -y vim

参考这里 https://github.com/tobegit3hub/python_s3/blob/master/list_buckets.py

记得替换成自己的access key和secret_key

# ipython
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
Type "copyright", "credits" or "license" for more information.

IPython 3.2.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import boto

In [2]: import boto.s3.connection                                              

In [3]: access_key =  'XRCME1D7HXDC3JRBBU1Y'                                   

In [4]: secret_key = '2g7H3mscKD0V6Kj1fkkJuIVNOH8OmU8XuovWP8+s'                

In [5]: conn = boto.connect_s3(                                                
   ...:         aws_access_key_id = access_key,                                
   ...:         aws_secret_access_key = secret_key,                            
   ...:         host = 'localhost',                                            
   ...:         is_secure=False,                                               
   ...:         calling_format = boto.s3.connection.OrdinaryCallingFormat(),   
   ...:         )                                                              

In [6]: com                                                                    
compile  complex  

In [6]: conn.get_all_bucketes()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-6-bd413d097011> in <module>()
----> 1 conn.get_all_bucketes()

AttributeError: 'S3Connection' object has no attribute 'get_all_bucketes'

In [7]: conn.get_all_buckets()                                                 
Out[7]: []

In [8]: conn.create_bucket("chenshake")                                        
Out[8]: <Bucket: chenshake>

In [9]: conn.get_all_buckets()                                                 
Out[9]: [<Bucket: chenshake>]

In [10]:                        

成功创建了一个bucket chenshake

Jul 282015
 

今晚好好解决了几个小米盒子的使用问题。为了免去麻烦,把默认的update都关闭。

花屏问题

小米盒子其实很长一段时间,基本都是闲置,主要的用途是让儿子把pad投影到电视,看动画片,不过最近发现有问题,

症状就和这位朋友描述

1、出现花屏的机器会有电视无法识别信号的情况。
2、出花屏后遥控器开关不能正常重启,遥控器开关操作后电视无法识别,显示无信号的症状。必须强制断电才能有可能恢复。
3、出现花屏的时间没有规律,多是在播放视频时。
4、花屏与连接线或者电视无关(关于电视我试过三星的、飞利浦的、创维的都有这种情况)。
5、系统更新无法解决,我已经把系统更新到1.3.87版本,也没法解决

我的小米盒子应该是第一代产品。

http://bbs.xiaomi.cn/thread/index/tid/9748808

造成问题的原因,我也就基本明白,因为小米升级,默认把分辨率提高,但是对老的小米盒子就有问题。解决很简单,就是把分辨率设置低点,一切问题都消失。

优酷

小米盒子默认是没法看优酷,以前我都是使用pad,把优酷内容投影到液晶上。通过下载优酷XL V 2.7.1 版,装上就可以。

http://www.znds.com/tv-230947-1-1.html

现在小米盒子提供软件安装,可以直接从电脑上进行安装,倒是比较方便。不需要利用第三方工具就可以搞定。

就是小米应用商店进入,

Snap1

Snap2

Snap3

访问地址是

http://盒子ip/app/一个随机端口号

比较完美。

关闭安全警告

这个特别烦人,每次启动都提示。

Snap11

参考这篇文章,http://www.znds.com/tv-65156-1-1.html

直接装上xShortCut FREE软件,对着文档操作就可以。

Jul 262015
 

Mirantis Fuel 6.1,应该是6月24号左右发布,经过了一个月的测试,其实发现做的还是非常不错的。很多朋友估计没有时间,条件去测试,我这里就整理一下使用Fuel的总结。

Fuel 7.0,正式发布时间是9月份,集成Kilo版本,应该也就是在Kilo版本发布后4个月,发布Mirantis自己的版本。其实红帽也差不多,OpenStack的版本,也是差不多4个月后正式发布,这个时候Kilo版本经过2个小版本的升级后,应该是基本可用。

对于红帽的操作系统,应该是CentOS7.1以后的版本,才能算对Openstack实现很好的支持,真的能和Ubuntu进行PK。所以我对Fuel集成Kilo版本还是非常期待。国内的企业客户,其实都是使用CentOS,到时候好好学习一下Fuel的7.0.

 

打包

Fuel同时支持CentOS6.5和Ubuntu 14.04。不过OpenStack的包,并不是发行版自带的,都是Mirantis自己打包的。RabbitMQ,ovs的版本,应该都会和官方有不少区别。

这个做法,其实是很大胆的,用户用的Mirantis的Openstack,其实和红帽,Ubuntu其实是没太多关系,有问题,就只能找Mirantis解决。

安装

在Fuel6.0的时候,Fuel Master安装是比较慢的,好像需要2,3个小时。现在已经半个小时就可以搞定。这里面有一个原因,就是现在光盘的容量减小,不存放Ubuntu的包,你需要从公网去下载。技术上,他应该也是做了些工作,导致整个安装工作,平滑很多。

只支持HA模式

控制节点其实提供两种选择:HA模式和非HA模式。非HA的模式是无法切换到HA模式的。所以在6.1的版本,就去掉的非HA模式。

在HA模式下,你的控制节点的数量,并不是必须是3个,可以是1个,HA Ready,当你规模不大的时候,可以只跑一个控制节点。这样还是非常灵活的。

支持Ubuntu14.04

6.0的时候,ubuntu12.04和Ubuntu14.04,都支持Juno版本,不过Mirantis认为当时的Ubuntu14.04,稳定性无法满足需求,所以发布的时候,还是Ubuntu12.04跑的Juno版本。到了6.1,操作系统才改成14.04.2

其实这也说明一个新版本的操作系统,也是需要1年的时候,才能相对稳定下来。

Fuel对Ubuntu的支持的改变在于已经不集成Ubuntu的安装包,这样导致安装的过程必须联网,其实在国内的环境下,其实用户体验非常不好。Fuel是可以让开发者去定制ISO,把你需要的东西集成进去,希望有开发者站出来,把Ubuntu的包都集成到Fuel里,方便很多用户。

插件机制

Fuel已经变成一个平台,各个硬件厂商,软件厂商都希望集成进来,这就要求插件机制,让用户选择启用那些插件。这其实就是Fuel走向成熟的一个标志。

这个真的是一个非常聪明的做法。厂商希望把自己软件集成进去,那么你就开发插件,测试通过,我就公布出去,让用户选择。作为厂商,你也可以帮助用户在fuel下使用你开发的插件。

下面是Mirantis官方页面发布的插件,下载,直接就可以在fuel的master里进行安装。

  • FWaaS – Firewall-as-a-Service,
  • VPNaaS – VPN-as-a-Service
  • ElasticSearch/Kibana – Log Search, Filtration and Analysis
  • LMA Collector – LMA Toolchain Data Aggregation Client
  • InfluxDB/Grafana – Time-Series Event Recording and Analysis
  • Zabbix – Monitoring

这几个插件我都测试过,非常不错。Grafana,应该还有很多地方需要用户自己进行设置,目前Mirantis还没发布文档。

超融合架构

这个是比较时髦的话题,就是把计算,存储放在一台机器上,通过Ceph,实现nova,glance和cinder的整合。目前Fuel也支持这种设计。只是Juno版本对Ceph的整合还是有点不完善,不过Mirantis应该是把一些代码,merge到Juno版本里,整合的效果应该是不错。

Ceph整合OpenStack,已经持续了快2年,目前离完美,还是有一段距离。按照现在的进度,估计真的要明年的M版本。

目前Fuel的超融合架构,应该是没有对存储和cpu进行隔离,在私有云里使用,应该还是可以接受。

监控

这个可以说是Fuel 6.1最大改进的地方,也是最引人注目的地方。通过插件机制,不仅仅集成了Zabbix,并且把日志监控ELK,性能分析InfluxDB/Grafana集成起来。

过去用户一直都比较头疼,如何维护Openstack,不知道那天突然出现一个啥错误,这个错误是什么原因引起的,如何去汇报问题。有了这些工具,看到全部绿色,你就基本可以睡个好觉。

目前Zabbix,需要安装在控制节点上,自动实现高可用。不过我是有点担心性能是否可以扛住。

ELK和InfluxDB/Grafana,你需要安装在一台单独的机器上,目前还没有实现高可用。

最小规模

经常有朋友问,Fuel的安装,需要多少台机器,我研究了一下,Fuel master装在虚拟机里的话,

  • 控制节点,装在一台机器上,
  • 计算节点一台机器,Fuel是不允许控制节点和计算节点一起安装的。
  • 存储节点,你可以选择装在控制节点上,还是计算节点上,都是可以的。我都是选择Ceph。
  • ELK和InfluxDB/Grafana,装在一台机器上,这是可选。

所以我们至少是需要2台机器,就可以构建一个OpenStack环境,3台机器,基本就可以领略到Fuel的基本功能。如果是按照生产设计,3台控制节点,3台计算节点,3台存储节点,1台监控,那么就刚好10台机器的规模,可以验证Fuel里的各种HA配置。

其实fuel还是可能支持all in one,有朋友通过修改js实现。

修改web界面角色复选,
fuel-web/nailgun/static/js/views/cluster_page_tabs/nodes_tab_screens/node_list_screen.js

具体代码

https://github.com/stackforge/fuel-web/blob/stable/6.1/nailgun/static/js/views/layout.jsx

好吧,让同事学习一下,如何实现all in one。

网络

以前Fuel的一个特点就是安装过程,不需要联网,不过由于fuel的设计的改变,如果是选择Ubuntu,你是必须联网才能完成安装。如果你选择CentOS,那么他默认是需要连接到Mirantis的update里,日后如果有更新,能从这里安装,其实对于现在的安装,是根本用不上,如果去掉这两个源,那么你是可以不联网安装。

Fuel的安装,最麻烦的地方,就是网络的设置,网络验证不通过,你就无法安装。让同事整理一个交换机配置的例子,到时候分享给大家。

单网卡也可以安装,这应该是Fuel的一个很重要的特性。用户经常用台式机来测试,网卡只有一块。所有机器一块网卡也是可以安装的,估计是千兆的,效果好点吧。

Fuel是支持网卡绑定,但是pxe网络,就是admin网络,是不支持bonding的。

还有一点,就是GEE网络下, 6.1已经实现虚拟机通讯的网络和管理网络分开。已经是非常另外。另外vxlan的支持,应该是7.0的重头戏。

Jul 022015
 

很快1年就过去了。去年7月份首保 http://www.chenshake.com/cool-power/ 当时是5k公里,现在已经跑了15k。1年也就走了1万公里。

道奇酷威的英文保养手册是1年或者1.6万公里保养一次,我就按照这个规定来做就ok。

车辆开了一年,基本没啥麻烦,上次天冷,报胎压不足,打气就可以。现在的问题就是雨刮水喷不起来。今天去4S让他们检查一下,发现连接的管松了,掉下来,接上就好了。美国车这点上和日本车是有点差距的。

这次是取北京中进百旺Jeep 4s店保养,店的规模好像比亦庄和亚运村差一点,不过基本还是不错的。

整体来说,还是不错的。本来今天想看看保养过程,没想到他们动作快,很快就搞定,我过去已经做完。

今天的费用

  • 机油:413 (5升)
  • 机滤:80
  • 工时费:176

一共就669元,还可以接受。

很多朋友希望找外面的店进行保养,目的其实是希望用所谓更好的机油,价格也不至于太贵。其实真的没这个必要。

我请教我最信任的同学,每天修奔驰和宝马的,机油间的差异,除非你的玩车,突然加速,否则日常使用,是没任何区别的。