Короткий ответ
Недоступный «сервер 1С» — это узел SRV-1C, процессы кластера 8.3 и порты, а не сразу SQL. Проверьте: жива ли служба агента (ragent, обычно TCP 1540), отвечает ли менеджер rmngr (1541), открыт ли диапазон рабочих процессов 1560–1591, есть ли диск под каталогом srvinfo. Не снимайте все rphost через Task Manager и не перезагружайте хост, пока не зафиксировали: служба, порт, место, журнал.
База Accounting на SQL01\MSSQLSERVER может быть полностью здоровой при мёртвом кластере — и наоборот.
Симптомы и как отличить
Типичная картина:
- все клиенты: ошибка соединения с сервером 1С:Предприятия;
- RDP на
SRV-1Cесть, 1С всё равно нет; Get-Serviceагента — Stopped или StartPending;- с ПК
Test-NetConnection -Port 1540= False.
Отличия:
| Картина | Не кластер как роль | Куда |
|---|---|---|
| Один клиент | кэш/ярлык | не запускается |
| Список пустой, rac видит кластер | список баз | не видит базу |
| Кластер сеансы принимает, ошибка SQL | СУБД | SQL недоступен |
| Сеансы есть, один повис | сеанс | сеанс завис |
Возможные причины
- Служба агента не стартовала после обновления платформы/патча Windows.
- Порт занят вторым агентом или чужим процессом; в ярлыке службы не тот
-port. - Firewall (хост или межсетевой) режет 1540/1541/диапазон
rphost. - Диск с
C:\Program Files\1cv8\srvinfo(или ваш путь-d) заполнен или read-only. - Каталог кластера повреждён после hard reset.
- Лицензия сервера не поднимает рабочие процессы — похоже, но сообщение другое; проверьте после портов.
- Редко: антивирус держит
ragent.exe.
Диагностика
Плейсхолдеры: SRV-1C, база Accounting, SQL SQL01.
1. Служба и процессы
Get-CimInstance Win32_Service | Where-Object { $_.Name -like '*1C*' -or $_.DisplayName -match '1С|1C:Enterprise' } |
Format-List Name, DisplayName, State, StartMode, PathName
Get-Process ragent, rmngr, rphost, ras -ErrorAction SilentlyContinue |
Format-Table Name, Id, CPU, WorkingSetВ PathName агента смотрите -port и -d. Если -port 1640, клиенты на 1540 будут «сервер недоступен» при живом процессе.
2. Порты
Test-NetConnection SRV-1C -Port 1540
Test-NetConnection SRV-1C -Port 1541
Test-NetConnection SRV-1C -Port 1560
Get-NetTCPConnection -LocalPort 1540,1541 -ErrorAction SilentlyContinue |
Format-Table LocalAddress, LocalPort, State, OwningProcessСлушает 127.0.0.1 only — клиенты с VLAN не достучатся. Должен быть адрес интерфейса или 0.0.0.0.
3. Диск и srvinfo
Get-PSDrive -PSProvider FileSystem | Format-Table Name, Used, Free
Get-ChildItem 'C:\Program Files\1cv8\srvinfo' -ErrorAction SilentlyContinue | Select-Object Name, LastWriteTimeПуть может быть другим (D:\1c_reg\). Берите его из PathName службы.
4. Журнал агента
В каталоге, указанном -d, журналы кластера. Плюс Windows Application. Ищите отказ старта, порт in use, access denied на srvinfo.
Get-EventLog -LogName Application -Newest 50 -Source '*1C*','1CV8' -ErrorAction SilentlyContinue(Если источник другой — фильтр по времени вокруг Stop/Start службы.)
5. SQL отдельно
Test-NetConnection SQL01 -Port 1433Нужно, чтобы не лечить кластер, когда мёртв только SQL — но при Down ragent клиент часто даже не доходит до SQL.
Решение
Сценарий A. Служба Stopped, диск и порт свободны
Запустите службу агента штатно:
$svc = Get-Service | Where-Object { $_.DisplayName -match 'Агент сервера 1С|1C:Enterprise 8.3 Server Agent' }
Start-Service $svc.Name
Get-Process ragent, rmngr -ErrorAction SilentlyContinueДождитесь rmngr, затем проверка с клиента на 1540/1541. Не стартуйте «ещё один» ragent.exe руками параллельно той же -d.
Сценарий B. Порт занят
Найдите PID на 1540. Второй агент после неудачного обновления — частая история. Оставьте один агент на каталог srvinfo, второй — другой порт и другой -d.
Сценарий C. Firewall
Добавьте разрешающие правила на 1540, 1541, диапазон рабочих процессов, при необходимости RAS 1545. С клиентских подсетей. Не выключайте профиль Domain насовсем.
Сценарий D. Агент не стартует из-за диска
Освободите том не удаляя srvinfo и данные кластера. Кандидаты: логи ТЖ, дампы, старые копии платформы. После гигабайтов свободных — старт службы.
Сценарий E. Нужен рестарт агента
Если служба зависла в StartPending:
- Предупредите пользователей: сеансы упадут.
- Штатный Stop службы, пауза, Start.
- Не
Stop-Process -Name rphost -Forceпачкой, пока служба ещё контролирует процессы.
Как проверить, что проблема устранена
Test-NetConnection SRV-1C -Port 1540
Test-NetConnection SRV-1C -Port 1541
& 'C:\Program Files\1cv8\8.3.23.1782\bin\rac.exe' cluster listКлиент открывает Accounting. В консоли есть рабочие процессы. Сеанс тестовой учётки не падает сразу.
Если не помогло
- ragent Up, 1541 нет — смотрите журнал менеджера, лицензию сервера, повреждение реестра кластера (restore
srvinfoиз backup, не с нуля без копии). - Кластер Up, ошибка СУБД — SQL.
- Служба сразу Stop — права учётки службы на
-d, блок антивируса, неверный путь платформы после обновления. - Несколько кластеров на одном хосте — клиент бьёт не в тот порт.
Профилактика
- Мониторинг службы агента и TCP 1540/1541 с клиентской VLAN.
- Документ: порт, путь
-d, сборка 8.3. - Место на томе
srvinfoи технологического журнала. - Консоль гипервизора, не только «1С не открывается».
- Перед патчем хоста — подготовка к обновлению.
FAQ
Клиенты ходят на IP, DNS жив. Зачем DNS?
Чтобы переезд VM не потребовал правки 200 ярлыков. Для диагностики IP достаточен.
Нужно ли открывать 1540 в интернет?
Нет. Кластер — только внутренняя сеть. Публикация веб-клиента — отдельно, через reverse proxy, не opening ragent.
Чем rac лучше консоли MMC?
Тем же API, удобно с сервера без GUI. Для одного сбоя достаточно консоли. UUID кластера берите из cluster list.
После старта агента сеансы «старые» ещё в списке.
Мёртвые сеансы уберите штатно. Не путать с зависшим сеансом на живом кластере.
Можно ли поднять второй SRV-1C на ту же SQL-базу Accounting?
Не как «hot spare» без понимания кластера и блокировок. Два независимых кластера на одну SQL-базу — путь к порче. Отказоустойчивость проектируйте, не включайте второй агент «на всякий случай».