Skip to content

Instantly share code, notes, and snippets.

install

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

#ШПАРГАЛКА ПО КОМАНДАМ DOCKERFILE

  • FROM <имя-образа> — какой образ использовать в качестве базы (должна быть первой строкой в любом Dockerfile).
  • MAINTAINER <имя> — имя мейнтейнера данного Dockerfile.
  • RUN <команда> — запустить указанную команду внутри контейнера.
  • CMD <команда> — выполнить команду при запуске контейнера (обычно идет последней).
  • EXPOSE <порт> — список портов, которые будет слушать контейнер (используется механизмом линковки).
  • ENV <ключ> <значение> — создать переменную окружения.
  • ADD <путь> <путь> — скопировать файл/каталог внутрь контейнера/образа (первый аргумент может быть URL).
  • ENTRYPOINT <команда> — команда для запуска приложения в контейнере (по умолчанию /bin/sh -c).
  • VOLUME <путь> — пробросить в контейнер указанный каталог (аналог опции -v).

полчаем инфу о докер-контейнерах

	$ docker ps -a

заходим в контейнер

	$ sudo docker exec -i -t <container_name> /bin/bash #команда захода в контейнер

устанавливаем nano

flume from kafka to elasticsearch config

flume config

# Name the components on this agent
a1.sources = kafka-source-1
a1.sinks = k1
a1.channels = c1

# Use a channel which buffers events in memory
a1.channels.c1.type=memory

для мастер-машины

(на которую будут приходить логи с нод-машин)

перед этим устанавливаем elasticsearch and kibana

https://gist.github.com/elvisgiv/cf83570c79da80bec326d2bdd454980d

https://gist.github.com/elvisgiv/e32d1c043df4e38594c6bbd10044548d

Установка Fluentd

(from: http://itc-life.ru/fluentd-bystryj-poisk-logov-s-elasticsearch-kibana-and-fluentd) (from: http://www.fluentd.org/guides/recipes/elasticsearch-and-s3)

install elasticsearch

http://itc-life.ru/fluentd-bystryj-poisk-logov-s-elasticsearch-kibana-and-fluentd/

$ `sudo wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.3.1/elasticsearch-2.3.1.deb`
$ `sudo dpkg -i elasticsearch-2.3.1.deb`

После установки добавляем в автозапуск

$ `sudo update-rc.d elasticsearch defaults 95 10`
$ `sudo /bin/systemctl daemon-reload`

Elasticsearch range by date

Для того, чтобы модель сортировалась в пределах определенного временного отрезка, мы должны передать в ES строку такого вида "2015-01-01T12:10:30Z"

example

module ElasticsearchSearchable
  extend ActiveSupport::Concern
  
  included do
    ...

Elasticsearch sort by id

По умолчанию elascticsearch (ES) НЕ индексирует (отдельно) и НЕ сортирует записи по полю _id. Значения для _id вытаскиваются из поля _uid

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-id-field.html

Вместо этого он индексирует поле _uid, которое и содержит в себе информацию об _id и _type в виде {type}#{id}

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-uid-field.html

Сортировка же по полю _uid является некорректной в виду того, что _id в нем является не integer, а string объектом.