15 KiB
AWatch-rus: Отчет по изменениям за последние 24 часа
Дата фиксации: 2026-05-26 07:55 MSK
Источники
tmuxsessioncodex, scrollback выгружен в/tmp/codex-tmux-last24.txt- текущий worktree
git statusв<PROJECT_ROOT> - live-проверки на:
<GATEWAY_HOST>Proxmox<GRAFANA_HOST>Grafana<AUX_SERVICE_HOST>Loki/Alloy<AW_SERVER_HOST>aw-server<FIREWALL_HOST>pfSense<WINDOWS_HOST>Windows RDP host
Важная оговорка
git log --since='24 hours ago' пустой: за последние сутки изменения не были оформлены git-коммитами.
Рабочее дерево уже грязное и содержит больше изменений, чем было сделано в этом 24-часовом окне. Поэтому ниже зафиксированы только те изменения, которые явно подтверждаются tmux-историей и live-проверками.
Что было сделано
1. Восстановление ActivityWatch-Russian
Симптом:
- на
<AW_SERVER_HOST>:5600UI не обновлялся дляHOST-EXAMPLE; aw-serverбыл жив, но stale былиaw-watcher-afk,aw-watcher-window,aw-worktime-sessions.
Действия:
- проверен
aw-serverи свежесть bucket’ов; - через WinRM на
<WINDOWS_HOST>проверены процессы, tasks и recovery-скрипты; - запущены:
ActivityWatch RecoveryActivityWatch Launch [HOST-EXAMPLE_user5]
- отдельно перезапущен зависший
worktime-session-collector.
Итог:
aw-watcher-afk,aw-watcher-window,aw-session-events,aw-dlp-endpoint-signals,aw-worktime-sessionsснова стали fresh;- итоговая серверная сводка:
FRESH=8 STALE=0 DEAD=0.
2. Дополнена авто-сигнализация и самолечение tsj-guardian-bot
Проблема:
- фоновый цикл бота не видел stale AW collector bucket’ы;
- manual AW-check был отдельным путем и не участвовал в обычном incident/heal flow.
Сделано:
- в
tsj_guardian_bot.pyдобавлен разбор[FAIL] aw-rus:*; - AW collector freshness включен в стандартный background check cycle;
- добавлен Windows recovery path для:
watcher-*worktime-session-collector
- добавен server-side rebuild worktime views после Windows remediation;
- тесты обновлены и прогнаны.
Затронутые файлы:
- [proxmox/tsj_guardian_bot.py](<PROJECT_ROOT>/proxmox/tsj_guardian_bot.py)
- [proxmox/test_tsj_guardian_bot.py](<PROJECT_ROOT>/proxmox/test_tsj_guardian_bot.py)
- [ansible/deploy_tsj_guardian_bot_proxmox.yml](<PROJECT_ROOT>/ansible/deploy_tsj_guardian_bot_proxmox.yml)
- [ansible/group_vars/proxmox-bot.example.yml](<PROJECT_ROOT>/ansible/group_vars/proxmox-bot.example.yml)
Проверка:
python3 -m py_compile proxmox/tsj_guardian_bot.py proxmox/test_tsj_guardian_bot.pypython3 -m unittest proxmox.test_tsj_guardian_bottsj-guardian-bot.serviceперезапускался и работал вactive.
3. Бот переведен на igor вместо codex
Проблема:
- production bot был завязан на
AI_EXEC_USER=codex,TMUX_USER=codexи read-only пути под/home/codex/infra-admin; - это ломало встроенный
codex-clisupport path после перехода наigor.
Сделано:
- переключены:
AI_EXEC_USER=igorTMUX_USER=igorAI_CHAT_WORKDIR=<OPERATOR_HOME>
- добавлены настраиваемые:
PFSENSE_ENV_PATHPFSENSE_INVENTORY_PATH
- создан
igor-readable bundle:<OPERATOR_HOME>/.config/tsj-bot/pfsense.env.readonly<OPERATOR_HOME>/.config/tsj-bot/inventory.md
Итог:
- диалоговая техподдержка и AI-эскалация в боте работают от
igor; - bot-side pfSense/inventory контекст больше не зависит от старого
codex-домика.
4. Исправлен сетевой доступ <GATEWAY_HOST> -> <WINDOWS_HOST>
Root cause:
- на
pfSense <FIREWALL_HOST>, интерфейсopt1/MGMT:- allow rule для
<GATEWAY_HOST> -> <WINDOWS_HOST>:22был нижеblock all; - allow rule для
<GATEWAY_HOST> -> <FIREWALL_HOST>:2022был нижеblock all; - rule для
<GATEWAY_HOST> -> <WINDOWS_HOST>:5985отсутствовал.
- allow rule для
Сделано:
- подняты нужные allow rules выше
block all; - добавлено недостающее правило на
5985.
Итог:
- с
<GATEWAY_HOST>подтвержден доступ на:<FIREWALL_HOST>:2022<WINDOWS_HOST>:22<WINDOWS_HOST>:5985
- SSH вход на
<WINDOWS_HOST>подАдминистраторбыл подтвержден.
5. Убрано ложное сообщение “автолечение невозможно”
Причина:
- в production
.envбота была повреждена строкаAW_RUS_WORKTIME_HEAL_CMD; - бот слишком жестко реагировал на единичный таймаут worktime CSV.
Сделано:
- восстановлен
AW_RUS_WORKTIME_HEAL_CMD; - добавлен retry для получения worktime CSV;
- обновлены дефолты под
igor.
Итог:
pending_incident = null;- циклы снова идут как
Check OK.
6. Наведен порядок в Grafana folder/dashboard catalog
Изменения:
- folder
AWatch-rusпереименован вDLP; pfSense System Dashboardперенесен в folderpfSense;LXC Containers Monitoringперенесен в folderLXC;Proxmox Influx 2.0 Dashboardперенесен в folderLXC.
7. Починен pfSense Logs Dashboard All Logs
Проблема была не в Grafana, а в цепочке pfSense -> Alloy -> Loki.
Сделано:
- на
<FIREWALL_HOST>поднятsyslogd; - на
<AUX_SERVICE_HOST>в Alloy для pfSense syslog включен правильный форматrfc3164; - отключен stale docker self-scrape path, забивавший
loki.writeстарыми batch’ами; - перезапущен
alloy.
Итог:
- появились живые
job="pfsense"streams в Loki; - дашборд
pfSense Logs Dashboard All Logsперестал быть пустым.
8. Починен 1C File - Operations Health
Проблема:
- не обновлялись данные в
1C File - Operations Health.
Сделано на <WINDOWS_HOST>:
- exporter больше не падает на недоступных
ibases.v8i; export-upload-file-1c-telemetry.ps1научен братьremoteKeyPathизdeployment-config.json;- рабочий ключ закреплен как
C:\Users\USER1\.ssh\awops_ed25519; - исправлены права к
file1c-telemetry-state.json.
Сделано на <GATEWAY_HOST>:
- прогнан ingest;
proofcheckвыведен в green.
Затронутые файлы:
- [windows/export-upload-file-1c-telemetry.ps1](<PROJECT_ROOT>/windows/export-upload-file-1c-telemetry.ps1)
- [ansible/deploy_file_1c_windows_telemetry.yml](<PROJECT_ROOT>/ansible/deploy_file_1c_windows_telemetry.yml)
Итог:
1C File - Operations Healthснова обновляется;- свежесть downstream была подтверждена через ingest и proofcheck.
9. Рабочие ключи выданы всем пользователям Windows-хоста
Сделано:
- ключ
awops_ed25519разложен по локальным профилям:USER1USER2USER3USER4USER5Администратор
remoteKeyPathперестал быть жестко привязан только кUSER1;- права на
file1c-telemetry-state.jsonвыданы рабочим пользователям.
Итог:
- схема больше не зависит от одного профиля;
- scheduled upload path продолжает работать.
10. Поднят management board по файловой 1С
Сделано:
- добавлен новый Grafana dashboard
1C File - Management Board; - обновлены manager brief links и gateway route.
Live-итог:
uid=1c-file-mgmtgo/grafana-1cредиректит на новый board
11. Поднят первый financial board по файловой 1С
Сделано:
- добавлен SQL слой:
- [clickhouse-1c/clickhouse/init/05_financial_reporting.sql](<PROJECT_ROOT>/clickhouse-1c/clickhouse/init/05_financial_reporting.sql)
- добавлен dashboard:
- [clickhouse-1c/grafana/provisioning/dashboards/files/1c-financial-reporting.json](<PROJECT_ROOT>/clickhouse-1c/grafana/provisioning/dashboards/files/1c-financial-reporting.json)
- обновлен gateway route:
go/file1c-finance
Итог:
- financial screen работает как честный transitional layer;
- live readiness была
proxy_only; postings_table_rows = 0, то есть настоящие проводки еще не поступают.
12. Проведено расследование production-source для postings
Что подтверждено на <WINDOWS_HOST>:
- готового
toolkit/REST/service под postings нет; - порт
6003и типовые service-порты не слушаются; - текущий Windows upload path шлет только telemetry/snapshot, без
postings.
Что проверено:
- наличие
1C 8.3.27иcomcntr.dll; - COMConnector в user-token path;
- интерактивные scheduled tasks под
USER1; - явные 1С-креды:
Администратор / <WINDOWS_PASSWORD>user / <WINDOWS_PASSWORD>user1 / <WINDOWS_PASSWORD>
Итог:
- blocker остался прежним: нужен реальный пользователь 1С с read-only доступом;
- без него production extractor проводок не собрать.
13. Поднят отдельный 1C File - Telemetry Board
Сделано:
- добавлен новый dashboard:
- [clickhouse-1c/grafana/provisioning/dashboards/files/1c-telemetry-board.json](<PROJECT_ROOT>/clickhouse-1c/grafana/provisioning/dashboards/files/1c-telemetry-board.json)
- добавлена ссылка на него из
1C File - Management Board; - добавлен gateway route:
go/file1c-telemetry
Live-итог:
- в Grafana зарегистрирован
uid=1c-file-telemetry; - все 1C dashboards лежат в folder
1C File Analytics; https://<GATEWAY_HOST>/go/file1c-telemetryредиректит на новый board.
14. Live-путь 1C File Analytics в Grafana был приведен к устойчивому состоянию
Выяснилось:
- file-based provisioning на
<GRAFANA_HOST>не был основной точкой для 1C dashboards; - текущие
file-1cdashboards жили в DB Grafana.
Сделано:
- на CT201 добавлен отдельный provisioning provider
1C File Analytics; - в него выложены:
1c-management-board.json1c-telemetry-board.json
grafana-serverперезапущен;- через SQLite БД Grafana подтверждено наличие:
1c-file-mgmt1c-file-finance1c-file-ops1c-file-telemetry- folder
file-1c / 1C File Analytics
Файлы, которые точно редактировались в этом окне по данным tmux
- [proxmox/tsj_guardian_bot.py](<PROJECT_ROOT>/proxmox/tsj_guardian_bot.py)
- [proxmox/test_tsj_guardian_bot.py](<PROJECT_ROOT>/proxmox/test_tsj_guardian_bot.py)
- [ansible/deploy_tsj_guardian_bot_proxmox.yml](<PROJECT_ROOT>/ansible/deploy_tsj_guardian_bot_proxmox.yml)
- [ansible/group_vars/proxmox-bot.example.yml](<PROJECT_ROOT>/ansible/group_vars/proxmox-bot.example.yml)
- [windows/export-upload-file-1c-telemetry.ps1](<PROJECT_ROOT>/windows/export-upload-file-1c-telemetry.ps1)
- [ansible/deploy_file_1c_windows_telemetry.yml](<PROJECT_ROOT>/ansible/deploy_file_1c_windows_telemetry.yml)
- [clickhouse-1c/clickhouse/init/05_financial_reporting.sql](<PROJECT_ROOT>/clickhouse-1c/clickhouse/init/05_financial_reporting.sql)
- [ansible/deploy_proxmox_web_gateway.yml](<PROJECT_ROOT>/ansible/deploy_proxmox_web_gateway.yml)
Новые dashboard JSON, подтвержденные live-выкладкой:
- [clickhouse-1c/grafana/provisioning/dashboards/files/1c-financial-reporting.json](<PROJECT_ROOT>/clickhouse-1c/grafana/provisioning/dashboards/files/1c-financial-reporting.json)
- [clickhouse-1c/grafana/provisioning/dashboards/files/1c-management-board.json](<PROJECT_ROOT>/clickhouse-1c/grafana/provisioning/dashboards/files/1c-management-board.json)
- [clickhouse-1c/grafana/provisioning/dashboards/files/1c-telemetry-board.json](<PROJECT_ROOT>/clickhouse-1c/grafana/provisioning/dashboards/files/1c-telemetry-board.json)
Проверки, которые были явно пройдены
python3 -m py_compile proxmox/tsj_guardian_bot.py proxmox/test_tsj_guardian_bot.pypython3 -m unittest proxmox.test_tsj_guardian_bot./check-aw-full.shдалFRESH=8 STALE=0 DEAD=0- gateway deploy на Proxmox прошел успешно
go/file1c-telemetryотдает302на Grafana- SQLite Grafana подтвердил наличие
1c-file-telemetryв folder1C File Analytics
Незафиксированные в git риски
- коммитов за последние 24 часа нет;
- есть значительный dirty worktree за пределами этого отчета;
- часть новых файлов все еще
??вgit status; - без отдельного git-упорядочивания следующий человек может смешать сегодняшние изменения с более старыми незакоммиченными правками.
Следующий жесткий шаг
Если цель именно финансовая отчетность по проводкам, нужен отдельный read-only пользователь 1С для боевых файловых баз. Это единственный текущий внешний blocker, который не решается локальным refactor/deploy.