# 也可以使用诸如 mail 的属性,这样认证的用户名就是邮箱(前提 ldap 里有这个属性)
\
# 数组顺序重要,依次为姓名,邮箱,电话在 ldap 中的属性名. # 建议根据自己 ldap 内的实际情况修改。
# 用户 ldap 登录时,fe 将按这些属性名去 ldap 中查询新用户的属性,并插入到 fe 的数据库内。 },
这里我们先安装了Fe这个模块,portal、dashboard、alarm等模块都还没有安装,所以shortcut中不知道如何配置才好。不用着急,先维持默认,等之后部署完了portal、dashboard、alarm等模块之后再回来修改fe的配置。
3.9 portal
Portal是用来配置报警策略的.
Portal是个web项目,无状态,可以水平扩展,至少部署两台机器以保证可用性,前面架设nginx或者lvs这种负载设备,申请一个域名,搞定! Portal的配置文件在frame/config.py virtualenv ./env
./env/bin/pip install --default-timeout=100 -r pip_requirements.txt
# 修改一下数据库配置,数据库schema文件在scripts目录 DB_HOST = \DB_PORT = 3306 DB_USER = \DB_PASS = \
DB_NAME = \
# SECRET_KEY尽量搞一个复杂点的随机字符串 SECRET_KEY = \
SESSION_COOKIE_NAME = \PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30
# 如果你使用的是Go版本的UIC,即Fe那个项目,下面的配置就配置成Fe的地址即可,注意端口,Fe的默认端口是1234# internal是内网可访问的UIC(或者Fe)地址# external是外网可访问的UIC(或者Fe)地址,即用户通过浏览器访问的UIC(或者Fe)地址 UIC_ADDRESS = {
'internal': 'http://127.0.0.1:8080',
'external': 'http://11.11.11.11:8080', #'external': 'http://10.192.40.151:1234', }
MAINTAINERS = ['root']
CONTACT = 'ulric.qin@gmail.com' # 社区版必须维持默认配置 COMMUNITY = True
# 我们可以cp config.py local_config.py用local_config.py中的配置覆盖config.py中的配置# 嫌麻烦的话维持默认即可,也不用制作local_config.pytry:
from frame.local_config import *except Exception, e: print \
Portal正常启动之后,就可以回去配置Fe这个项目的shortcut了。当然,dashboard和alarm还没有搭建,这俩shortcut还没法配置。修改完了shortcut,要重启fe模块。
3.10 heartbeat server(HBS)
HBS第一个功能:agent发送心跳信息给HBS的时候,会把hostname、ip、agent version、plugin version等信息告诉HBS,HBS负责更新host表。
falcon-agent有一个很大的特点,就是自发现,不用配置它应该采集什么数据,就自动去采集了。比如cpu、内存、磁盘、网卡流量等等都会自动采集。我们除了要采集这些基础信息之外,还需要做端口存活监控和进程数监控。那我们是否也要自动采集监听的端口和各个进程数目呢?我们没有这么做,因为这个数据量比较大,汇报上去之后用户大部分都是不关心的,太浪费。于是我们换了一个方式,只采集用户配置的。比如用户配置了对某个机器80端口的
监控,我们才会去采集这个机器80端口的存活性。那agent如何知道自己应该采集哪些端口和进程呢?向HBS要,HBS去读取Portal的数据库,返回给agent。
之后我们会介绍一个用于判断报警的组件:Judge,Judge需要获取所有的报警策略,让Judge去读取Portal的DB么?不太好。因为Judge的实例数目比较多,如果公司有几十万机器,Judge实例数目可能会是几百个,几百个Judge实例去访问Portal数据库,也是一个比较大的压力。既然HBS无论如何都要访问Portal的数据库了,那就让HBS去获取所有的报警策略缓存在内存里,然后Judge去向HBS请求。这样一来,对Portal DB的压力就会大大减小。
hbs是可以水平扩展的,至少部署两个实例以保证可用性。一般一个实例可以搞定5000台机器,所以说,如果公司有10万台机器,可以部署20个hbs实例,前面架设lvs,agent中就配置上lvs vip即可。 配置说明 {
\
\
\e=true\的数据库地址
\\# portal数据库中有个host表,如果表中数据是从其他系统同步过来的,此处配置为sync,否则就维持默认,留空即可 \
\监听的rpc地址 \\\
\监听的http地址 } }
访问/health接口验证hbs是否工作正常。
curl 127.0.0.1:6031/health
另外就是查看hbs的log,log在var目录下
如果你先部署了agent,后部署的hbs,那咱们部署完hbs之后需要回去修改agent的配置,把agent配置中的heartbeat部分enabled设置为true,addr设置为hbs的rpc地址。如果hbs的配置文件维持默认,rpc端口就是6030,http端口是6031,agent中应该配置为hbs的rpc端口,小心别弄错了。
3.11 judge
Judge用于告警判断,agent将数据push给Transfer,Transfer不但会转发给Graph组件来绘图,还会转发给Judge用于判断是否触发告警。
Judge监听了一个http端口,提供了一个http接口:/count,访问之,可以得悉当前Judge实例处理了多少数据量。推荐的做法是一个Judge实例处理50万~100万数据,用个5G~10G内存,如果所用物理机内存比较大,比如有128G,可以在一个物理机上部署多个Judge实例。 配置说明 {
\\
\11,#表示某个数据最多能保存多少个点,例如告警设置某种状况出现多少次报警all(#3),这个数字不能超过remain-1,这里就是10. \\
\ }, \
\
\ }, \
\最好放到lvs vip后面,所以此处最好配置为vip:port \\ },