Свежие записи

Kubernetes, доступ по сертификату пользователя

В принципе - это шпаргалка, что бы не забыть как все на самом деле происходит :)

Создание SSL ключа и сертификата пользователя

Создаём временную директорию:

# mkdir tmp
# cd tmp

Генерируем SSL ключ пользователя:

# openssl genrsa -out artur.key 4096

Создаём конфигурационный файл для openssl - csr.cnf следующего содержания:

[ req ]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[ dn ]
CN = artur
O = dev

[ v3_ext ]
authorityKeyIdentifier=keyid,issuer:always
basicConstraints=CA:FALSE
keyUsage=keyEncipherment,dataEncipherment
extendedKeyUsage=serverAuth,clientAuth

Генерируем запрос на сертификат:

Читать далее →

Чудеса случаются.

“Налетай, торопись, покупай живопись!”

New Always Free Services

https://www.oracle.com/cloud/free/#always-free

Oracle + халява - два несовместимых слова. Однако… мне кажется, что Оракл достаточно поздно включился в гонку облачных сервисов. Поэтому им приходится наступать на горло своей патологической жадности, что бы привлекать новых клиентов.

Читать далее →

Fluent-bit и PodSecurityPolicy

Жили мы жили. И вроде не плохо. Но на тесте решили поставить Kubernetes при помощи kubespray v2.11.

Накатили в новый кластер fluent-bit, с отлаженным ранее деплоем. И… обломс.

Ругается при деплое DaemonSet на:

securityContext:
          privileged: true
volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true

В итоге оказалось, что в новом облачке включена PodSecurityPolicy. И поскольку наш DaemonSet не использует (подключен) к существующим политикам случился облом.

Читать далее →

Самая деревянная служба поддержки

Я видел и общался с различными службами поддержки. И могу с уверенностью сказать, что служба поддержки mos.ru - самая идиотская. Я имею в виду не только качество ответов, а в первую очередь техническую сторону организации “общения” с клиентом.

В ответ на их ответ можно послать только одно письмо. На второе письмо, в котором находятся, например уточняющие данные, приходится открывать новый запрос. Переписка превращается в несвязанное общение с несколькими операторами службы поддержки. Которые и так не “горят” желанием решить твою проблему, так еще и не удосуживаются почитать предыдущие запросы.

Читать далее →

Записки Линуксоида

Как удалить report в kibana

Сформированные по вашему запросу или автоматически отчёты, как и многое другое, хранятся непосредственно в индексах elasticsearch.

Удалить конкретный report из индекса нельзя. Несмотря на запросы от пользователей, разработчики эластика отказываются предоставить такой инструмент и предлагают удалять индекс целиком.

Индексы с отчетами начинаются с .reporting и удаляются либо в kibana в разделе Index Management либо при помощи утилиты curator.

image

Пример action удаления индекса для curator:

actions:
  1:
    action: delete_indices
    options:
      ignore_empty_list: True
      disable_action: True
    filters:
    - filtertype: pattern
      kind: prefix
      value: .reporting-
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 30

Читать далее →

Записки Линуксоида

Elasticsearch переполнение файловой системы

После переполнения файловой системы, elastic автоматически переводит индекс в режим read only.

После увеличения свободного пространства на диске отключить это режим для конкретного индекса можно при помощи следующей команды:

PUT app-index-2019.08.12/_settings
{
  "index": {
    "blocks": {
      "read_only_allow_delete": "false"
    }
  }
}

Если в режим только для чтения переведены и системные индексы, например .kibana. Тогда команда будет выглядеть так:

PUT _settings
{
  "index": {
    "blocks": {
      "read_only_allow_delete": "false"
    }
  }
}

Эти команды можно ввести в Kibana в разделе Dev Tools

Читать далее →

Fluent Bit - особенности использования multiline в плагине tail

Input plugin tail имеет возможность обрабатывать многострочные лог файлы. Достаточно создать PARSER, при помощи которого можно определить первую строку такого сообщения. Все вроде бы работает, но мне захотелось не просто разобрать сообщение по тегам, но и в отдельном теге сохранить всё исходное сообщение.

По идее регулярное выражение, используемое в парсере для лога openfire

2018.04.16 10:48:15 ERROR [pool-2-thread-171]: org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager - Error processing file transfer proxy connection
java.io.IOException: Only SOCKS5 supported
        at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.processConnection(ProxyConnectionManager.java:156) ~[xmppserver-4.3.2.jar:4.3.2]
        at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.access$200(ProxyConnectionManager.java:53) ~[xmppserver-4.3.2.jar:4.3.2]
        at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$1$1.run(ProxyConnectionManager.java:125) [xmppserver-4.3.2.jar:4.3.2]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_202]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_202]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_202]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_202]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]

должно выглядеть как то так:

Читать далее →

Не ожидал я такой засады от Java

Я, не то чтобы часто, но как минимум раз в полгода пишу всякие утилитки и приложения на java. В основном клиенты к BD на десктоп. В качестве основного инструмента пользуюсь JavaFX.

И вот, поменял себе железо, начал ставить софт, в том числе и IDE для разработки. Ну и заодно решил попробовать 11-ю (да и 12-ю) версию SDK. Открываю старый проект, дописать пару фишек. А он не работает. IDE подчеркивает красным все что связано с JavaFX.

Читать далее →

Fluent bit, timestamps и timezone - баги, они есть везде.

Fluent bit очень легкий агент по сбору логов и прочей информации для Ealstic Stack. Но, как и у всех программ, у него встречаются баги.

Например, существует проблема по формированию @timestamp различными input плагинами. Плагины tail и syslog считают, что текущее время компьютера находится во временной зоне UTC и добавляют к нему разницу между UTC и текущей тайм зоной. Это происходит даже в том случае, если текущее время системы сконфигурировано с учетом вашей временной зоны. А, например, плагин exec правильно читает текущее время системы.

Читать далее →

Kibana и Apache

Kibana конечно сама хорошо работает с клиентами. Но лучше спрятать её за нормальным http сервером. Там где мне пришлось развертывать ELK пользуются только Apache, поэтому в качеcтве примера используется данный web сервер.

Сначала в конфигурационном файле kibana.yml определим два параметра:

server.basePath: "/kibana"
server.rewriteBasePath: true

Поскольку Apache выступает фронтендом для разных приложений, доступ к Kibana сделаем через путь http://any.body.com/kibana. В конфиге Apache определим Location.

<Location /kibana>
  ProxyPreserveHost On
  ProxyPass  http://any.ip.com:5601/kibana
  ProxyPassReverse  http://any.ip.com:5601/kibana
</Location>

Собственно, все. Дальше можно включать необходимые вам плюшки web сервера.

Читать далее →