OctoMation运维手册 - flagify-com/OctoMation GitHub Wiki
- 容器说明
- 容器管理
- 服务启停
- 日志管理
- 健康性检查
- JVM大小调整及性能优化
- 审计日志查看
- OctoMation服务卸载
- OctoMation默认开放端口说明
- 检查syslog开放端口是否可以接通
- 典型故障与解决方案
容器说明
OctoMation使用容器方式部署运行,每个服务组件对应一个容器。容器名(服务名)列表:
镜像 | 容器名称 | 备注 |
---|---|---|
wuzhizhineng/shakespeare-static:1.0.0_community | shakespeare-static | / |
wuzhizhineng/shakespeare-executor:1.0.0_community | shakespeare-executor | / |
wuzhizhineng/shakespeare-pre:1.0.0_community | shakespeare-pre | 前置引擎 |
wuzhizhineng/shakespeare-action:1.0.0_community | shakespeare-action | 执行引擎 |
wuzhizhineng/shakespeare-mgmt:1.0.0_community | shakespeare-mgmt | mgmt |
wuzhizhineng/shakespeare-rule-mgmt:1.0.0_community | shakespeare-rule-mgmt | 规则引擎 |
wuzhizhineng/shakespeare-java-exe-python:1.0.0_community | shakespeare-java-exe-python | python执行引擎 |
wuzhizhineng/shakespeare-kafka:1.0.0 | hg_kafka | 消息队列Kafka |
wuzhizhineng/shakespeare-es:1.0.0 | hg_es | ES数据库 |
wuzhizhineng/shakespeare-mariadb:1.0.0 | hg_db | Maria数据库 |
wuzhizhineng/shakespeare-zookeeper:1.0.0 | hg_zk | ZooKeeper |
容器管理
查看容器镜像:
docker images
查看当前所有运行的容器:
docker ps
查看某个容器:
docker ps | grep 容器名
进入容器
docker exec -it 容器名 /bin/bash
服务启停
停止所有服务
docker-compose -f /opt/shakespeare/docker-compose.yml down
#shakespeare-java-exe-python服务使用下面脚本
docker-compose -f /opt/honeyguide_docker_python/docker-compose.yml down
启动所有服务
docker-compose -f /opt/shakespeare/docker-compose.yml up -d
#shakespeare-java-exe-python服务使用下面脚本
docker-compose -f /opt/honeyguide_docker_python/docker-compose.yml up -d
启停单个服务
#除shakespeare-java-exe-python以外的服务
docker-compose -f /opt/shakespeare/docker-compose.yml stop 容器名
docker-compose -f /opt/shakespeare/docker-compose.yml start 容器名
日志管理
OctoMation服务日志保存在以下路径
/opt/shakespeare/logs
日志保留时间和大小设置
修改/opt/shakespeare/app.sh文件可进行日志保留参数配置。
1)修改基础服务日志保留天数
#add log save time
export BIN_LOG_SAVE_TIME="1"
#KAFKA_SAVE_TIME是用来存 elasticsearch的日志保留天数的值
export KAFKA_SAVE_TIME="3"
#KAFKA_SAVE_HOUR是用来存kafka zookeeper的日志保留小时数
export KAFKA_SAVE_HOUR="72"
# NGINX_SAVE_TIME用来存nginx和shakespeare的日志保留天数的值
export NGINX_SAVE_TIME="3"
#add log save time end
2)修改服务日志保留天数和大小
##log config begin###
export LOG_MAX_HISTORY=3
export LOG_MAX_FILE_SIZE=100MB
export TOTAL_SIZE_CAP="10GB"
##log config end###
修改完成后,需重启所有服务生效。
容器运行日志查看
docker logs -f 容器名
docker logs -f --tail="100" 容器名 //只显示最后100行
健康性检查
查看组件运行情况
进入Web管理页面,点击“系统配置——系统状态”,可查看当前各个组件的运行情况:
JVM大小调整及性能优化
为提升系统性能,可根据服务器物理内存大小调整OctoMation各个服务的JVM大小。
在宿主机性能充足的情况下,可以去掉docker-compose.yml中mem_limit
和cpus
的限制
以下以调整服务的JVM大小为例
1、修改docker-compose文件(python相关服务的docker-compose文件在/opt/honeyguide_docker_data目录下)
vi /opt/shakespeare/docker-compose.yml
1)记录mgmt服务JVM启动参数修改的变量:S9E_MGMT_JAVA_OPTS
2)根据需求修改mgmt容器的内存限制大小为: 4096M(这个值需要比jvm参数要大一个量级)
2、修改mgmt服务JVM的启动参数
1)编辑环境变量app.sh文件,并增加以下环境变量
vi /etc/profile.d/app.sh
##这个变量为上一步从compose文件获取到的,注意加引号
export S9E_MGMT_JAVA_OPTS="-Xms2048m -Xmx2048m -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M"
2)source 环境变量
source /etc/profile.d/app.sh
3)停止mgmt容器
docker-compose -f /opt/shakespeare/docker-compose.yml stop shakespeare-mgmt
4)查看mgmt容器id,并删除
docker ps -a|grep shakespeare-mgmt
docker rm -f dbdeffa99c97
5)启动mgmt容器
docker-compose -f /opt/shakespeare/docker-compose.yml up -d shakespeare-mgmt
6)验证是否生效
docker exec -it shakespeare-mgmt /bin/bash
ps -ef|grep mgmt
审计日志查看
进入Web管理页面,点击“系统配置——审计日志”,可查看当前系统审计日志,如用户登入登出、配置修改等。
OctoMation服务卸载
sh /opt/shakespeare/uninstall.sh
OctoMation默认开放端口说明
协议 | 端口 | 监听 | 用途 | 备注 |
---|---|---|---|---|
TCP | 80 | 0.0.0.0 | HTTP访问,自动跳转到HTTPS | |
TCP | 443 | 0.0.0.0 | HTTPS访问 | |
TCP | 22 | 0.0.0.0 | SSH访问 | |
TCP | 9092 | 0.0.0.0 | kafka方式接入事件 | |
UDP | 31514 | 0.0.0.0 | syslog方式接入事件 |
检查syslog开放端口是否可以接通
1.登录Octomation系统,创建一个事件接入,方式选择syslog,端口填默认的31514协议默认为UDP
2.在外部执行 nc -u Octomation的ip 31514,然后输入日志信息
3.在shakespeare-pre日志中查看是否有日志信息或者查看事件列表是否有事件生成
典型故障与解决方案
重置admin密码
一共分两步。
首先,进入mgmt容器拿运行环境密码:
docker exec -it shakespeare-mgmt /bin/bash
source /etc/profile
v1=$SHAKESPEARE_AE_DB_VP
v2=$SHAKESPEARE_AE_DB_VU
v11=`echo -n $v1 |base64`
echo $v1
# ******
echo $v2
# xxxxxx
echo $v11
# ~~~~~~
exit
退出mgmt容器,进入mysql容器,重置密码
docker exec -it hg_db /bin/bash
# 此处v1\v2\v11填写上一步获取到的返回值!!!
v1="***替换成上一步内容***"
v2="xxx替换成上一步内容xxx"
v11="~~替换成上一步内容~~~"
mysql -hmysql.sp.com -u"${v2}" -p"?^^${v11}1w" shakespeare_ae -e "update user_info set forbidden=0 ,password_error_times=0,password='dd7978182f4eda08fa1b34012e1bdc17' where username='admin' and etype=0;"
exit
退出数据库容器。
使用admin/octomation
登录系统,并修改为一个复杂安全的密码。
磁盘空间不足导致elasticsearch只读
1.保证有充足的磁盘空余空间
2.进入elasticsearch容器执行:
curl -XPUT -H "Content-Type: application/json" http://es.sp.com:9410/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}' --user ${S9E_ELASTICSEARCH_USERNAME}:${S9E_ELASTICSEARCH_PASSWORD}
重启elasticsearch
清理docker容器日志
1.宿主机上可能会有一个容器id-json.log
日志文件很大,执行cat /dev/null > *-json.log
命令释放空间
2.修改/etc/docker/daemon.json
,添加{"log-opts":{"max-size": "10m","max-file": "3"}}
限制大小,具体数值可以酌情
3.重启docker服务systemctl restart docker