compose.yaml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. ---
  2. services:
  3. wazuh.manager:
  4. image: docker.io/wazuh/wazuh-manager:4.12.0
  5. container_name: wazuh-prod-1-manager
  6. hostname: wazuh.manager
  7. ulimits:
  8. memlock:
  9. soft: -1
  10. hard: -1
  11. nofile:
  12. soft: 655360
  13. hard: 655360
  14. ports:
  15. - "1514:1514"
  16. - "1515:1515"
  17. - "514:514/udp"
  18. - "55000:55000"
  19. environment:
  20. - INDEXER_URL=https://wazuh.indexer:9200
  21. - INDEXER_USERNAME=${INDEXER_USERNAME:?error}
  22. - INDEXER_PASSWORD=${INDEXER_PASSWORD:?error}
  23. - FILEBEAT_SSL_VERIFICATION_MODE=full
  24. - SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem
  25. - SSL_CERTIFICATE=/etc/ssl/filebeat.pem
  26. - SSL_KEY=/etc/ssl/filebeat.key
  27. - API_USERNAME=${API_USERNAME:?error}
  28. - API_PASSWORD=${API_PASSWORD:?error}
  29. volumes:
  30. - wazuh_api_configuration:/var/ossec/api/configuration
  31. - wazuh_etc:/var/ossec/etc
  32. - wazuh_logs:/var/ossec/logs
  33. - wazuh_queue:/var/ossec/queue
  34. - wazuh_var_multigroups:/var/ossec/var/multigroups
  35. - wazuh_integrations:/var/ossec/integrations
  36. - wazuh_active_response:/var/ossec/active-response/bin
  37. - wazuh_agentless:/var/ossec/agentless
  38. - wazuh_wodles:/var/ossec/wodles
  39. - filebeat_etc:/etc/filebeat
  40. - filebeat_var:/var/lib/filebeat
  41. - ./config/wazuh_indexer_ssl_certs/root-ca-manager.pem:/etc/ssl/root-ca.pem
  42. - ./config/wazuh_indexer_ssl_certs/wazuh.manager.pem:/etc/ssl/filebeat.pem
  43. - ./config/wazuh_indexer_ssl_certs/wazuh.manager-key.pem:/etc/ssl/filebeat.key
  44. - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
  45. # --> (Optional) For custom rules
  46. # - ./config/rules/local_rules.xml:/var/ossec/etc/rules/local_rules.xml:ro
  47. # <--
  48. # --> (Optional) When using traefik
  49. # networks:
  50. # - frontend
  51. # <--
  52. # --> (Optional) When using a separate backend network
  53. # - backend
  54. # <--
  55. restart: unless-stopped
  56. wazuh.indexer:
  57. image: docker.io/wazuh/wazuh-indexer:4.12.0
  58. container_name: wazuh-prod-1-indexer
  59. hostname: wazuh.indexer
  60. ports:
  61. - "9200:9200"
  62. environment:
  63. - "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
  64. ulimits:
  65. memlock:
  66. soft: -1
  67. hard: -1
  68. nofile:
  69. soft: 65536
  70. hard: 65536
  71. volumes:
  72. - wazuh-indexer-data:/var/lib/wazuh-indexer
  73. - ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/certs/root-ca.pem
  74. - ./config/wazuh_indexer_ssl_certs/wazuh.indexer-key.pem:/usr/share/wazuh-indexer/certs/wazuh.indexer.key
  75. - ./config/wazuh_indexer_ssl_certs/wazuh.indexer.pem:/usr/share/wazuh-indexer/certs/wazuh.indexer.pem
  76. - ./config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/certs/admin.pem
  77. - ./config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/certs/admin-key.pem
  78. - ./config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
  79. - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
  80. # --> (Optional) When using traefik
  81. # networks:
  82. # - frontend
  83. # <--
  84. # --> (Optional) When using a separate backend network
  85. # - backend
  86. # <--
  87. restart: unless-stopped
  88. wazuh.dashboard:
  89. image: docker.io/wazuh/wazuh-dashboard:4.12.0
  90. container_name: wazuh-prod-1-dashboard
  91. hostname: wazuh.dashboard
  92. # --> (Optional) Remove the port mapping when using traefik
  93. ports:
  94. - 4443:5601
  95. # <--
  96. environment:
  97. - INDEXER_USERNAME=${INDEXER_USERNAME:?error}
  98. - INDEXER_PASSWORD=${INDEXER_PASSWORD:?error}
  99. - WAZUH_API_URL=https://wazuh.manager
  100. - DASHBOARD_USERNAME=${DASHBOARD_USERNAME:?error}
  101. - DASHBOARD_PASSWORD=${DASHBOARD_PASSWORD:?error}
  102. - API_USERNAME=${API_USERNAME:?error}
  103. - API_PASSWORD=${API_PASSWORD:?error}
  104. volumes:
  105. - ./config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem
  106. - ./config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem
  107. - ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem
  108. - ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
  109. - ./config/wazuh_dashboard/wazuh.yml:/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
  110. - wazuh-dashboard-config:/usr/share/wazuh-dashboard/data/wazuh/config
  111. - wazuh-dashboard-custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
  112. # --> (Optional) When using traefik
  113. # labels:
  114. # - traefik.enable=true
  115. # - traefik.http.routers.wazuh-prod-1-https.entrypoints=websecure
  116. # - traefik.http.routers.wazuh-prod-1-https.rule=Host(`wazuh-prod-1.srv-prod-1.home.clcreative.de`)
  117. # - traefik.http.routers.wazuh-prod-1-https.tls=true
  118. # - traefik.http.routers.wazuh-prod-1-https.tls.certresolver=cloudflare
  119. # - traefik.http.services.wazuh-prod-1-service.loadbalancer.server.port=5601
  120. # - traefik.http.services.wazuh-prod-1-service.loadbalancer.server.scheme=https
  121. # networks:
  122. # - frontend
  123. # <--
  124. # --> (Optional) When using a separate backend network
  125. # - backend
  126. # <--
  127. depends_on:
  128. - wazuh.indexer
  129. restart: unless-stopped
  130. # --> (Optional) When you need to use an SMTP relay for email notifications, and authentication is required
  131. # postfix:
  132. # image: docker.io/mwader/postfix-relay:1.1.39
  133. # environment:
  134. # - POSTFIX_myhostname=postfix
  135. # volumes:
  136. # - ./config/postfix-relay/main.cf:/etc/postfix/main.cf:ro
  137. # - ./config/postfix-relay/sasl_passwd:/etc/postfix/sasl_passwd:rw # <-- (Optional) Remove when using inline credentials
  138. # - postfix_data:/etc/postfix
  139. # networks:
  140. # - backend
  141. # restart: unless-stopped
  142. # <--
  143. volumes:
  144. wazuh_api_configuration:
  145. wazuh_etc:
  146. wazuh_logs:
  147. wazuh_queue:
  148. wazuh_var_multigroups:
  149. wazuh_integrations:
  150. wazuh_active_response:
  151. wazuh_agentless:
  152. wazuh_wodles:
  153. filebeat_etc:
  154. filebeat_var:
  155. wazuh-indexer-data:
  156. wazuh-dashboard-config:
  157. wazuh-dashboard-custom:
  158. # --> (Optional) When you need to use an SMTP relay for email notifications, and authentication is required
  159. # postfix_data:
  160. # <--
  161. # --> (Optional) When using traefik
  162. # networks:
  163. # frontend:
  164. # external: true
  165. # <--
  166. # --> (Optional) When using a separate backend network
  167. # backend:
  168. # external: true
  169. # <--