前面一个博客,已经讨论了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)。
配置下列进程的配置文件:
- /opt/zenoss/etc/zenping.conf
- /opt/zneoss/etc/zensyslog.conf
- /opt/zenoss/etc/zenstatus.conf
- /opt/zenoss/etc/zentrap.conf
- /opt/zenoss/etc/zenmodeler.conf
- /opt/zenoss/etc/zenperfsnmp.conf
- /opt/zenoss/etc/zencommand.conf
- /opt/zenoss/etc/zenprocess.conf
- /opt/zenoss/etc/zenjmx.conf
- /opt/zenoss/etc/zenwinperf.conf
- /opt/zenoss/etc/zenwin.conf
- /opt/zenoss/etc/zeneventlog.conf
每个配置文件添加hubhost与monitor选项:
- hubhost 主IP或Hostname
- monitor 从IP或Hostname
b. 从获主的SSH认证。
主与从操作:
- # su - zenoss
- $ ssh-keygen -t rsa
主上将id_rsa.pub复制为authorized_keys
- $ cp /home/zenoss/.ssh/id_rsa.pub /home/zenoss/.ssh/authorized_keys
同时将主新生成的authorized_keys文件复杂到从的/home/zenoss/.ssh/目录下。
在主上做一次SSH连接,以便从有认识主
登录主的Zenoss页面。将一些测试型命令修改如下。
c.从的rander引领及配置。
在主的ADVANCED界面中,新添加Collecotrs,名称为从的IP或Hostname。编辑新建的Collectors。在Render URL一栏中,输出从的zenrender地址。
1)禁用不必要非Zenoss进程
- # service mysql stop
- # chkconfig mysql off
- # service rabbitmq-server stop
- # chkconfig rabbitmq-server off
- # service memcached stop
- # chkconfig memcached off
2)禁用Zenoss不必要进程,同时开始Zenrender进程
修改/opt/zenoss/bin/zenoss文件。接下面的内容进行调整。
- if [ ! -f $ZENHOME/etc/DAEMONS.list ] ; then
- if [ -f $CATSERVICE ] ; then
- C="$C zencatalogservice"
- fi
- #C="$C zeneventserver"
- #C="$C ${WEBSERVERCTL}"
- #C="$C zenhub"
- #C="$C zenjobs"
- #C="$C zeneventd"
- C="$C zenping"
- C="$C zensyslog"
- C="$C zenstatus"
- #C="$C zenactiond"
- C="$C zentrap"
- C="$C zenmodeler"
- C="$C zenrender"
- C="$C zenperfsnmp"
- C="$C zencommand"
- C="$C zenprocess"
- C="$C zenrrdcached"
- #C="$C zenmail"
重启的Zenoss,采集分布式完成。
附:有关安全性的提示。
主方面,iptables配置建议
- -A RH-Firewall-1-INPUT -s 从IP或Hostname -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
从方面,iptables配置建议
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8091 -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
阅读(8961) | 评论(1) | 转发(1) |