cmdb 环境搭建
1. 配置docker
略
2. 安装docker compose
二进制包在线安装
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod x /usr/local/bin/docker-compose
3. 下载cmdb
https://gitee.com/neat-logic/neatlogic-itom-all.git
4. 安装前检查
Docker环境检查
检查docker版本(返回版本信息,说明docker已安装)
docker --version
docker-compose --version
5. 安装和配置cmdb服务
注意:请确保docker已安装,才能进行后续步骤
安装
先下载 docker-compose.yml,该配置文件是docker compose的核心,用于定义服务、网络和数据卷。
注意:如果需要用到 neatlogic-runner ,还需要修改docker-compose.yml文件中NEATLOGIC_RUNNER_HOST环境变量,设置为runner容器所在的宿主机ip
如果不做修改,直接执行启动命令
docker-compose -f docker-compose.yml up -d #-f 表示执行指定yml, -d 表示后台执行并返回
6.服务组件介绍
默认会安装一下容器服务:
容器服务名 默认宿主机端口 启动容器服务依赖 访问地址 容器内服务启停命令 描述
neatlogic-db 3306 - - service neatlogicdb start/stop/restart mysql数据库, 账号/密码 root/neatlogic@901, client连接通过命令: /app/databases/
neatlogicdb/mysql/bin/mysql -uroot -p'neatlogic@901' --socket=/app/databases/neatlogicdb/data/mysql.sock
neatlogic-collectdb 27017 - - service collectdb start/stop/restart mongodb,如果使用cmdb自动采集、自动化、巡检、发布则需要该服务
neatlogic-runner 8084、8888 - - deployadmin -s neatlogic-runner -a startall/stopall/restartall
执行器,如果使用发布、巡检、自动化、tagent则需要该服务.注意:为了镜像简洁精干,自动化工具某些场景里作业日志提示的额外依赖问题,需要自己在容器里额外解决。
neatlogic-app 8282 neatlogic-db deployadmin -s neatlogic -a startall/stopall/restartall 后端服务
neatlogic-collectdb
neatlogic-runner
neatlogic-nacos
neatlogic-web 8090 neatlogic-app 宿主机IP:8090 service nginx start/stop/restart 前端服务, 账号/密码 admin/neatlogic@901
neatlogic-nacos 8848 neatlogic-db 宿主机IP:8848/nacos deployadmin -s nacos -a startall/stopall 后端服务 config ,账号/密码 nacos/nacos
7. 验证服务
因为docker容器服务启动是异步的,所以以上提到的启动命令执行完也不代表服务都正常启动完了.
仍需要等待几分钟时间后访问前端服务:http://宿主机ip:8090/ 如果出现登录页面,恭喜你服务部署成功.登录账号:admin 密码:neatlogic@901
如果提示租户不存在,则需要查看下日志,可能是服务还在等待启动中
docker-compose -f docker-compose.yml logs -f neatlogic-web
如果日志出现neatlogic-web service start.那就需要进入neatlogic-app容器,查看错误日志/app/logs/neatlogic/error.log 和启动日志/app/apache-tomcat-9.0.73/logs/catalina.out 如果日志中出现error,则将最后的截图(最好是整个日志文件)
8. 配置修改
一般常见需要修改的场景:
1)数据持久化 默认是没有配置持久化的,持久化配置国庆后更新...
2)宿主机端口冲突
修改 ports 字段即可,例如neatlogic-web的8090端口冲突,则需要将左侧的宿主机端口改成非占用端口即可,如我要改成8081:
ports:
- "8090:8081"
3)不使用自带的容器服务
如无需某容器服务则只需要删除对应容器服务配置,且修改对应被依赖的容器服务的environment属性
如无需neatlogic-db,因neatlogic-db被neatlogic-app和neatlogic-nacos依赖,所以neatlogic-app和neatlogic-nacos都需要修改environment的MYSQL_SERVICE_HOST、MYSQL_SERVICE_PORT、MYSQL_SERVICE_USER、MYSQL_SERVICE_PASSWORD,如:
自定义使用外部mysqldb 192.168.1.33:3306,帐号/密码:app/123456
environment:
#连接的mysql配置
MYSQL_SERVICE_HOST: "192.168.1.33"
MYSQL_SERVICE_PORT: 3306
...
MYSQL_SERVICE_USER: app
MYSQL_SERVICE_PASSWORD: "123456"
9. 常用COMMAND
1) 启动
根据yml创建容器并启动所有容器服务
docker-compose -f docker-compose.yml up -d #-f 表示执行指定yml, -d 表示后台执行并返回
如果只需要处理某个容器服务,只需要在命令后补充容器服务名即可,如:
docker-compose -f docker-compose.yml up -d neatlogic-app #单独重新创建并启动neatlogic-app服务
2)查看日志
查看所有容器服务的日志
docker-compose -f docker-compose.yml logs
如果只需要查看某个容器服务的日志,只需要在命令后补充容器服务名即可,如:
docker-compose -f docker-compose.yml logs neatlogic-app
实时查看日志
docker-compose -f docker-compose.yml logs -f
查看启动成功的容器
docker-compose -f docker-compose.yml ps
3)启停容器
启容器
docker-compose -f docker-compose.yml start
停容器
docker-compose -f docker-compose.yml stop
如果只需要启某个容器,只需要在命令后补充容器服务名即可,如:
docker-compose -f docker-compose.yml start neatlogic-app
进入容器服务
非必要用户无需进入容器服务,如进去neatlogic-app容器服务:
docker-compose -f docker-compose.yml exec neatlogic-app sh
停止并移除容器,网络,镜像和卷
docker-compose -f docker-compose.yml down
批量拉取镜像
docker-compose -f docker-compose.yml pull
10. 更换租户
demo样例数据参考(注意:确保登录界面出来后,已经可以登录系统,还想要更具体的数据才执行以下步骤)
由于考虑到环境的干净,镜像只保留了核心数据.如果仍需要更多的样例数据作为参考,可执行一下步骤
1) 请先创建了3个空库neatlogic、neatlogic_demo和neatlogic_demo_data,字符集采用utf8mb4,排序规则采用utf8mb4_general_ci,由于neatlogic需要动态创建、删除表和视图,请授予数据库连接用户适当的权限,如下图。
2)导入样例数据:neatlogic-database/mysql 将三个sql文件按名字分别导入到三个库。
3)修改neatlogic库的datasource表,找到tenant_uuid=demo的那行数据,核对username、password、host和port是否正确配置
更换租户(为减少不必要的错误, 新搭建环境请跳过该步骤,请勿执行!请勿执行!请勿执行! 建议先用上述demo租户启动成功并熟悉后,需要上生产环境再来更换)
1)这里我们假设需要把demo换成uat租户。新建数据库neatlogic_uat和neatlogic_uat_data数据库,字符集同样是采用utf8mb4,排序规则采用utf8mb4_general_ci
2)将neatlogic_demo表和数据同步到neatlogic_uat,neatlogic_demo_data只需要把表数据同步到neatlogic_uat_data,视图无需同步,启动服务是会自动重建
3)进入neatlogic库将tenant表、datasource表、mongodb表和tenant_modulegroup表中的“demo”字眼的数据都替换成“uat”
4)重启neatlogic-app服务即可
FAQ常见问题
日志出现 Permission denied 输入图片说明 解决办法:关闭SELinux或AppArmor
11. agent配置
1) Neatlogic-Tagent
Neatlogic-Tagent用于部署在受管目标操作系统上,平滑替代主机连接协议一种可选方式,Tagent具备以下几点特点:
采用perl语言开发,运行环境依赖要求极低。
支持常见的Windows、Linux、SUSE、Aix等操作系统。
对操作系统资源极少,资源范围为:cpu <= 2%,内存:<= 200MB。
同一受管机器,支持多用户安装。
与Neatlogic-runner建立心跳连接,定期探测目标环境和服务可用性。
支持从Neatlogic-runner注册、管理、以及自动匹配管理网段下发执行。
支持在Neatlogic-web上查看日志、重启、修改配置、升级等操作。
2)适用场景
Neatlogic-Tagent常见几种适用场景:
Windows类机器。
机器账号密码经常变更。
机器上多账号,不想在平台上维护不同用户密码。
深度使用自动化运维,如:资源安装交付。
3) 如何获取安装包
https://gitee.com/neat-logic/neatlogic-itom-all.git
#非windows
tagent.tar
#windows 32位
tagent_windows_x32.zip
#windows 64位
tagent_windows_x64.zip
从Neatlogic-runner获取安装包
#####安装包说明############
#Neatlogic-runner 自带3个安装包
#Unix类:tagent.tar
#Windows 32类:tagent_windows_x32.zip
#Windows 64类:tagent_windows_x64.zip
##########################
#eg:获取Unix安装包
#格式: http://Neatlogic-runner机器IP:8084/autoexecrunner/tagent/download/tagent.tar
# 示例
curl tagent.tar http://192.168.0.10:8084/autoexecrunner/tagent/download/tagent.tar
#eg: 获取Windows 64位安装包
# 示例
curl tagent_windows_x64.zip http://192.168.0.10:8084/autoexecrunner/tagent/download/tagent_windows_x64.zip
4) 手动安装
Linux | SUSE | Aix |Unix 类安装
# 登录目标受管机器,下载安装包,建议统一存放/opt目录
cd /opt
curl tagent.tar http://192.168.0.10:8084/autoexecrunner/tagent/download/tagent.tar
# 解压
tar -xvf tagent.tar
# 查看shell类型
echo $0 #aix操作系统需注意,大多数默认是ksh
# 执行安装
# 参数说明:--serveraddr neatlogic-runner的访问地址 --tenant 租户名称
# shell类型是bash,示例
sh tagent/bin/setup.sh --action install --serveraddr http://192.168.90.111:8084 --tenant demo
# shell类型是ksh,示例
sh tagent/bin/setup.ksh --action install --serveraddr http://192.168.90.111:8084 --tenant demo
# 安装完检查 (3个进程)
ps -ef |grep tagent
# 查看日志
less tagent/run/root/logs/tagent.log
# 查看配置
less tagent/run/root/conf/tagent.conf
#启停
service tagent start/stop
Windows类型安装
查看Windows操作是多少位OS,选择对应安装包。
登录目标受管机器,下载安装包并拷贝到c盘,建议统一存放c盘根目录。
以管理员权限打开cmd窗口,并切换到c盘目录
cd tagent_windows_x64目录,执行:service-install.bat
示例:
cd c:\tagent_windows_x64
service-install.bat
5) 自动安装
Linux | SUSE | Aix |Unix 类安装示例
# 定义runner变量
RUNNER_ADDR=http://192.168.0.10:8084 #Neatlogic-runner的IP和端口
cd /opt
# 下载安装脚本
curl -o install.sh $RUNNER_ADDR/autoexecrunner/tagent/download/install.sh
# 执行安装
bash install.sh --tenant demo --pkgurl $RUNNER_ADDR/autoexecrunner/tagent/download/tagent.tar --serveraddr $RUNNER_ADDR
Windows类安装示例
# 打开浏览器输入runner地址下载install.vbs,如:http://192.168.0.10:8080/autoexecrunner/tagent/download/install.vbs
# 以管理员打开cmd窗口
# 切换install.vbs所在目录,或拷贝install.vbs到"%Temp%"目录
# 执行安装
set RUNNER_ADDR=http://192.168.0.10:8084
cscript install.vbs /tenant:demo /pkgurl:%RUNNER_ADDR%/autoexecrunner/tagent/download/tagent_windows_x64.tar /serveraddr:%RUNNER_ADDR%
6) 如何卸载
Linux | SUSE | Aix |Unix 类服务卸载
cd /opt
# 查看Shell类型
echo $0
# Shell为bash
sh tagent/bin/setup.sh --action uninstall
# Shell为ksh
sh tagent/bin/setup.ksh --action uninstall
# 删除安装目录
rm -rf tagent
Windows类服务卸载
以管理员权限打开cmd窗口,切换到tagent_windows_x64安装目录,执行:service-uninstall.bat,并删除安装目录,示例:
cd c:\tagent_windows_x64
service-uninstall.bat
rd /s /q c:\tagent_windows_x64
7) 网络策略
源IP 目的IP 目的端口 协议 备注
neatlogic-tagent-client主机 neatlogic-runner主机 8084/8888 TCP 8084注册端口/ 8888心跳端口
neatlogic-runner主机 neatlogic-tagent-client主机 3939 TCP 命令下发端口