我了解到您想要一个OpenClaw的一键安装脚本,我需要澄清一下,"OpenClaw"可能有不同的含义:

- OpenClaw(开源云日志分析工具) - 一个基于ELK Stack的日志分析系统
- OpenClaw(机器人控制软件) - 一个开源的机器人抓取控制软件
- 其他同名项目
假设您指的是第一种(日志分析工具),这里是一个一键安装脚本:
OpenClaw ELK Stack 安装脚本
# 适用于 CentOS 7/8, Ubuntu 18.04/20.04
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# 打印信息
info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查系统
check_system() {
if [ -f /etc/redhat-release ]; then
OS="centos"
elif [ -f /etc/lsb-release ]; then
OS="ubuntu"
else
error "不支持的操作系统"
exit 1
fi
info "检测到操作系统: $OS"
}
# 安装依赖
install_dependencies() {
info "安装系统依赖..."
if [ "$OS" = "centos" ]; then
yum install -y epel-release
yum install -y wget curl vim git java-11-openjdk-devel
elif [ "$OS" = "ubuntu" ]; then
apt-get update
apt-get install -y wget curl vim git openjdk-11-jdk
fi
}
# 安装Docker
install_docker() {
info "安装Docker..."
if ! command -v docker &> /dev/null; then
if [ "$OS" = "centos" ]; then
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
elif [ "$OS" = "ubuntu" ]; then
apt-get install -y apt-transport-https ca-certificates gnupg-agent
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io
fi
systemctl start docker
systemctl enable docker
info "Docker 安装完成"
else
info "Docker 已安装"
fi
}
# 安装Docker Compose
install_docker_compose() {
info "安装Docker Compose..."
if ! command -v docker-compose &> /dev/null; then
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
info "Docker Compose 安装完成"
else
info "Docker Compose 已安装"
fi
}
# 下载OpenClaw配置
setup_openclaw() {
info "设置OpenClaw..."
mkdir -p /opt/openclaw
cd /opt/openclaw
# 创建docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- es_data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
networks:
- openclaw-network
kibana:
image: docker.elastic.co/kibana/kibana:7.15.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
networks:
- openclaw-network
depends_on:
- elasticsearch
logstash:
image: docker.elastic.co/logstash/logstash:7.15.0
container_name: logstash
volumes:
- ./logstash/pipeline:/usr/share/logstash/pipeline
- ./logstash/config:/usr/share/logstash/config
ports:
- "5044:5044"
- "5000:5000/tcp"
- "5000:5000/udp"
networks:
- openclaw-network
depends_on:
- elasticsearch
filebeat:
image: docker.elastic.co/beats/filebeat:7.15.0
container_name: filebeat
volumes:
- ./filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
- /var/log:/var/log:ro
- /var/lib/docker/containers:/var/lib/docker/containers:ro
networks:
- openclaw-network
depends_on:
- elasticsearch
networks:
openclaw-network:
driver: bridge
volumes:
es_data:
driver: local
EOF
# 创建目录结构
mkdir -p {logstash/{pipeline,config},filebeat}
# 创建Logstash配置文件
cat > logstash/pipeline/logstash.conf << 'EOF'
input {
beats {
port => 5044
}
tcp {
port => 5000
codec => json_lines
}
}
filter {
# 根据需求添加过滤规则
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
EOF
# 创建Filebeat配置文件
cat > filebeat/filebeat.yml << 'EOF'
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
- /var/log/messages
- /var/log/syslog
output.logstash:
hosts: ["logstash:5044"]
EOF
info "OpenClaw配置文件创建完成"
}
# 启动OpenClaw
start_openclaw() {
info "启动OpenClaw服务..."
cd /opt/openclaw
docker-compose up -d
# 等待服务启动
sleep 30
info "检查服务状态..."
docker-compose ps
echo ""
echo "=============================================="
echo "OpenClaw 安装完成!"
echo ""
echo "访问以下地址:"
echo "Kibana界面: http://$(curl -s ifconfig.me):5601"
echo "Elasticsearch: http://$(curl -s ifconfig.me):9200"
echo ""
echo "常用命令:"
echo "启动服务: cd /opt/openclaw && docker-compose up -d"
echo "停止服务: cd /opt/openclaw && docker-compose down"
echo "查看日志: cd /opt/openclaw && docker-compose logs -f"
echo "=============================================="
}
# 主函数
main() {
clear
echo "=============================================="
echo " OpenClaw 一键安装脚本"
echo "=============================================="
# 检查root权限
if [ "$EUID" -ne 0 ]; then
error "请使用root权限运行此脚本"
exit 1
fi
check_system
install_dependencies
install_docker
install_docker_compose
setup_openclaw
start_openclaw
}
# 执行主函数
main "$@"
使用方法:
-
保存脚本:
wget https://raw.githubusercontent.com/your-repo/openclaw-installer/master/install.sh # 或者手动创建文件
-
赋予执行权限:
chmod +x install.sh
-
运行安装脚本:
./install.sh
配置选项
您可以根据需要修改以下配置:
- 内存设置:在
docker-compose.yml中调整ES_JAVA_OPTS - 日志路径:在
filebeat/filebeat.yml中添加您的日志路径 - 端口配置:修改端口映射以满足您的需求
注意事项
-
系统要求:
- 至少4GB内存
- 20GB可用磁盘空间
- CentOS 7+ 或 Ubuntu 18.04+
-
防火墙设置:
# 开放端口 firewall-cmd --permanent --add-port=5601/tcp firewall-cmd --permanent --add-port=9200/tcp firewall-cmd --reload
-
安全建议:
- 修改默认密码
- 启用SSL/TLS
- 配置访问控制
您需要根据实际的OpenClaw项目调整这个脚本,如果您的OpenClaw是其他类型的项目,请提供更多信息,我可以为您调整脚本。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。