!bin/bash

openclaw openclaw官方 1

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

!bin/bash-第1张图片-OpenClaw开源下载|官方OpenClaw下载

  1. OpenClaw(开源云日志分析工具) - 一个基于ELK Stack的日志分析系统
  2. OpenClaw(机器人控制软件) - 一个开源的机器人抓取控制软件
  3. 其他同名项目

假设您指的是第一种(日志分析工具),这里是一个一键安装脚本:

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 "$@"

使用方法:

  1. 保存脚本

    wget https://raw.githubusercontent.com/your-repo/openclaw-installer/master/install.sh
    # 或者手动创建文件
  2. 赋予执行权限

    chmod +x install.sh
  3. 运行安装脚本

    ./install.sh

配置选项

您可以根据需要修改以下配置:

  1. 内存设置:在docker-compose.yml中调整ES_JAVA_OPTS
  2. 日志路径:在filebeat/filebeat.yml中添加您的日志路径
  3. 端口配置:修改端口映射以满足您的需求

注意事项

  1. 系统要求

    • 至少4GB内存
    • 20GB可用磁盘空间
    • CentOS 7+ 或 Ubuntu 18.04+
  2. 防火墙设置

    # 开放端口
    firewall-cmd --permanent --add-port=5601/tcp
    firewall-cmd --permanent --add-port=9200/tcp
    firewall-cmd --reload
  3. 安全建议

    • 修改默认密码
    • 启用SSL/TLS
    • 配置访问控制

您需要根据实际的OpenClaw项目调整这个脚本,如果您的OpenClaw是其他类型的项目,请提供更多信息,我可以为您调整脚本。

标签: 权限管理 sudoers配置

抱歉,评论功能暂时关闭!