Поиск по блогу

четверг, 23 июня 2022 г.

Настройка Google Cloud Ops Agent для Nextcloud

В процессе настройки отправки логов Nextcloud в Google Cloud Logging довелось поработать с Google Cloud Ops Agent. Это относительно новый агент, который отвечает и за логи и за метрики.

Nextcloud пишет структурированные логи в JSON формате так что возиться с регулярками не придется. Одна запись выглядит примерно так:

{
  "reqId": "fA6aIAL7fObKyDA2YeDq",
  "level": 2,
  "time": "2022-06-21T06:55:18+00:00",
  "remoteAddr": "",
  "user": "--",
  "app": "news",
  "method": "",
  "url": "--",
  "message": "https://[skipped]/data/rss read error : Server error: `GET https://[skipped]/data/rss` resulted in a `500 Internal Server Error` response:\n<html>\r\n<head><title>500 Internal Server Error</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>500 Internal Server E (truncated...)\n",
  "userAgent": "--",
  "version": "23.0.5.1"
}

Для начала нужно вытащить timestamp и severity. Timestamp буду брать из поля time, а severity из поля level, но для level потребуется преобразование из значения Nextcloud в значение Google LogEntry:

среда, 22 июня 2022 г.

Настройка Nextcloud для работы с Redis

В процессе настройки Nextcloud для работы с Redis на нескольких серверах столкнулся с тем, что в phpredis есть нюансы с поддержкой TLS для PHP сессий.

В phpredis есть два session handler'а:

  • session.save_handler = redis
  • session.save_handler = rediscluster
В phpredis 5.3.2 в реализацию PHP сессий для rediscluster добавили поддержку TLS, но в обычном redis ее по-прежнему нету.

Пришлось отключить TLS в сервере Redis чтобы не городить отдельное решение для PHP сессий. На всякий случай оставлю тут настройки:

config/config.php

'redis' =>
  array (
    'host' => 'redis.example.com',
    'port' => '6379',
    'password' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  ),
  'memcache.local' => '\\OC\\Memcache\\Redis',
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'filelocking.enabled' => 'true',

php.ini

redis.session.locking_enabled=1
redis.session.lock_retries=-1
redis.session.lock_wait_time=10000
session.save_handler = redis
session.save_path = "tcp://redis.example.com:6379?auth=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Документацию по настройке Redis для Nextcloud можно найти тут.

вторник, 7 июня 2022 г.

Terraform: could not connect to registry.terraform.io

С некоторых пор из-за санкций в Беларуси есть проблемы с доступом к зарубежным ресурсам и в частности с выкачиванием провайдеров Terraform:

$ terraform init

Initializing the backend...

Initializing provider plugins...
- Reusing previous version of hashicorp/google from the dependency lock file
╷
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider hashicorp/google: could not connect to registry.terraform.io: Failed to request discovery
│ document: 403 Forbidden
╵

Заход в документацию из браузера также блокируется

Самым простым решением будет использование VPN из другого региона, но если такой вариант по каким-либо причинам не подходит, но есть SSH доступ к внешнему хосту в "правильном" регионе, то выкрутиться можно так:

вторник, 29 марта 2022 г.

Midnight Commander 4.8.28

Собрал пакеты Midnight Commander 4.8.28 для Debian/Ubuntu с архитектурами i386, amd64, armel, armhf и arm64. Пакеты для i386 и armel есть только в тех дистрибутивах, где они поддерживаются официально (в свежих Ubuntu их нету).

Инструкция по подключению репозитария. Больше информации о бинарных сборках Midnight Commander можно найти на странице https://midnight-commander.org/wiki/Binaries.

воскресенье, 6 февраля 2022 г.

Тестирование лабораторного блока питания

В прошлом посте я описывал постройку линейного лабораторного блока питания. Сейчас я поделюсь результатами нагрузочного тестирования и доработками.

Сперва проверил точность отображения напряжения и тока - показания сравнивал с мультиметром Zoyi ZT102. Для напряжения результаты получились не очень, т.к. индикация начинается где-то от 350мВ (до 350мВ вольтметр блока питания показывает 0.00) и вначале показания занижаются где-то до 6В, а затем завышаются. С измерением тока картина лучше - показания завышаются от 5мА до 20мА в зависимости от тока.

понедельник, 10 января 2022 г.

Лабораторный блок питания

Завершил сборку нового лабораборного блока питания на 30В/3А. В отличии от моего предыдущего лабораторника, который работает в импульсном режиме и способен выдавать до 23В и 5А, новый работает в линейном режиме, расчитан на большее напряжение, не дает помех в нагрузку и хорошо ограничивает ток.

воскресенье, 29 августа 2021 г.

Проверка операционных усилителей

Сегодня дошли руки до распаковки набора для сборки лабораторного блока питания 0-30V, 0-3A который продается на каждом углу AliExpress. Операционные усилители, которые шли в наборе, не имеют никакой маркировки

Но если верить шелкографии на печатной плате, то это должны быть TL081. В комментариях к товару несколько человек писали о мертвых операционных усилителях поэтому я сразу заказал комплект на замену на всякий случай.

Перед тем как впаивать комплектующие стоит проверить их на работоспособность. Все кроме операционных усилителей можно проверить в тестере транзисторов, но операционные усилители нужно проверять отдельно.

В интернете нашлась несложная схема для проверки операционного усилителя (YouTube / KiCad)

Собрал ее на макетной плате

Если операционный усилитель исправен, то все четыре светодиода мигают попеременно парами. Это очень простой тест, но достаточный чтобы отличить мертвую деталь от рабочей. Для более подробного теста нужно хотя быть проверить напряжение смещения и скорость нарастания напряжения. На эту тему есть хорошее видео продолжительностью 50 минут, но на мой взгляд оно того стоит.

Все три "безымянных" операционных усилителя прошли тест, но я на всякий случай поставлю их в панельки, чтобы потом не мучиться с выпаиванием.