docker-compose.yaml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. version: "2.1"
  2. services:
  3. nginx-proxy:
  4. image: jwilder/nginx-proxy
  5. ports:
  6. - "80:80"
  7. volumes:
  8. - /var/run/docker.sock:/tmp/docker.sock:ro
  9. depends_on:
  10. db:
  11. condition: service_healthy
  12. logging:
  13. driver: "fluentd"
  14. options:
  15. tag: nginx
  16. db:
  17. image: mysql:5.6
  18. environment:
  19. MYSQL_ROOT_PASSWORD: rootpass
  20. MYSQL_DATABASE: grafana
  21. MYSQL_USER: grafana
  22. MYSQL_PASSWORD: password
  23. command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci, --innodb_monitor_enable=all, --max-connections=1001]
  24. ports:
  25. - 3306
  26. healthcheck:
  27. test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
  28. timeout: 10s
  29. retries: 10
  30. mysqld-exporter:
  31. image: prom/mysqld-exporter
  32. environment:
  33. - DATA_SOURCE_NAME=root:rootpass@(db:3306)/
  34. ports:
  35. - 9104
  36. depends_on:
  37. db:
  38. condition: service_healthy
  39. # db:
  40. # image: postgres:9.3
  41. # environment:
  42. # POSTGRES_DATABASE: grafana
  43. # POSTGRES_USER: grafana
  44. # POSTGRES_PASSWORD: password
  45. # ports:
  46. # - 5432
  47. # healthcheck:
  48. # test: ["CMD-SHELL", "pg_isready -d grafana -U grafana"]
  49. # timeout: 10s
  50. # retries: 10
  51. grafana:
  52. image: grafana/grafana:dev
  53. volumes:
  54. - ./grafana/provisioning/:/etc/grafana/provisioning/
  55. environment:
  56. - VIRTUAL_HOST=grafana.loc
  57. - GF_SERVER_ROOT_URL=http://grafana.loc
  58. - GF_DATABASE_NAME=grafana
  59. - GF_DATABASE_USER=grafana
  60. - GF_DATABASE_PASSWORD=password
  61. - GF_DATABASE_TYPE=mysql
  62. - GF_DATABASE_HOST=db:3306
  63. - GF_DATABASE_MAX_OPEN_CONN=300
  64. - GF_SESSION_PROVIDER=mysql
  65. - GF_SESSION_PROVIDER_CONFIG=grafana:password@tcp(db:3306)/grafana?allowNativePasswords=true
  66. # - GF_DATABASE_TYPE=postgres
  67. # - GF_DATABASE_HOST=db:5432
  68. # - GF_DATABASE_SSL_MODE=disable
  69. # - GF_SESSION_PROVIDER=postgres
  70. # - GF_SESSION_PROVIDER_CONFIG=user=grafana password=password host=db port=5432 dbname=grafana sslmode=disable
  71. - GF_SERVER_ROUTER_LOGGING=true
  72. - GF_LOG_CONSOLE_FORMAT=json
  73. - GF_LOG_FILTERS=alerting.notifier:debug,alerting.notifier.slack:debug,auth:debug
  74. - GF_AUTH_TOKEN_ROTATION_INTERVAL_MINUTES=2
  75. ports:
  76. - 3000
  77. depends_on:
  78. db:
  79. condition: service_healthy
  80. logging:
  81. driver: "fluentd"
  82. options:
  83. tag: grafana
  84. prometheus:
  85. image: prom/prometheus:v2.4.2
  86. volumes:
  87. - ./prometheus/:/etc/prometheus/
  88. environment:
  89. - VIRTUAL_HOST=prometheus.loc
  90. ports:
  91. - 9090
  92. loki:
  93. image: grafana/loki:master
  94. environment:
  95. - VIRTUAL_HOST=loki.loc
  96. ports:
  97. - 3100
  98. command: -config.file=/etc/loki/local-config.yaml
  99. fluentd:
  100. image: grafana/fluent-plugin-loki:master
  101. volumes:
  102. - ./fluentd/fluentd.conf:/fluentd/etc/fluentd.conf
  103. links:
  104. - loki
  105. ports:
  106. - "24224:24224"
  107. - "24224:24224/udp"