Данный сервис реализует сбор и накопление логов приложений, а также метрик систем, на базе стека ELK (Elastic Kibana Logstash).
graph RL;
subgraph monitoring[Мониторинг];
subgraph serverElk[Сервер ELK];
logstash([Logstash: GROK, ...]) -->|9200| elastic;
elastic[(ElasticSearch)] <-->|9200| kibana
end
agent1(Агент 1: metricbeat, filebeart, ...) -->|5044| logstash;
agent2(Агент 2: metricbeat) -->|5044| logstash;
agentN(Агент N) -->|9200| elastic;
agentN(Агент N: *beat) -->|5044| logstash;
style monitoring fill:#ffffff
end
subgraph serverInf[Инфраструктура];
nginx -->|5601| kibana([Kibana])
style serverInf fill:#ffffff
end
Директории:
- В директории server находятся сервисы образующие ELK
- В директории agents находятся агенты Beat
- В директории agent-templates находятся шаблонные настройки агентов, например, metricbeat которые не изменяются от сервера к серверу
- Установить зависимости:
- Docker-ce v18.09+
- Docker-compose v1.23+
- Git
- Make
- Авторизуйте машину в gitlab registry
$ docker login ci.registry- Выполните команды в рабочей директории
$ sudo make permission
$ make install
$ sudo make hosts- После выполнения команд по указанным адресам будут доступны следующие сервисы:
| Хост | Система | Логин | Пароль |
|---|---|---|---|
| monitoring.kibana:1160 | Kibana | elastic | elastic |
| monitoring.elasticsearch:1160 | Elasticsearch | elastic | elastic |
| monitoring.logstash:1160 | Logstash | elastic | elastic |
-
Необходимо произвести настройку деплоя сервера (docker/server/deploy/master/.env). Внести изменения в настройки запуска сервера (docker/server/deploy/master/docker-compose.yml)
-
Произвести настройку агентов в папке agents.
- создать новую папку в которой необходимо разместить docker-compose.yml (настройки запуска)
- имя папки - это названия агента, по которому в дальнейшем можно производить действия
-
Произвести настройки в файле .gitlab-ci.yml.example, переименовав его в .gitlab-ci.yml. API запуска сервера и агентов описан в Makefile.
-
Внести изменения в настройки docker (docker/docker.env)
-
Опционально, внести изменения в настройки агентов (docker/agents/agents.env)
-
Опционально, внести изменения в настройки сервера ELK (docker/server/build/*)