OctoMation运维手册 - flagify-com/OctoMation GitHub Wiki

容器说明

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管理页面,点击“系统配置——系统状态”,可查看当前各个组件的运行情况:

image

JVM大小调整及性能优化

为提升系统性能,可根据服务器物理内存大小调整OctoMation各个服务的JVM大小。
在宿主机性能充足的情况下,可以去掉docker-compose.yml中mem_limitcpus的限制

以下以调整服务的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参数要大一个量级)

image

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

image

image

审计日志查看

进入Web管理页面,点击“系统配置——审计日志”,可查看当前系统审计日志,如用户登入登出、配置修改等。 image

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