Fe
这是Go版本的UIC,也是一个统一的web入口,因为监控组件众多,记忆ip、port去访问还是比较麻烦。fe像是一个监控的hao123
设计初衷
一个软件的部署分发难易程度,直接影响了软件的流传。社区有些朋友反映Java版的UIC难以安装,我们就提供了一个Go版本。大家可以在Fe中维护个人联系信息,维护人和组的对应关系。还可以通过配置文件中配置的shortcut在页面上产生多个快捷方式链接。
与UIC区别
Fe模块除了提供了一个简单的导航之外,最大的不同是密码存放方式发生了变化,所以Java版UIC用户如果要迁移过来,需要修改Fe模块配置的salt,配置为空字符串,就可以和原来Java版本的UIC共用同一个数据库了,不过配置成空字符串不够安全,建议salt配置一个随机字符串,然后通过Fe注册一个新用户,把数据库中所有用户的密码都重置为这个新用户的密码,发个通知,让各个注册用户重新自己登录修改密码。
源码安装
cd $GOPATH/src/github.com/open-falcon/fe
go get ./...
./control build
./control pack
最后一步会pack出一个tar.gz的包,拿着这个包去部署即可。
部署说明
Fe作为一个前端模块,无状态,可以水平扩展,至少部署两台机器以保证可用性。前面做一个负载均衡设备,nginx或者lvs都可以。最后为其申请一个域名,搞定!
配置介绍
配置文件必须叫cfg.json,可以基于cfg.example.json修改
{
"log": "debug",
"company": "MI", # 填写自己公司的名称,用于生成联系人二维码
"http": {
"enabled": true,
"listen": "0.0.0.0:1234" # 自己随便搞个端口,别跟现有的重复了,可以使用8080,与老版本保持一致
},
"cache": {
"enabled": true,
"redis": "127.0.0.1:6379", # 这个redis跟judge、alarm用的redis不同,这个只是作为缓存来用
"idle": 10,
"max": 1000,
"timeout": {
"conn": 10000,
"read": 5000,
"write": 5000
}
},
"salt": "0i923fejfd3", # 搞一个随机字符串
"canRegister": true,
"ldap": {
"enabled": false,
"addr": "ldap.example.com:389",
"baseDN": "dc=example,dc=com",
"bindDN": "cn=mananger,dc=example,dc=com",
"bindPasswd": "12345678",
"userField": "uid",
"attributes": ["sn","mail","telephoneNumber"]
},
"uic": {
"addr": "root:password@tcp(127.0.0.1:3306)/uic?charset=utf8&loc=Asia%2FChongqing", # 数据库schema在scripts目录下
"idle": 10,
"max": 100
},
"shortcut": {
"falconPortal": "http://11.11.11.11:5050/", # 浏览器可访问的portal地址
"falconDashboard": "http://11.11.11.11:7070/", # 浏览器可访问的dashboard地址
"falconAlarm": "http://11.11.11.11:9912/" # 浏览器可访问的alarm的http地址
}
}
进程管理
我们提供了一个control脚本来完成常用操作
./control start 启动进程
./control stop 停止进程
./control restart 重启进程
./control status 查看进程状态
./control tail 用tail -f的方式查看var/app.log
设置root账号的密码
该项目中的注册用户是有不同角色的,目前分三种角色:普通用户、管理员、root账号。系统启动之后第一件事情应该是设置root的密码,浏览器访问:http://fe.example.com/root?password=abc (此处假设你的项目访问地址是fe.example.com,也可以使用ip),这样就设置了root账号的密码为abc。普通用户可以支持注册。
ldap 认证
Fe 现在支持通过 ldap 来进行用户认证。不需要提前在 Fe 内开设账号。Fe 会自动将 ldap 认证过来的新用户插入到 Fe 的数据库内。
配置说明
"addr": "ldap.example.com:389",
# ldap 的地址和端口
"baseDN": "dc=example,dc=com",
# ldap 的 baseDN,ldap 认证的时候将从这个路径开始查询用户
"bindDN": "cn=mananger,dc=example,dc=com",
# 你用来连接 ldap 的账户,至少要有只读的查询权限。
# 注意这里应该是账户的完整 dn 值。对于 AD 的话,则可以直接填账户的 userPrincipalName (xxx@example.com)。
# 如果你的 ldap 允许匿名查询的话,填""值即可
"bindPasswd": "12345678",
# 如果你的 ldap 允许匿名查询的话,填""值即可
"userField": "uid",
# 用于认证的属性(即你输入的用户名),通常为 uid 或 sAMAccountName(AD)。
# 也可以使用诸如 mail 的属性,这样认证的用户名就是邮箱(前提 ldap 里有这个属性)
"attributes": ["sn","mail","telephoneNumber"]
# 数组顺序重要,依次为姓名,邮箱,电话在 ldap 中的属性名.
# 建议根据自己 ldap 内的实际情况修改。
# 用户 ldap 登录时,fe 将按这些属性名去 ldap 中查询新用户的属性,并插入到 fe 的数据库内。
},
补充
这里我们先安装了Fe这个模块,portal、dashboard、alarm等模块都还没有安装,所以shortcut中不知道如何配置才好。不用着急,先维持默认,等之后部署完了portal、dashboard、alarm等模块之后再回来修改fe的配置。
视频教程
为fe模块录制了一个视频,做了源码级解读:http://www.jikexueyuan.com/course/1780.html