Docker ile Kurulum
Docker compose dosyasını kullanarak TheHive ve Cortex'i çalıştırın:
Compose dosyasına aşağıdaki kodu ekleyin.
version: "3"
services:
thehive:
image: strangebee/thehive:5.2
depends_on:
- cassandra
- elasticsearch
- minio
- cortex
mem_limit: 1500m
ports:
- "9000:9000"
environment:
- JVM_OPTS="-Xms1024M -Xmx1024M"
command:
- --secret
- "mySecretForTheHive"
- "--cql-hostnames"
- "cassandra"
- "--index-backend"
- "elasticsearch"
- "--es-hostnames"
- "elasticsearch"
- "--s3-endpoint"
- "http://minio:9000"
- "--s3-access-key"
- "minioadmin"
- "--s3-secret-key"
- "minioadmin"
- "--s3-bucket"
- "thehive"
- "--s3-use-path-access-style"
- "--cortex-hostnames"
- "cortex"
- "--cortex-keys"
# put cortex api key once cortex is bootstraped
- "<cortex_api_key>"
cassandra:
image: 'cassandra:4'
mem_limit: 1600m
ports:
- "9042:9042"
environment:
- MAX_HEAP_SIZE=1024M
- HEAP_NEWSIZE=1024M
- CASSANDRA_CLUSTER_NAME=TheHive
volumes:
- cassandradata:/var/lib/cassandra
restart: on-failure
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.12
mem_limit: 1500m
ports:
- "9200:9200"
environment:
- discovery.type=single-node
- xpack.security.enabled=false
volumes:
- elasticsearchdata:/usr/share/elasticsearch/data
minio:
image: quay.io/minio/minio
mem_limit: 512m
command: ["minio", "server", "/data", "--console-address", ":9090"]
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
ports:
- "9090:9090"
volumes:
- "miniodata:/data"
cortex:
image: thehiveproject/cortex:3.1.7
depends_on:
- elasticsearch
environment:
- job_directory=/tmp/cortex-jobs
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /tmp/cortex-jobs:/tmp/cortex-jobs
ports:
- "9001:9001"
volumes:
miniodata:
cassandradata:
elasticsearchdata:
Oturum açma sayfasını görmek için [http://localhost:9000] adresinden bağlanın.
Kimlik bilgileri :
MinIO'da "thehive" kovasını oluşturmayı unutmayın. Varsayılan kimlik bilgilerini ve gizli dizileri değiştirmeniz önemle tavsiye edilir.
Kendi Yapılandırma Dosyanızı Kullanarak :
Giriş noktası argümanları, bir uygulama.conf dosyasının konteynırda oluşturulması için kullanılır. Özel bir yapılandırma dosyası da sağlanabilir:
thehive:
image: strangebee/thehive:<version>
depends_on:
- cassandra
- elasticsearch
- minio
- cortex
mem_limit: 1500m
ports:
- "9000:9000"
environment:
- JVM_OPTS="-Xms1024M -Xmx1024M"
volumes:
- <host_conf_folder>:/data/conf
command:
- --no-config
- --config-file
- /data/conf/application.conf
...
docker run --rm -p 9000:9000 -v <host_conf_folder>:/data/conf strangebee/thehive:<version> --no-config --config-file /data/conf/application.conf
<host_conf_folder> klasörünün bir application.conf dosyası içermesi gerekmektedir.
--no-config, giriş noktasına herhangi bir yapılandırma dosyası oluşturulmamasını söylemek için kullanılır. Aksi takdirde, giriş noktası varsayılan bir yapılandırma oluşturacak ve bu dosya sizin dosyanızla birleştirilecektir.
Komut Satırı Argümanları Kullanarak
Veri depolama için Cassandra ve Elasticsearch ile TheHive'ı çalıştırmanızı ve dosya depolama için minio'yu kullanmanızı öneririz. Örnek olarak, örneklerinizin ana bilgisayar adlarını argümanlar aracılığıyla iletebilirsiniz:
docker run --rm -p 9000:9000 strangebee/thehive:<version> \
--secret <secret>
--cql-hostnames <cqlhost1>,<cqlhost2>,...
--cql-username <cqlusername>
--cql-password <cqlusername>
--index-backend elasticsearch
--es-hostnames <eshost1>,<eshost2>,...
--s3-endpoint <minio_endpoint>
--s3-access-key <minio_access_key>
--s3-secret-key <minio_secret_key>
Bu, docker konteynerinizi harici cassandra ve elasticsearch düğümlerine bağlayacaktır. Veri dosyaları minio üzerinde saklanacaktır. Konteyner, TheHive'ı 9000 numaralı bağlantı noktasında gösterir.
Tüm Seçenekler
Docker giriş noktası tarafından desteklenen tüm seçenekleri -h ile alabilirsiniz:
docker run --rm strangebee/thehive:<version> -h
Available options:
--config-file <file> | configurationYapılandırma filedosyasının pathyolunu belirtir.
--no-config | doTheHive'ın notgizli trydiziler tove configureElasticsearch TheHiveayarları (addeklemek secretde anddahil elasticsearch)olmak üzere kendini yapılandırmaya çalışmasını engeller.
--no-config-secret |Yapılandırmada dorastgele notoluşturulmuş addbir randomgizli secretanahtar toeklenmesini configurationhariç tutar.
--secret <secret> | secretOturumları togüvence securealtına sessionsalmak için kullanılan gizli anahtarı ayarlar.
--show-secret | showOluşturulan thegizli generatedanahtarı secretgörüntüler.
--no-config-db | doVeritabanının nototomatik configureolarak databaseyapılandırılmasını automaticallysağlar.
--cql-hostnames <host>,<host>,... | resolveCassandra theseörneklerini hostnamesbulmak toiçin findbu cassandraana instancesbilgisayar adlarını çözümler.
--cql-username <username> | usernameCassandra ofveritabanı cassandraiçin databasekullanıcı adını belirtir
--cql-password <password> | passwordCassandra ofveritabanı cassandraiçin databaseparolayı belirtir.
--no-cql-wait | don'tCassandra'nın waitkullanılabilir forolmasını cassandrabeklemeyi atlar.
--bdb-directory <path> | locationCassandra ofkullanılmıyorsa localyerel database,veritabanının ifkonumunu cassandra is not usedtanımlar (default:varsayılan: /data/db).
--index-backend | backendDizin toiçin usekullanılacak forarka index.ucu One ofbelirtir, 'lucene' orveya 'elasticsearch' (default:varsayılan: lucene).
--es-hostnames | elasticsearchDizin instancesiçin usedkullanılan forElasticsearch indexörneklerini belirtir
--es-index | elasticsearchKullanılacak indexElasticsearch namedizin toadını usedbelirtir (default:varsayılan: thehive).
--no-config-storage |Depolamanın dootomatik notyapılandırılmasını configuredevre storagedışı automaticallybırakır.
--storage-directory <path> | locationS3 ofkullanılmıyorsa localyerel storage,depolama ifalanının s3konumunu is not usedbelirtir (default:varsayılan: /data/files).)
--s3-endpoint <endpoint> | endpointAWS ofS3 s3 (or other object storage) if used, useiçin 's3.amazonaws.com' forile awsS3'ün s3veya kullanılıyorsa diğer nesne depolamanın uç noktasını belirtir
--s3-region <region> | s3S3 region,bölgesini optionalbelirtir, forMinIO minioiçin isteğe bağlıdır.
--s3-bucket <bucket> |Kullanılacak namekovanın ofadını the bucket to usebelirtir (default:varsayılan: thehive), thebu bucketkovanın mustzaten alreadyvar existsolması gerekir.
--s3-access-key <key> | s3S3 accesserişim keyanahtarını belirtir (requiredS3 foriçin s3)gereklidir).
--s3-secret-key <key> |S3 s3gizli secretanahtarını keybelirtir (requiredS3 foriçin s3)gereklidir).
--s3-use-path-access-style | setMinIO thisveya flagbaşka ifbir youAWS usedışı minioS3 orsağlayıcısı otherkullanılıyorsa nonbu awsbayrağı s3ayarlar, provider,varsayılan defaultolarak tosanal virtualana hostbilgisayar stylestili kullanılır.
--no-config-cortex | do not add Cortex configurationyapılandırmasını hariç tutar.
--cortex-proto <proto> | defineCortex'e protocolbağlanmak toiçin connectprotokolü to Cortextanımlar (default:varsayılan: http).
--cortex-port <port> | defineCortex'e portbağlanmak toiçin connectportu to Cortextanımlar (default:varsayılan: 9001).
--cortex-hostnames <host>,<host>,... | resolve this hostname to find Cortex instancesörneklerini bulmak için bu ana bilgisayar adlarını çözümler.
--cortex-keys <key>,<key>,... | define Cortex keyanahtarlarını tanımlar.
--kubernetes | willDiğer usedüğümlere kuberneteskatılmak apiiçin toKubernetes joinAPI'sini otherkullanır.
nodes• --kubernetes-pod-label-selector <selector>: |Uygulamayı selectorçalıştıran todiğer usepodları toseçmek selectiçin otherkullanılacak podsseçiciyi running the appbelirtir (defaultvarsayılan app=thehive).
--cluster-min-nodes-count <count> | Bir küme oluşturmak için minimum numberdüğüm ofsayısını nodes to form a clusterbelirtir (defaultvarsayılan to 1)1'dir).
migrate <param> <param> ... | runGeçiş migrationaracını toolçalıştırır.
cloner <param> <param> ... | runKlonlama cloneraracını toolçalıştırır.
Kubernetes'te Kullanım
Bir konteyner, Docker'ın izin verdiğinden çok daha fazla bellek kullanıyor. Konteyner için daha fazla bellek izni vermek için mem_limit parametresini artırabilirsiniz. JVM tabanlı uygulamalar için (TheHive, Cassandra, Elasticsearch gibi) JVM parametrelerini ayarlayarak kullanılacak maksimum heap boyutunu belirleyebilirsiniz. TheHive için JVM_OPTS ortam değişkenini kullanabilirsiniz: JVM_OPTS="-Xms1024M -Xmx1024M"