summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--public/v2/apps/graylog.json117
1 files changed, 117 insertions, 0 deletions
diff --git a/public/v2/apps/graylog.json b/public/v2/apps/graylog.json
new file mode 100644
index 0000000..1ca2fe5
--- /dev/null
+++ b/public/v2/apps/graylog.json
@@ -0,0 +1,117 @@
+{
+ "captainVersion": "2",
+ "documentation": "Taken from https://hub.docker.com/r/graylog/graylog",
+ "dockerCompose": {
+ "version": "3.3",
+ "services": {
+ "$$cap_appname-mongodb": {
+ "image": "mongo:$$cap_mongo_version",
+ "notExposeAsWebApp": "true",
+ "volumes": [
+ "$$cap_appname-db-data:/data/db",
+ "$$cap_appname-db-config:/data/configdb"
+ ],
+ "restart": "always"
+ },
+ "$$cap_appname-elasticsearch": {
+ "notExposeAsWebApp": "true",
+ "image" : "docker.elastic.co/elasticsearch/elasticsearch:$$cap_elasticsearch_version",
+ "volumes": [
+ "$$cap_appname-elasticsearch-data:/usr/share/elasticsearch/data"
+ ],
+ "restart": "always",
+ "environment": {
+ "ES_JAVA_OPTS": "-Xms512m -Xmx512m",
+ "cluster.name": "$$cap_elasticsearch_cluster_name",
+ "http.port": "$$cap_container_port",
+ "node.master": "$$cap_elasticsearch_node_master",
+ "node.data": "$$cap_elasticsearch_node_data",
+ "discovery.zen.minimum_master_nodes": "$$cap_elasticsearch_minimum_master_nodes",
+ "discovery.zen.ping.unicast.hosts": "$$cap_elasticsearch_unicast_hosts"
+ }
+ },
+ "$$cap_appname": {
+ "depends_on": [
+ "$$cap_appname-mongodb",
+ "$$cap_appname-elasticsearch"
+ ],
+ "image": "graylog/graylog:$$cap_graylog_version",
+ "containerHttpPort": "9000",
+ "restart": "always",
+ "environment": {
+ "GRAYLOG_MONGODB_URI": "mongodb://srv-captain--$$cap_appname-mongodb/graylog",
+ "GRAYLOG_ELASTICSEARCH_HOSTS": "http://srv-captain--$$cap_appname-elasticsearch:$$cap_container_port",
+ "GRAYLOG_HTTP_EXTERNAL_URI": "//$$cap_appname.$$cap_root_domain/",
+ "GRAYLOG_ROOT_PASSWORD_SHA2": "$$cap_graylog_password"
+ }
+ }
+ }
+ },
+ "instructions": {
+ "start": "Graylog Log Management. \n\nNOTICE!:\n Be sure to extend the virtual memory on all your hosts! \n 1. echo 'vm.max_map_count=262144' >> /etc/sysctl.conf\n 2. sysctl -p",
+ "end": "Deployment of Graylog if finished. You will see 502 errors for the next 5+ minutes while Graylog starts up. Goto <YOUR-APP-URL> and login as \"admin\" with your unhashed password."
+ },
+ "variables": [{
+ "id": "$$cap_graylog_version",
+ "label": "Graylog Version",
+ "defaultValue": "3.1",
+ "description": "Checkout their docker page for the valid tags https://hub.docker.com/r/graylog/graylog/tags",
+ "validRegex": "/^([^\\s^\\/])+$/"
+ }, {
+ "id": "$$cap_graylog_password",
+ "label": "Graylog Admin Password",
+ "defaultValue": "",
+ "description": "Admin password SHA256 encoded. Generate with: echo -n \"<password>\" | shasum -a 256 | cut -d\" \" -f1",
+ "validRegex": "/^([^\\s^\\/])+$/"
+ }, {
+ "id": "$$cap_mongo_version",
+ "label": "MongoDB Version",
+ "defaultValue": "4",
+ "description": "Checkout their docker page for the valid tags https://hub.docker.com/r/library/mongo/tags/",
+ "validRegex": "/^([^\\s^\\/])+$/"
+ },
+ {
+ "id": "$$cap_elasticsearch_version",
+ "label": "Elasticsearch Version Tag ",
+ "description": "Checkout the releases overview: https://www.elastic.co/de/downloads/elasticsearch",
+ "defaultValue": "6.7.1",
+ "validRegex": "/^([^\\s^\\/])+$/"
+ },{
+ "id": "$$cap_elasticsearch_cluster_name",
+ "label": "Elasticsearch Cluster Name",
+ "description": "Only nodes within the same cluster name can be combined",
+ "defaultValue": "elasticsearch-cluster",
+ "validRegex": "/^([^\\s^\\/])+$/"
+ },{
+ "id": "$$cap_elasticsearch_unicast_hosts",
+ "label": "Elasticsearch Unicasts hosts",
+ "description": "References to other node to attach to. (for example: srv-captain--XXX)",
+ "defaultValue": "false",
+ "validRegex": "/^([^\\s^\\/])+$/"
+ },{
+ "id": "$$cap_elasticsearch_node_data",
+ "label": "Elasticsearch Node Data",
+ "description": "Should the node used for storing data? (true / false)",
+ "defaultValue": "true",
+ "validRegex": "/^([^\\s^\\/])+$/"
+ },{
+ "id": "$$cap_elasticsearch_node_master",
+ "label": "Elasticsearch Node Master",
+ "description": "Define node as master-eligible (usual first node YES, others NO).",
+ "defaultValue": "true",
+ "validRegex": "/^([^\\s^\\/])+$/"
+ },{
+ "id": "$$cap_elasticsearch_minimum_master_nodes",
+ "label": "Elasticsearch Minimum Master Nodes",
+ "description": "Define minimum amount of master (N) ( best practice: ceil(N/2 + 1) ).",
+ "defaultValue": "1",
+ "validRegex": "/^([0-9])+$/"
+ },{
+ "id": "$$cap_container_port",
+ "label": "Elasticsearch Container TCP Port",
+ "defaultValue": "9200",
+ "description": "Internal port for Elasticsearch the container listens to.",
+ "validRegex": "/^([0-9])+$/"
+ }
+ ]
+}