Chinaunix首页 | 论坛 | 博客
  • 博客访问: 497822
  • 博文数量: 31
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 1622
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-09 10:07
文章分类

全部博文(31)

文章存档

2013年(1)

2012年(19)

2011年(2)

2010年(2)

2009年(3)

2008年(4)

分类: 系统运维

2012-09-05 09:37:15

前面一个博客,已经讨论了Zenoss 4的进程。与3.X相比,有些进程发生了变化,而另一些进程保持不变(至少是在名称上)。
实际上,Zenoss的分布式结构从来都是跨本地进程间的数据传送。因此,在讲述Zenoss 4如何配置分布式之前,首先需要重新认识Zenoss 4的进程。

1.进程说明

根据上图,我们将Zenoss的进程划分为这么几大类:
a.采集进程,这与3.X大体相同,用于各种监控的数据收集。可用放置在分布式体系下各个采集节点当中(也可以理解为综合性采集探针)
b.总线HUB进程,与3.X功能相同,用以采集进程的数据向中心(数据库)的汇总。Zenoss分布式体系中重要的总线通道。
c.队列及事件处理进程。这是一套Zenoss 4 全新定义的事件处理进程集(或称处理进程集,主要用于事件处理加速)。实际上,事件处理进程是一个下接HUB上连Web,中通数据的中心进程。这事部分尚不具备分布式能力。
d.任务进程,实际上是处理进程集派生出来的指行性进程。因此,这一部分也建议仅配置上主服务器上。
e.Web处理进程,由Zope和Memached组成。实现Web访问。
f.数据库,在4.X中,已经不再拥有Data.fs哪样的Filesystem存储方式,ZODB与事件同时存放在MYSQL当中,需要注意的是:MYSQL仅是一个ZODB的存储载体而以。其实ZODB的对象性仍旧保存。
依据上面的问题,其实可以做出多种方式的分布式结构,用以扩展Zenoss。但最为重要的,当属采集分布式。

2.采集分布式
采集节点式中,其实我们仅需要考虑采集进程的从与其它主之间的关系。因此,我们将结构简化为采集进程和中央处理进程集两部分来对待。哪么,我们可获取的分布式结构见下图。

图中,左侧一个标准的Zenoss 4单位,我们将它设为主服务器(以下简称主)。右侧是一个仅保留采集进程从服务器(以下简称从)。在从中,各进程对象和事件型数据,通过主的Zenhub汇给主。性能数据再经过zenrrdcache(Zenoss 4 新增进程用以解决大批量RRD文件IO瓶颈问题),存储在本地(从)。
主仍旧保持其完整性。当然,与从的关系包括两部分:
一是指令通道。Zenoss从3.X开始,程序控制可以通过Python+SSH的方式进程。Zenoss 4依据可以保持这一关系。前提是从需要得到主SSH认证。
二是从的RRD数据调用。可提供的RRD调用方式有很多种,如Zope自带的Render模块。以及独立Zenrnder进程。笔者认为,Zenrender进程更为合理,这样不必再为数据调用而开启从的Zope,同时,由于从的Zope不开启,也增加从的安全性。
综上所谓,可以将采集分式分为几部分内容完成。
a. 采集HUB化配置。
b. 从的SSH认证,及主上测试命令的分布式的调整。
c. 主上从的Render引领及从主Render的提供。

3. Zenoss采集分布式部署
下面,我们就一步步的实现Zenoss采集分布式的部署:
a.采集HUB化配置。
首先将从的Zenoss服务关闭(service zenoss stop)。
配置下列进程的配置文件:

  1. /opt/zenoss/etc/zenping.conf
  2. /opt/zneoss/etc/zensyslog.conf
  3. /opt/zenoss/etc/zenstatus.conf
  4. /opt/zenoss/etc/zentrap.conf
  5. /opt/zenoss/etc/zenmodeler.conf
  6. /opt/zenoss/etc/zenperfsnmp.conf
  7. /opt/zenoss/etc/zencommand.conf
  8. /opt/zenoss/etc/zenprocess.conf
  9. /opt/zenoss/etc/zenjmx.conf
  10. /opt/zenoss/etc/zenwinperf.conf
  11. /opt/zenoss/etc/zenwin.conf
  12. /opt/zenoss/etc/zeneventlog.conf
每个配置文件添加hubhost与monitor选项:

  1. hubhost 主IP或Hostname
  2. monitor 从IP或Hostname
b. 从获主的SSH认证。
主与从操作:

  1. # su - zenoss
  2. $ ssh-keygen -t rsa
主上将id_rsa.pub复制为authorized_keys

  1. $ cp /home/zenoss/.ssh/id_rsa.pub /home/zenoss/.ssh/authorized_keys
同时将主新生成的authorized_keys文件复杂到从的/home/zenoss/.ssh/目录下。
在主上做一次SSH连接,以便从有认识主

  1. $ ssh 从的IP或hostname
登录主的Zenoss页面。将一些测试型命令修改如下。

c.从的rander引领及配置。
在主的ADVANCED界面中,新添加Collecotrs,名称为从的IP或Hostname。编辑新建的Collectors。在Render URL一栏中,输出从的zenrender地址。

  1. http://从IP或hostname:8091
然后反回从的后台,为分布式开启做最后的准备。
1)禁用不必要非Zenoss进程

  1. # service mysql stop
  2. # chkconfig mysql off
  3. # service rabbitmq-server stop
  4. # chkconfig rabbitmq-server off
  5. # service memcached stop
  6. # chkconfig memcached off
2)禁用Zenoss不必要进程,同时开始Zenrender进程
修改/opt/zenoss/bin/zenoss文件。接下面的内容进行调整。

  1. if [ ! -f $ZENHOME/etc/DAEMONS.list ] ; then
  2. if [ -f $CATSERVICE ] ; then
  3. C="$C zencatalogservice"
  4. fi
  5. #C="$C zeneventserver"
  6. #C="$C ${WEBSERVERCTL}"
  7. #C="$C zenhub"
  8. #C="$C zenjobs"
  9. #C="$C zeneventd"
  10. C="$C zenping"
  11. C="$C zensyslog"
  12. C="$C zenstatus"
  13. #C="$C zenactiond"
  14. C="$C zentrap"
  15. C="$C zenmodeler"
  16. C="$C zenrender"
  17. C="$C zenperfsnmp"
  18. C="$C zencommand"
  19. C="$C zenprocess"
  20. C="$C zenrrdcached"
  21. #C="$C zenmail"
重启的Zenoss,采集分布式完成。

附:有关安全性的提示。
主方面,iptables配置建议

  1. -A RH-Firewall-1-INPUT -s 从IP或Hostname -j ACCEPT
  2. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
  3. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
从方面,iptables配置建议

  1. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8091 -j ACCEPT
  2. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT





阅读(8596) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

yy8542588762014-10-22 14:41:49

能不能舍弃zenoss用户界面,自己写后台直接调用采集上来的数据?