Public:Docker-and-ELK — различия между версиями
Vabidash (обсуждение | вклад) |
Vabidash (обсуждение | вклад) |
||
Строка 73: | Строка 73: | ||
/var/data/docker/ELK-conf/ELK/es1/elastisearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ | /var/data/docker/ELK-conf/ELK/es1/elastisearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ | ||
--network=elknet --ip=172.27.0.2 --restart=always docker.elastic.co/elasticsearch/elasticsearch:7.0.1 | --network=elknet --ip=172.27.0.2 --restart=always docker.elastic.co/elasticsearch/elasticsearch:7.0.1 | ||
− | Как можно увидеть, в контейнер монтируется директория для данных .../ES1(на хосте):/ES1(в контейнере) и файл конфигурации elastisearch.yml аналогично. | + | Как можно увидеть, в контейнер монтируется директория для данных .../ES1(на хосте):/ES1(в контейнере) и файл конфигурации elastisearch.yml аналогично.<br>Содержание файла можно менять при надобности и сделать рестарт контейнера командой "docker restart ES1".<br>В этом случае подтянется новая версия файла. Контейнер создан с флагом "--restart=always", что означает контейнер всегда будет пытаться запуститься,<br>если не остановить его командой docker stop ES1. |
Версия 15:10, 17 мая 2019
На машине vm3 существует виртуальная машина №148(kibana).
- OS Debian 9
- IP 172.16.199.254/17
- Поднята система контейнеризации приложений Docker.
Для работы с docker лучше всего добавить Вашего пользователя в группу docker, тогда не нужно будет при каждой команде docker делать sudo.
В репозиторий Docker загружены образы контейнеров приложений Elasticsearch, Kibana, Logstash, составляющие системы Elastic Stack.
Просмотреть загруженные образы можно командой docker images.
На данный момент вывод такой:
root@ELK:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.elastic.co/logstash/logstash 7.0.1 55b534744e48 2 weeks ago 820MB docker.elastic.co/kibana/kibana 7.0.1 2c25d2be5a7f 2 weeks ago 712MB docker.elastic.co/elasticsearch/elasticsearch 7.0.1 eb1e40835f76 2 weeks ago 862MB ubuntu latest d131e0fa2585 2 weeks ago 102MB
Командой docker ps можно увидеть работающие контейнеры:
root@ELK:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e6b4a7f45a8 docker.elastic.co/logstash/logstash:7.0.1 "/usr/local/bin/dock…" About an hour ago Up About an hour Logstash 012e4382b50e docker.elastic.co/kibana/kibana:7.0.1 "/usr/local/bin/kiba…" 2 days ago Up 2 days 0.0.0.0:5601->5601/tcp Kibana c39008b30fde docker.elastic.co/elasticsearch/elasticsearch:7.0.1 "/usr/local/bin/dock…" 2 days ago Up 2 days 9200/tcp, 9300/tcp ES1
Виртуальная машина включена в несколько сетей:
- IP 172.16.199.254/17 - Vlan 1 - физическая сеть интерфейс ens18: mac:...6f:75;
- IP 172.17.0.1/16 - создается самим Docker при установке удалить/изменить нельзя.
Стандартная виртуальная сеть Docker включенная в бридж интерфейс docker0, который так же создается системой.
В нее попадают контейнеры для которых ip не заданы руками при старте, присваивать вручную ip адреса контейнерам в этой сети также нельзя.
Адреса выдаются по порядку начиная с 172.17.0.2 - кто-что словил из запускающихся контейнеров - то и будет.
Подключенные к сети контейнеры можно посмотреть командой docker network inspect bridge. - IP 172.27.0.1/24 - созданная вручную виртуальная сеть Docker для возможности создавать контейнеры с заданными ip адресами.
Сеть включена в созданный бридж интерфейс elk-bridge0, создаётся при создании сети.
Подключенные к сети контейнеры можно посмотреть командой docker network inspect elknet.
Создана сеть командой:
docker network create --driver=bridge --subnet=172.27.0.0/24 \ --gateway=172.27.0.1 --opt com.docker.network.bridge.name=elk-bridge0 \ --opt com.docker.network.bridge.enable_ip_masquerade=true \ --opt com.docker.network.driver.mtu=1500 \ --opt com.docker.network.bridge.enable_icc=true \ --opt com.docker.network.bridge.host_binding_ipv4=0.0.0.0 \ --ipam-opt null elknet
У виртуальной машины два виртуальных диска: scsi0 (15G) "система"; scsi1 (100G) "данные" смонтирован последний соответственно: "/dev/mapper/ELK--vg-data on /var/data".
Disk /dev/sda: 15 GiB, 16106127360 bytes, 31457280 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xeb4f87b3
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 499711 497664 243M 83 Linux /dev/sda2 501758 29296875 28795118 13,7G 5 Extended /dev/sda3 499712 501757 2046 1023K 83 Linux /dev/sda5 501760 29296875 28795116 13,7G 8e Linux LVM
Partition table entries are not in disk order.
Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/ELK--vg-root: 9,8 GiB, 10544480256 bytes, 20594688 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/ELK--vg-swap_1: 4 GiB, 4294967296 bytes, 8388608 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/ELK--vg-data: 99,9 GiB, 107269324800 bytes, 209510400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
В "/var/data" созданы две директории ELK и docker.
- Директория ELK предназначена для хранения данных и логов приложений Elastic Stack в соответствующих поддиректориях,
которые монтируются в контейнеры соответствующими командами при создании нового контейнера. - Директория docker предназначена для создания, хранения и монтирования в контейнеры конфигурационных файлов,
использующихся приложениями Elasticsearch, Logstash, Kibana.
Контейнер ES1 - представляет собой запущенную службу Elasticsearch, которой,
при создании контейнера из образа в локальном репозитории docker, подмонтировали конфигурационные файлы,
а также директории, куда служба будет писать данные и логи. Контейнер создан командой:
docker run -t -d -h es1 -v /var/data/ELK/ES1/:/ES1 -v \ /var/data/docker/ELK-conf/ELK/es1/elastisearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ --network=elknet --ip=172.27.0.2 --restart=always docker.elastic.co/elasticsearch/elasticsearch:7.0.1
Как можно увидеть, в контейнер монтируется директория для данных .../ES1(на хосте):/ES1(в контейнере) и файл конфигурации elastisearch.yml аналогично.
Содержание файла можно менять при надобности и сделать рестарт контейнера командой "docker restart ES1".
В этом случае подтянется новая версия файла. Контейнер создан с флагом "--restart=always", что означает контейнер всегда будет пытаться запуститься,
если не остановить его командой docker stop ES1.