Дипломная работа: Автоматизация доставки программного обеспечения при помощи DevOps практик и инструментов в облаке AWS в компании ООО "Команда Лабс"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
146
owner: logstash
group: logstash
mode: 0775
- name: Create Curator configuration files.
template:
src: "{{ item }}.j2"
dest: "/etc/curator/{{ item }}"
owner: logstash
group: logstash
mode: 0644
with_items:
- curator_cluster_config.yml
- delete30DaysOldDebugIndices.yml
- delete180DaysOldInfoIndices.yml
ignore_errors: yes
Настройки Curator
---
# Remember, leave a key empty if there is no value. None will be a string,
# not a Python "NoneType"
client:
hosts:
- {{ logstash.output_hosts }}
port: 443
url_prefix:
use_ssl: False
certificate:
client_cert:
client_key:
aws_key: "{{ logstash.elastic_key_id | default(logstash.aws_access_key_id) }}"
aws_secret_key: "{{ logstash.elastic_secret_access_key |
default(logstash.aws_secret_access_key) }}"
aws_region: {{ logstash.region }}
ssl_no_validate: False
http_auth:
timeout: 30
master_only: False
logging:
loglevel: INFO
logfile:
logformat: default
blacklist: ['elasticsearch', 'urllib3']
Удаление индексов старше 180 дней
actions:
1:
action: delete_indices
description: >-
"Delete info indices older than 180 days (based on index name), for (logstash-info)."
options:
timeout_override: 300
147
continue_if_exception: True
ignore_empty_list: True
disable_action: False
filters:
- filtertype: pattern
kind: regex
value: '^(logstash-info|cwl-).*$'
exclude:
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: {{ logstash.unit_count_info }}
Запуск системы мониторинга с помощью Docker Compose
version: '3.7'
volumes:
prometheus_data: {}
grafana_data: {}
networks:
monitor-net:
driver: overlay
name: inbound
traefik:
driver: overlay
name: traefik
services:
traefik:
image: traefik:v1.7.12-alpine
command:
- "--logLevel=DEBUG"
- "--api"
- "--metrics"
- "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0"
- "--docker"
- "--docker.swarmMode"
- "--docker.domain=docker.localhost"
- "--docker.watch"
networks:
- traefik
- monitor-net
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./hapicloud_cert/:/etc/certs/
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
- target: 8080
published: 8080
protocol: tcp
mode: ingress
deploy:
148
mode: global
placement:
constraints:
- node.role == manager
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
prometheus:
image: prom/prometheus
volumes:
- ./prometheus/:/etc/prometheus/
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
networks:
- monitor-net
deploy:
placement:
constraints:
- node.role==manager
labels:
- "traefik.frontend.rule=Host:prometheus.hapicloud.io"
- "traefik.backend=prometheus"
- "traefik.port=9090"
- "traefik.docker.network=traefik"
restart_policy:
condition: on-failure
node-exporter:
image: prom/node-exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- --collector.filesystem.ignored-mount-points
-
"^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker
/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
ports:
- 9100:9100
networks:
- monitor-net
deploy:
mode: global
restart_policy:
condition: on-failure
alertmanager:
image: prom/alertmanager
ports:
- 9093:9093
volumes:
- "./alertmanager/:/etc/alertmanager/"
networks:
- monitor-net
149
command:
- '--config.file=/etc/alertmanager/config.yml'
- '--storage.path=/alertmanager'
deploy:
placement:
constraints:
- node.role==manager
labels:
- "traefik.frontend.rule=Host:alertmanager.hapicloud.io"
- "traefik.backend=alertmanager"
- "traefik.port=9093"
- "traefik.docker.network=traefik"
restart_policy:
condition: on-failure
cadvisor:
image: google/cadvisor
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ports:
- 8088:8088
networks:
- monitor-net
deploy:
mode: global
restart_policy:
condition: on-failure
labels:
- "traefik.frontend.rule=Host:cadvisor.hapicloud.io"
- "traefik.backend=cadvisor"
- "traefik.port=8088"
- "traefik.docker.network=traefik"
grafana:
image: grafana/grafana
logging:
driver: journald
options:
tag: grafana
depends_on:
- prometheus
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/provisioning/:/etc/grafana/provisioning/
- ./grafana/notifiers:/etc/grafana/provisioning/notifiers/
env_file:
- ./grafana/config.monitoring
networks:
- monitor-net
user: "104"
deploy:
placement:
constraints:
- node.role==manager
labels:
- "traefik.frontend.rule=Host:grafana.hapicloud.io"
- "traefik.backend=grafana"
- "traefik.port=3000"
- "traefik.docker.network=traefik"
restart_policy:
condition: on-failure
~
Источник: https://baza.diplomsite.ru/previewfile/1758