Created
November 10, 2020 19:42
-
-
Save christineywang/f8a10f48b5bc2148ef6f2d9b1d069f65 to your computer and use it in GitHub Desktop.
example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: "3.3" | |
networks: | |
loki: | |
services: | |
jaeger: | |
image: jaegertracing/all-in-one:1.14 | |
ports: | |
- "5775:5775/udp" | |
- "6831:6831/udp" | |
- "6832:6832/udp" | |
- "5778:5778" | |
- "16686:16686" | |
- "14268:14268" | |
- "9411:9411" | |
networks: | |
- loki | |
pushgateway: | |
image: prom/pushgateway:latest | |
command: ["--web.listen-address=0.0.0.0:9091", "--web.telemetry-path=/metrics"] | |
ports: | |
- 9091:9091 | |
networks: | |
- loki | |
loki: | |
image: grafana/loki:1.5.0 | |
ports: | |
- "3100:3100" | |
volumes: | |
- ./loki/:/etc/loki/ | |
command: -config.file=/etc/loki/loki.yaml | |
networks: | |
- loki | |
promtail: | |
image: grafana/promtail:1.5.0 | |
volumes: | |
- ./promtail/:/etc/promtail/ | |
command: -config.file=/etc/promtail/promtail.yaml | |
networks: | |
- loki | |
prometheus: | |
image: prom/prometheus:latest | |
volumes: | |
- ./prometheus/:/etc/prometheus/ | |
command: | |
- '--config.file=/etc/prometheus/prometheus.yml' | |
ports: | |
- "9090:9090" | |
networks: | |
- loki | |
graphite: | |
image: graphiteapp/graphite-statsd:latest | |
ports: | |
- "8070:80" | |
- "2003-2004:2003-2004" | |
- "2023-2024:2023-2024" | |
- "8125:8125/udp" | |
- "8126:8126" | |
volumes: | |
- graphite-data:/opt/graphite/storage | |
networks: | |
- loki | |
splunk: | |
build: ./splunk | |
image: grafana-splunk:docker-monitor | |
networks: | |
- loki | |
environment: | |
SPLUNK_START_ARGS: ${SPLUNK_START_ARGS} | |
SPLUNK_ENABLE_LISTEN: ${SPLUNK_ENABLE_LISTEN} | |
SPLUNK_USER: ${SPLUNK_USER} | |
SPLUNK_ADD: ${SPLUNK_ADD} | |
SPLUNK_ADD_1: ${SPLUNK_ADD_1} | |
SPLUNK_CMD: ${SPLUNK_CMD} | |
volumes: | |
- splunk-etc:/opt/splunk/etc | |
- splunk-var:/opt/splunk/var | |
- /var/lib/docker/containers:/host/containers:ro | |
- /var/run/docker.sock:/var/run/docker.sock:ro | |
- /var/log:/var/log:ro | |
ports: | |
- "8000:8000" | |
- "9997:9997" | |
- "8088:8088" | |
- "8089:8089" | |
- "1514:1514" | |
mysql: | |
image: mysql | |
command: --default-authentication-plugin=mysql_native_password | |
networks: | |
- loki | |
environment: | |
MYSQL_USER: ${MYSQL_USER} | |
MYSQL_PASSWORD: ${MYSQL_PASSWORD} | |
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} | |
MYSQL_DATABASE: ${MYSQL_DATABASE} | |
volumes: | |
- mysql:/var/lib/mysql | |
- ./mysql/:/docker-entrypoint-initdb.d | |
ports: | |
- "3306:3306" | |
grafana: | |
image: grafana/grafana-enterprise:7.1.5 | |
ports: | |
- "3000:3000" | |
networks: | |
- loki | |
volumes: | |
- ./setup/grafana/grafana-local.ini:/etc/grafana/grafana.ini | |
- ./production/provisioning:/etc/grafana/provisioning | |
- ./production/dashboards:/var/lib/grafana/dashboards | |
- ./production/license.jwt:/var/lib/grafana/license.jwt | |
- grafana-storage:/var/lib/grafana | |
- ./production/plugins:/var/lib/grafana/plugins | |
- ./production/ldap.toml:/var/lib/grafana/ldap.toml | |
environment: | |
- GF_AUTH_LDAP_ENABLED=${GF_AUTH_LDAP_ENABLED} | |
- GF_AUTH_LDAP_CONFIG_FILE=${GF_AUTH_LDAP_CONFIG_FILE} | |
- GF_ENTERPRISE_LICENSE_PATH=${GF_ENTERPRISE_LICENSE_PATH} | |
- GF_RENDERING_SERVER_URL=${GF_RENDERING_SERVER_URL} | |
- GF_RENDERING_CALLBACK_URL=${GF_RENDERING_CALLBACK_URL} | |
- GF_INSTALL_PLUGINS=${GF_INSTALL_PLUGINS} | |
- GF_LOG_FILTERS=${GF_LOG_FILTERS} | |
- GF_FEATURE_TOGGLES_ENABLE=${GF_FEATURE_TOGGLES_ENABLE} | |
renderer: | |
networks: | |
- loki | |
image: grafana/grafana-image-renderer:latest | |
ports: | |
- "8081:8081" | |
data_generator: | |
ports: | |
- "8080:8080" | |
build: ./data-generator | |
networks: | |
- loki | |
environment: | |
- LOKI_ENDPOINT=${LOKI_ENDPOINT} | |
# - LOG_EXTRA=LOGSTASH | |
- PROMETHEUS_ENDPOINT=${PROMETHEUS_ENDPOINT} | |
- GRAFANA_ENDPOINT=${GRAFANA_ENDPOINT} | |
- ROOT_URL=${ROOT_URL} | |
tns-db: | |
image: grafana/tns-db | |
command: | |
- '-log.level=debug' | |
ports: | |
- "8001:80" | |
networks: | |
- loki | |
environment: | |
- JAEGER_AGENT_HOST=jaeger | |
- JAEGER_TAGS="cluster=tns, namespace=tns, app=tns" | |
- JAEGER_SAMPLE_TYPE=const | |
- JAEGER_SAMPLE_PARAM=1 | |
ulimits: | |
memlock: -1 | |
tns-app: | |
image: grafana/tns-app | |
command: | |
- '-log.level=debug' | |
- 'http://tns-db' | |
logging: | |
driver: loki | |
options: | |
loki-url: "http://host.docker.internal:3100/loki/api/v1/push" | |
loki-external-labels: | |
container_name={{.Name}},job=tns-app | |
loki-pipeline-stages: | | |
- regex: | |
expression: 'status=(?P<status_code>\d{3})' | |
- labels: | |
status_code: | |
#links: | |
# - db | |
ports: | |
- "8002:80" | |
networks: | |
- loki | |
environment: | |
- JAEGER_AGENT_HOST=jaeger | |
- JAEGER_TAGS="cluster=tns, namespace=tns, app=db" | |
- JAEGER_SAMPLE_TYPE=const | |
- JAEGER_SAMPLE_PARAM=1 | |
ulimits: | |
memlock: -1 | |
tns-loadgen: | |
image: grafana/tns-loadgen | |
command: | |
- '-log.level=debug' | |
- 'http://tns-app' | |
#links: | |
# - app | |
ports: | |
- "8003:80" | |
networks: | |
- loki | |
environment: | |
- JAEGER_AGENT_HOST=jaeger | |
- JAEGER_TAGS="cluster=tns, namespace=tns, app=loadgen" | |
- JAEGER_SAMPLE_TYPE=const | |
- JAEGER_SAMPLE_PARAM=1 | |
ulimits: | |
memlock: -1 | |
elasticsearch: | |
image: elasticsearch:7.8.0 | |
ports: | |
- "9200:9200" | |
- "9300:9300" | |
volumes: | |
- type: bind | |
source: ./production/elk/elasticsearch/config/elasticsearch.yml | |
target: /usr/share/elasticsearch/config/elasticsearch.yml | |
read_only: true | |
- type: volume | |
source: elasticsearch | |
target: /usr/share/elasticsearch/data | |
environment: | |
ES_JAVA_OPTS: "-Xmx256m -Xms256m" | |
ELASTIC_PASSWORD: changeme | |
networks: | |
- loki | |
logstash: | |
image: docker.elastic.co/logstash/logstash:7.3.1 | |
ports: | |
- "5000:5000" | |
- "9600:9600" | |
volumes: | |
- type: bind | |
source: ./production/elk/logstash/config/logstash.yml | |
target: /usr/share/logstash/config/logstash.yml | |
read_only: true | |
- type: bind | |
source: ./production/elk/logstash/pipeline | |
target: /usr/share/logstash/pipeline | |
read_only: true | |
environment: | |
LS_JAVA_OPTS: "-Xmx256m -Xms256m" | |
networks: | |
- loki | |
kibana: | |
image: docker.elastic.co/kibana/kibana:7.3.1 | |
volumes: | |
- type: bind | |
source: ./production/elk/kibana/config/kibana.yml | |
target: /usr/share/kibana/config/kibana.yml | |
read_only: true | |
ports: | |
- "5601:5601" | |
networks: | |
- loki | |
filebeat: | |
image: docker.elastic.co/beats/filebeat:7.3.1 | |
# https://github.com/docker/swarmkit/issues/1951 | |
# Need to override user so we can access the log files, and docker.sock | |
user: root | |
networks: | |
- loki | |
volumes: | |
- type: bind | |
source: ./production/elk/filebeat/config/filebeat.yml | |
target: /usr/share/filebeat/filebeat.yml | |
read_only: true | |
- filebeat:/usr/share/filebeat/data | |
- /var/run/docker.sock:/var/run/docker.sock | |
# This is needed for filebeat to load container log path as specified in filebeat.yml | |
- /var/lib/docker/containers/:/var/lib/docker/containers/:ro | |
# # This is needed for filebeat to load jenkins build log path as specified in filebeat.yml | |
# - /var/lib/docker/volumes/jenkins_home/_data/jobs/:/var/lib/docker/volumes/jenkins_home/_data/jobs/:ro | |
# This is needed for filebeat to load logs for system and auth modules | |
- /var/log/:/var/log/:ro | |
# This is needed for filebeat to load logs for auditd module. you might have to install audit system | |
# on ubuntu first (sudo apt-get install -y auditd audispd-plugins) | |
- /var/log/audit/:/var/log/audit/:ro | |
environment: | |
- ELASTICSEARCH_HOST="http://elasticsearch:9200" | |
- KIBANA_HOST="http://kibana:5601" | |
- ELASTICSEARCH_USERNAME=elastic | |
- ELASTICSEARCH_PASSWORD=changeme | |
# disable strict permission checks | |
command: "filebeat -e -strict.perms=false" | |
volumes: | |
filebeat: | |
elasticsearch: | |
grafana-storage: | |
graphite-data: | |
splunk-etc: | |
splunk-var: | |
external: false | |
mysql: | |
external: false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment