Если в работе вашего сайта, размещенного на VDS, возникли неполадки (недоступность сайта, ошибки 500, 502, 504, ошибки базы данных и др.), рекомендуем перед обращением в службу технической поддержки выполнить базовую диагностику по инструкции ниже. Полученная информация поможет либо решить проблему самостоятельно, либо ускорить обработку обращения нашими специалистами.
Доступен ли сервер из внешней сети?
Проверить доступность сервера проще всего с помощью любого сервиса в сети, предоставляющего такую возможность: найти подобные сайты можно по запросам «ping online», «проверка доступности», «сервис ping» и так далее; их очень много и они бесплатны.
Также проверку можно выполнить из командной строки вашего компьютера.
В командной строке выполните:
ping IP_адрес_сервера
Если сервер доступен, в выводе сразу начнет отображаться информация об отправке пакетов и получении ответов от сервера. Это выглядит примерно следующим образом:
Для остановки выполнения команды нажмите Ctrl+C.
Если обмен пакетами не происходит — сервер недоступен.
В этом случае попробуйте проверить сетевые настройки на сервере. Для этого необходимо подключиться по SSH или использовать веб-консоль в панели управления.
Выполните команду:
ifconfig
Пример вывода с корректными настройками:
Если строка inet addr пустая, есть проблема с сетевыми настройками, которую можно попробовать решить настройкой статического IP-адреса.
Запущены ли службы для работы сайтов?
Для проверки работы служб подключитесь к серверу по SSH или используйте веб-консоль в панели управления.
Проверки выполняются командой вида:
service имя_службы status
Например, для Apache это будет команда:
service apache2 status
или:
service httpd status
Для Nginx:
service nginx status
Для MySQL:
service mysql statusservice mysqld status
Для MariaDB:
service mariadb status
Примеры запущенных служб:
Если в выводе не фигурирует слово running, служба не запущена.
В этом случае в первую очередь необходимо попытаться запустить службу. Это выполняется командой вида:
service имя_службы start
Например, для Apache2:
service apache2 start
Или:
service httpd start
Nginx:
service nginx start
MySQL:
service mysql startservice mysqld start
MariaDB:
service mariadb start
После запуска службы повторно проверьте работу сайтов. Если проблема сохраняется, переходите к следующим проверкам.
Состояние дискового пространства
Общую информацию можно получить командой:
df -h
В выводе будут данные о размере диска и доступном объеме.
Если дисковое пространство исчерпано, необходимо принять меры: расширить диск или удалить ненужные файлы.
Для работы с дисковым пространством можно использовать утилиты ncdu и du. Подробнее о работе с ними — в статье Анализ дискового пространства: ncdu, du.
Состояние inodes
Если индексные дескрипторы — inodes — исчерпаны, это тоже может быть причиной неполадок. В работе сервера начнут возникать ошибки и появляться уведомления о недостаточном дисковом пространстве.
Подробнее о диагностике и устранении проблемы см. в статье Переполнение inodes.
Наличие необходимых прав для директорий с логами
Необходимо проверить, назначены ли права на запись для директорий, в которые пишутся логи основных служб сервера.
Это директории:
/var/log/mysql/
/var/log/nginx/
/var/log/apache2/
# или:
/var/log/httpd/
Проверить наличие нужных прав можно командой:
ls -l /var/log/
Пример вывода:
Здесь мы видим, что у интересующих нас каталогов установлены корректные права, а именно — у владельца есть права на запись, чтение и исполнение (rwx):
drwxr-x--- 2 root adm 4096 Aug 16 09:26 apache2
drwxrwxr-x 2 mysql adm 4096 Aug 16 09:26 mysql
drwxr-xr-x 2 root adm 4096 Aug 16 09:27 nginx
Если у каталога нет нужных прав, их можно установить командой chmod:
chmod -R 755 /путь/к/каталогу/
Например:
chmod -R 755 /var/log/nginx/
В данном случае будут установлены права 755, т.е. rwxr-xr-x, то есть полный набор прав для владельца и права на чтение и исполнение — для остальных.
Если при проверке вы видите, что директория с логами той или иной службы отсутствует, ее необходимо создать командой mkdir и установить нужные права, например:
mkdir /var/log/mysql/
chmod -R 775 /var/log/mysql/
После того, как выполнены проверки дискового пространства, inodes и прав, повторно запустите службы и проверьте работу сайта.
Если часть служб по-прежнему не запускается или сохраняются проблемы в работе сайта, создайте обращение в техническую поддержку и сообщите в нем полученную в ходе диагностики информацию.
В этой статье мы рассмотрим методы устранения неполадок отказоустойчивых кластеров Windows Server 2008 R2. Существует много способов диагностики кластеров, и каждый специалист может иметь свои особые приемы. Однако здесь я представлю наиболее общие подходы к решению проблем
Джон Марлин
. Вначале поговорим о файлах, с которыми обычно приходится иметь дело, и об их описаниях.
Первое, с чем предстоит работать – диспетчер отказоустойчивости кластеров. Этот новый инструмент управления кластером позволяет руководить группами и ресурсами и выполнять диагностику неполадок. Диспетчер отказоустойчивости кластеров открывается из пункта «Администрирование» в меню «Пуск».
Каналы событий
Каждый, вероятно, знаком с журналом системных событий, в котором регистрируются критически важные события, ошибки и предупреждения. Однако это не единственное место, где фиксируются события. Начиная с Server 2008, существуют еще и каналы событий. На экране 1 показано, как найти каналы, имеющие отношение к отказоустойчивой кластеризации. Именно здесь следует искать все информационные и отладочные/диагностические события. На схеме мы видим следующие журналы и их каналы:
— FailoverClustering
* Operational
* Diagnostic (если выбран пункт Show Analytic and Debug Logs («отобразить журналы анализа и отладки»))
* Performance-CSV (если выбран пункт Show Analytic and Debug Logs)
— FailoverClustering-Client
* Diagnostic (если выбран пункт Show Analytic and Debug Logs)
— FailoverClustering-Manager
* Admin
* Diagnostic (если выбран пункт Show Analytic and Debug Logs)
— FailoverClustering-WMIProvider
* Admin
* Diagnostic (если выбран пункт Show Analytic and Debug Logs).
![]() |
| Экран 1. Каналы, относящиеся к?отказоустойчивой кластеризации |
События запуска/остановки службы кластеров, перемещения групп, перевода групп в онлайн/автономный режим и т.д. регистрируются в журнале FailoverClusteringOperational. Например:
-Идентификатор события: 1061
-Описание: служба кластеров успешно настроила отказоустойчивый кластер JohnsCluster.
Неудачные попытки установления соединения с другими узлами при открытии диспетчера отказоустойчивости кластеров регистрируются в журнале FailoverClustering-ManagerAdmin. Например:
-Идентификатор события: 4684
-Описание: диспетчеру отказоустойчивости кластеров не удалось связаться с серверами DNS для разрешения имени W2K8-R2-NODE2.contoso.com. Дополнительные сведения можно найти в канале диагностики диспетчера отказоустойчивости кластеров.
В журнале FailoverClustering-ManagerDiagnostic можно увидеть следующее:
-Идентификатор события: 4609
-Описание: ошибка при попытке проверки связи с W2K8-R2-NODE2.contoso.com. System.ApplicationException: не удалось связаться с одним или несколькими DNS-серверами. Убедитесь в правильности настройки DNS и полном подключении компьютера к сети.
-Идентификатор события: 4612
-Описание: проверка связи с W2K8-R2-NODE2.contoso.com завершилась сбоем.
Именно по этим событиям можно установить проблему подключения узла к серверу DNS и затем приступить к ее устранению. Не просматривая указанные журналы, о наличии неполадок можно будет судить по тому, что в диспетчере отказоустойчивости кластеров узел W2K8 R2-NODE2 будет отображен как неисправный. Еще один журнал в числе упомянутых выше, Failover-ClusteringDiagnostic, мы обсудим несколько позже.
Диспетчер отказоустойчивости кластеров
Для упрощения анализа системные ошибки и предупреждения можно просматривать из окна диспетчера отказоустойчивости кластеров. На главной странице на центральной панели находится ссылка на последние события кластера Recent Cluster Events (экран 2). Эта ссылка позволяет вывести на экран все предупреждения и ошибки, связанные с отказоустойчивым кластером, за последние 24 часа. События, собранные со всех узлов, сосредоточены в одном месте, что избавляет от необходимости открывать несколько журналов событий на нескольких компьютерах.
![]() |
| Экран 2. Последние события кластера |
Для просмотра конкретных событий можно использовать элемент Query, доступ к которому открывается из элемента Cluster Events на левой панели главной страницы. В меню, которое мы открываем правым щелчком на Cluster Events, выберите пункт Query, либо укажите Query на панели Actions справа. На экране 3 показан фильтр событий кластера.
![]() |
| Экран 3. Фильтр событий кластера |
Диспетчер отказоустойчивости кластеров – удобный инструмент для отображения всех данных в одном месте. Предположим, что произошел отказ некоего ресурса диска. В окне диспетчера отказоустойчивости кластеров можно запросить все узлы, журнал системных событий System, а также указать уровень событий и конкретную дату. На главной странице можно будет увидеть, когда и на каких узлах случился отказ диска, и просмотреть все относящиеся к этому событию данные. Запросы можно сохранить для последующего использования.
Поиск событий определяют два параметра. События появления отказов можно искать по всем ресурсам, либо только по конкретному ресурсу. Для этого в меню Actions (экран 4) можно выбрать пункт Show the critical events for this application («Отображение критических событий для данного приложения») или Show the critical events for this resource («Отображение критических событий для данного ресурса»). Это позволяет формировать запрос всех событий из текущих журналов, создаваемых на всех узлах, либо ограничить список запрашиваемых событий рамками заданного периода времени или узла.
![]() |
| Экран 4. Пункт Actions в диспетчере отказоустойчивости кластеров |
Журнал диагностики – эквивалент Cluster.Log в Windows 2003 Server Cluster. Начиная с отказоустойчивой кластеризации, реализованной в Server 2008, функции журнала больше соответствуют процессу трассировки событий для Windows Event Tracing (ETW). Вместо текстового файла Cluster.Log запись осуществляется в журнал диагностики, хранящийся в папке C:WindowsSystem32winevtlogs. Существует три журнала диагностики, куда осуществляется запись (clusterlog.etl.001, clusterlog.etl.002 и clusterlog.etl.003). В ходе каждой отдельной загрузки запись происходит только в один из журналов. Более подробные сведения о файлах журналов и их применении можно найти в блоге «Understanding the Cluster Debug Log in 2008» (http://blogs.technet.com/b/askcore/archive/2010/04/13/understanding-the-cluster-debug-log-in-2008.aspx).
Журнал диагностики включен и постоянно осуществляет запись. Если в меню, открываемом правым щелчком на FailoverClusteringDiagnostic, выбрать команду Disable log («Отключить журнал»), то можно просмотреть все записанные события. После отключения журнала система перестает записывать в него данные, и информация не сохраняется. Если журнал был отключен, то лучше всего сохранить данные в виде журнала событий или текстового файла и включить журнал снова. В журнале регистрируются три основных типа событий:
*событие 2049 – информационное;
*событие 2050 – предупреждение;
*событие 2051 – ошибка.
Эти события выводятся только из текущего журнала трассировки событий. ETL, в который осуществляется запись. Информация о событиях отображается так же, как в системном журнале и журнале приложения. Однако каждое событие занимает отдельную строку, поэтому просмотр всего журнала диагностики может оказаться делом довольно утомительным. Можно создать текстовый файл Cluster.Log с помощью команд, позволяющих свести воедино три журнала, что значительно облегчает восприятие информации.
Команда PowerShell Get-ClusterLog инициирует на всех узлах создание журнала Cluster.Log, который помещается в папку C:WindowsClusterReports. Меню Get-ClusterLog содержит пункты, которые могут оказаться полезными в определенных обстоятельствах. Например, для выяснения причин проблемы можно воспроизвести ее, а затем воспользоваться командой
Get-ClusterLog -TimeSpan 5
для вывода данных за последние 5 минут. Поскольку требуется журнал только с одного узла, на котором воспроизводится проблема, можно добавить параметр Node Nodename для создания Cluster.Log только на этом узле. Если требуется пересылка журналов с нескольких узлов, то установление соединения с каждым из них для получения нужного файла может занять некоторое время. В этом случае можно воспользоваться параметром –Destination, который обеспечит создание Cluster.Log на каждом узле и последующее копирование этого журнала в заданную папку в виде файла под именем, к которому прикреплено имя компьютера (например, W2K8-R2-Node1_Cluster.Log).
Создаваемый журнал Cluster.Log – это моментальный снимок во времени, который фиксирует текущее состояние и уже не обновляется. Если при создании журнала в папке Reports уже есть Cluster.Log, то существующий файл удаляется и освобождается место для нового.
Система наблюдения за ресурсами
Теперь перейдем к системе наблюдения за ресурсами Resource Host System (RHS), одной из функций которой является отслеживание состояния всех ресурсов в кластере. Система выполняет серию проверок (базовых и полных). Если ресурс не реагирует на проверку, то RHS генерирует следующее системное событие:
-Идентификатор события: 1230
-Описание: ресурс кластера ‘Cluster Disk 1’ (resource type», DLL ‘clusres.dll’) либо поврежден, либо заблокирован.
Если диск не отреагировал на проверку состояния, то кластер выводит данный ресурс из работы и перезапускает его для возврата в рабочий процесс. Если бы такие проверки не проводились, отказ ресурса мог бы привести к «зависанию» компьютера или невозможности подключения из клиентского приложения.
Проводя диагностику события RHS, необходимо проанализировать проблемный ресурс. Если диск заблокирован, следует проверить все содержимое стека диска. Возможно, причиной является медленный в/в диска, либо потерян путь к нему. Это должно быть ориентиром проводимой диагностики. На следующем этапе выполняется поиск относящихся к диску событий в системном журнале, анализ системного монитора, обновление драйверов и т.д. Если ресурсом является IP-адрес или сетевое имя, то в центре внимания должен быть сетевой стек и все его содержимое.
Проверка кластера
Последняя тема обсуждения – отчет о результатах проверки кластера Cluster Validate. Чтобы кластер был «кондиционным», все его компоненты должны быть перечислены в каталоге Windows Server, и необходимо, чтобы он прошел полную проверку. Многие запускают проверку кластера до или сразу после создания. Однако если проблемы возникают позже, то лишь немногие помнят об этой функции, которую также можно использовать как средство диагностики. Если возникают проблемы с диском, запустите тесты хранилища Storage Tests. При наличии проблем с сетевой передачей данных воспользуйтесь сетевыми тестами Network Tests. С помощью функции проверки кластера можно также получить данные о группах, ресурсах и параметрах текущего отказоустойчивого кластера для обращения к этим сведениям в дальнейшем.
Достоинством проверки кластера является возможность ее запуска без прерывания рабочего процесса. При выборе теста хранилища Storage Test выдается вопрос, следует ли переводить работающие группы в автономный режим (экран 5). Установка по умолчанию предполагает невмешательство в работу групп, находящихся в режиме онлайн, и рабочий процесс не затрагивается. Тесты хранилища предусматривают проверку дисков, которые:
— принадлежат группам в автономном режиме;
— принадлежат активной группе хранения;
— не являются частью кластера.
![]() |
| Экран 5. Проверка кластера |
При каждом запуске проверки кластера в каталоге C:WindowsClusterReports на каждом проверяемом узле создается файл с именем, часть которого составляют дата и время.
Существуют и другие способы диагностики отказоустойчивых кластеров, однако для их описания в этой статье не хватило бы места. Однако приведенные здесь рекомендации применимы к большинству проблем, с которыми вы можете столкнуться. Для получения дополнительной информации посетите блог Ask the Core Team (http://blogs.technet.com/b/askcore/) или Clustering and High Availability (http://blogs.msdn.com/b/clustering/). Успешной кластеризации!
Статья давно не обновлялась, поэтому информация могла устареть.
Содержание
- 1 Как выявить аппаратную проблему с сервером?
- 2 Сервер не отвечает на запросы
- 3 Проверка состояния жестких дисков
- 4 SATA/SAS
- 5 SSD
- 6 Правила подачи запроса в службу поддержки
- 6.1 Информация, необходимая для подачи запроса:
- 6.2 Пример запроса
- 7 Возможности по диагностированию оперативной памяти
- 8 Заключение
Как выявить аппаратную проблему с сервером?
В данной статье мы рассмотрим выявление и диагностирование сбойных винчестеров, возможности для проверки оперативной памяти, так же рассмотрим подачу заявки в службу технической поддержки.
Анализируя запросы в службу поддержки, связанные с аппаратными проблемами на выделенных серверах, можно резюмировать следующее: большинство клиентов просто не умеют правильно идентифицировать проблему, возникшую на сервере, а так же составить четкий запрос специалистам компании.
Помочь клиентам в этом вопросе и будет являться целью данной статьи. Во множестве заявок клиент не указывает всей необходимой информации о сервере, выяснение которой затягивает решение вопросов.
Сервер, являясь электронным прибором, может рано или поздно выйти из строя. Любой современный электронный прибор, и сервер в частности, построен на модульном принципе, что имеет множество преимуществ: взаимозаменяемость, быстрая замена и диагностика без применения специального оборудования. При выходе сервера из эксплуатации, эти преимущества играют огромную роль.
Сервер не отвечает на запросы
Наиболее типичной является ситуация, когда сервер перестает отвечать на запросы. Перед тем, как написать запрос в службу технической поддержки, следует провести следующие диагностические мероприятия:
Для начала необходимо перезагрузить сервер, используя панель управления DCImanager, «Перезагрузить».
Если сервер не загрузился, по прошествии некоторого времени, следует запросить IP-KVM для того, чтобы иметь доступ к консоли сервера и видеть вывод ошибок.
Возможно, идет проверка файловой системы, при худшем раскладе – на консоли ошибки “kernel panic”, ошибки “disk boot failure, insert system disk and press enter”, темный экран. В первом случае вам просто следует подождать, сервер «поднимется». Во втором случае желательно обратиться к техническим специалистам компании.
После загрузки сервера, необходимо проверить состояние винчестеров.
Проверка состояния жестких дисков
В этом поможет технология SMART, встроенная в современные диски. Она позволяет оценить состояние и предсказать выход диска из стоя. Доступ к данным, предоставляемым технологией SMART, осуществляется различными утилитами. В ОС семейства FreeBSD и Linux это – smartctl входящая в пакет утилит smartmontools, адрес официального сайта: http://sourceforge.net/apps/trac/smartmontools/.
Чтобы установить пакет воспользуйтесь командой для вашего дистрибутива ОС:
* для Centos/Redhat: yum install -y smartmontools * для Debian/Ubuntu: apt-get install -y smartmontools * для FreeBSD: make -C /usr/ports/sysutils/smartmontools/ install clean
Проверяем диск так:
# smartctl -a /dev/sda
Имя диска может отличаться и быть одним из следующих:
- /dev/ada0
- /dev/sda
- /dev/sdb
Виртуальный сервер на виртуализации KVM имеет диски /dev/vda
smartctl -a /dev/УСТРОЙСТВО
Например, для FreeBSD команда может выглядеть так:
smartctl -a /dev/ad1
а для Linux так:
smartctl -a /dev/sda
Детальное описание можно посмотреть на официальном сайте проекта smartmontools , описание атрибутов на русском языке на Википедии.
Получив данные SMART с диска, следует обратить внимание на следующие показатели:
SATA/SAS
Reallocated Sectors Count — Показывает количество переназначенных секторов (remaping). Большое число свидетельствует о проблемах с поверхностью дисков. Можно считать ключевым параметром при оценке состояния диска, особенно при постоянном увеличении данного параметра.
Current Pending Sector Count — Текущее количество нестабильных секторов. Поле raw value этого атрибута показывает общее количество секторов, которые накопитель в данный момент считает претендентами на переназначение в резервную область (remap). Если в дальнейшем какой-то из этих секторов будет прочитан успешно, то он исключается из списка претендентов. Если же чтение сектора будет сопровождаться ошибками, то накопитель попытается восстановить данные и перенести их в резервную область, а сам сектор пометить как переназначенный (remapped). Постоянно ненулевое значение raw value этого атрибута говорит о низком качестве (отдельной зоны) поверхности диска.
Uncorrectable Sector Count — Количество нескорректированных ошибок. Атрибут показывает общее количество ошибок, возникших при чтении/записи сектора и которые не удалось скорректировать. Рост значения в поле raw value этого атрибута указывает на явные дефекты поверхности и/или проблемы в работе механики накопителя.
Рассмотрение остальных параметров имеет менее важное значение и не входит в рамки данной статьи. Более детальное описание есть на ресурсе, указанном выше.
В качестве примера рассмотрим вывод утилиты smartctl
В данном случае наблюдается большое значение параметра “Reallocated Sectors Count” указывающее на возможное наличие сбойных секторов(bad blocks) и “Seek_Error_Rate” – ошибки позиционирования считывающих головок диска. В данном примере диск можно считать сбойным и в ближайшее время, возможен выход его из строя.
Как показывает наш опыт в случае если значения Uncorrectable Sector Count, Current Pending Sector Count, UDMA_CRC_Error_Count больше нуля, то жесткий диск требует срочной замены.
Так же будет полезно провести тест диска:
smartctl --test=short /dev/sda
Следить за процессом и посмотреть результат можно командой:
smartctl -a /dev/sda | grep -A1 "Test_Description"
Если нужной информации не отобразилось, то просмотрите полный вывод команды:
smartctl -a /dev/sda
SSD
Основной показатель здоровья диска:
233 Media_Wearout_Indicator
Media Wearout Indicator — эта переменная напрямую указывает на износ диска. Счётчик имеет ненулевое значение в начале (100), и уменьшается со временем. При достижении некоего определённого производителем порогового значения, диск признается изношенным и переходит в read-only режим.
Если его значение упало ниже 10, значит пора диск менять.
Так же стоит обращать внимание на:
5 Reallocated_Sector_Ct
При оценке состояния жестких дисков очень важно делать проверку не при возникновении проблем, а с достаточной для оперативной реакции периодичностью. Поможет в этом демон мониторинга жестких дисков smatrd. Его настройка не составит больших трудностей, т.к. он очень хорошо документирован на официальном сайте проекта (см. http://smartmontools.sourceforge.net/man/smartd.8.html и http://smartmontools.sourceforge.net/man/smartd.conf.5.html). Процедура не займет много времени, но при этом позволит всегда знать в каком состоянии находятся жесткие диски ваших серверов, а при появлении ошибок позволит вовремя принять меры и предотвратить потерю данных.
Получив и проанализировав показатели SMART, необходимо написать запрос в службу технической поддержки. Правильно составленный запрос облегчает работу специалистов и уменьшает время реакции.
Правила подачи запроса в службу поддержки
Информация, необходимая для подачи запроса:
- Идентификационные данные сбойного диска, при невозможности извлечения, данные о целом диске. Информация будет передана техническим сотрудникам в ДЦ, которые будут заниматься заменой сбойного диска.
- Результат выполнения команды smartctl -a на проблемном жестком диске.
- Данные доступа на сервер, для подтверждения состояния дисков сотрудниками компании.
Сообщения, не содержащие данной информации не могут быть приняты к рассмотрению.
Работа утилиты smartctl. Для определения данных о сбойном диске необходим следующий блок информации:
=== START OF INFORMATION SECTION === Model Family: Seagate Momentus 5400.3 series Device Model: ST9120822AS Serial Number: 5LZ71TKQ Firmware Version: 3.ALC User Capacity: 120 034 123 776 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 7 ATA Standard is: Exact ATA specification draft version not indicated Local Time is: Mon Oct 15 06:52:24 2012 IRKT SMART support is: Available - device has SMART capability. SMART support is: Enabled
Пример запроса
Рассмотрим небольшой пример переписки воображаемого клиента К с сотрудником технической поддержки С:
К: У меня вышел из строя диск.В приложении файл с результатом работы команды smartctl -a. Можете произвести замену? С: Да, мы можем заменить ваш диск. Для этого нам необходимы данные целого диска(серийный номер) или доступ на сервер. К: Вот номер целого – 000000000, доступ к серверу — root:PASSWORD С: Работы выполнены, диск заменен.
Данный диалог можно сократить до запроса о замене диска и ответа о выполнении работ:
Прошу заменить сбойный диск Serial Number: 5LZ71TKQ, Device Model: ST9120822AS. В приложении файл с результатом работы команды smartctl -a Доступ к серверу — root:PASSWORD
Такой запрос будет выполнен сотрудниками технической поддержки без дополнительных уточняющих вопросов, что сокращает время выполнения заявки и экономит рабочее время сотрудников технической поддержки.
Возможности по диагностированию оперативной памяти
Данная проблема может проявляться неявно и решение проблемы затянется. Примером могут быть случаи с выходом из строя отдельных ячеек памяти. Сбои в работе сервера будут происходить не часто или проявляться как ошибки чтения/записи по адресу памяти без выхода из строя сервера.
Диагностика данной проблемы проводится тестом Memtest, официальный сайт проекта — http://www.memtest.org/. Идея данного теста проста — проверка ячеек памяти чтением/записью значений, от простого к сложному. Запуск теста можно сделать, заказав IP-KVM и подключение образа с Memtes’ом в техподдержке (нужно будет загрузиться с этого образа). При наличии проблем с памятью, вероятнее всего, тест пройден не будет, что будет отображено на экране (в какой ячейке и при записи какого значения произошел сбой).
Примечание: Тестирование идет в цикле и его завершение производится вручную. Нужно, чтобы было проведено минимум 3-4 круга тестирования (определяется значением параметра Pass - между Test и Errors).
После выявления проблемы с памятью пишем запрос в службу технической поддержки. В запросе необходимо приложить снимок экрана с ошибкой. Сообщения, не содержащие данной информации не могут быть приняты к рассмотрению. Если ваш провайдер не предоставляет доступ в панель DCImanager, то вам следует сразу написать обращение в службу поддержки с просьбой провести данный тест. При подтверждении ошибки, память будет заменена.
Заключение
Вместо заключения хотелось бы сказать следующее: проблемы выхода винчестеров из строя — явление прогнозируемое и в этом может помочь сервис мониторинга состояния диска smartd, так же включенный в пакет smartmontools . Его настройка и использование неоднократно рассматривались в интернете и не входит в рамки данной статьи. Использование клиентами этого средства мониторинга может спасти от нежелательной потери данных.
Проблемы оперативной памяти — явление непредсказуемое и спонтанное. Выход её из строя не грозит потерей информации, однако вызывает простои в эксплуатации.
И последнее — желаем вам, чтобы ваши сервера не ломались, а обращений в службу технической поддержки по данной тематике было меньше.
Одна из важнейших подсистем, отвечающая за связь любого сервера с внешним миром — сетевая. Через сетевые интерфейсы поступают запросы от удаленных систем и через эти же интерфейсы направляются ответы, что позволяет налаживать коммуникацию и предоставлять/получать сервисы. В связи с этим особенно важно уметь производить диагностику и мониторинг сети хотя бы на базовом уровне, чтобы выявлять проблемы и вносить корректировки в конфигурацию в случае необходимости.
Для операционных систем семейства Linux написано множество утилит, помогающих в диагностике и мониторинге. Познакомимся с наиболее часто используемыми из них.
Диагностика сетевой связности (ping, arp, traceroute)
В данной статье мы будем опираться на использование протокола IP версии 4. Согласно стандартам, определяющим работу этого протокола, каждое устройство, подключенное к сети, должно иметь как минимум IP-адрес и маску подсети — параметры, которые позволяют уникально идентифицировать устройство в пределах определенной сети. В такой конфигурации устройство может обмениваться сетевыми пакетами с другими устройствами в пределах той же самой логической сети. Если к этому набору параметров добавить адрес шлюза по умолчанию — наш сервер сможет связываться с хостами, находящимися за пределами локального адресного пространства.
В случае каких-либо сетевых проблем в первую очередь проверяем, не сбились ли настройки сетевого интерфейса. Например, команды ip addr или ifconfig выведут IP-адрес и маску сети:
В выводе команды виден перечень сетевых интерфейсов, распознанных операционной системой. Интерфейс lo — это псевдоинтерфейс (loopback). Он не используется в реальных взаимодействиях с удаленными хостами, а вот интерфейс с именем ens192 — то, что нам нужно (именование сетевых интерфейсов различается в разных ветках и версиях ОС Linux). IP-адрес и маска сети, назначенные этому интерфейсу, указаны в поле inet — /24 после адреса обозначают 24-битную маску 255.255.255.0.
Теперь проверим, указан ли шлюз по умолчанию. Команды ip route или route покажут имеющиеся маршруты:
В таблице маршрутизации мы видим, что имеется маршрут по умолчанию (обозначается либо ключевым словом default, либо адресом 0.0.0.0). Все пакеты, предназначенные для внешних сетей, должны направляться на указанный в маршруте адрес через обозначенный сетевой интерфейс.
Если в настройках интерфейса есть ошибки, их необходимо исправить — помогут в этом другие статьи, для ОС Ubuntu 18.04 или CentOS. Если же все верно — приступаем к диагностике с помощью утилиты ping. Данная команда отправляет специальные сетевые пакеты на удаленный IP-адрес (ICMP Request) и ожидает ответные пакеты (ICMP Reply). Таким образом можно проверить сетевую связность — маршрутизируются ли сетевые пакеты между IP-адресами отправителя и получателя.
Синтаксис команды ping IP/имя опции:
В данном случае видим, что на оба сетевых пакета, отправленных на адрес нашего шлюза по умолчанию, получены ответы, потерь нет. Это значит, что на уровне локальной сети со связностью все в порядке. Помимо количества полученных/потерянных сетевых пакетов мы можем увидеть время, которое было затрачено на прохождение запроса и ответа – параметр RTT (Round Trip Time). Этот параметр может быть очень важен при диагностике проблем, связанных с нестабильностью связи и скоростью соединения.
Часто используемые параметры:
- ping –c количество — указать количество пакетов, которое будет отправлено адресату (по умолчанию пакеты отправляются до тех пор, пока пользователь не прервет выполнение команды. Этот режим можно использовать, чтобы проверить стабильность сетевого соединения. Если параметр RTT будет сильно изменяться в ходе проверки, значит где-то на протяжении маршрута есть проблема);
- ping –s количество — указать размер пакета в байтах. По умолчанию проверка производится малыми пакетами. Чтобы проверить работу сетевых устройств с пакетами большего размера, можно использовать этот параметр;
- ping –I интерфейс — указать сетевой интерфейс, с которого будет отправлен запрос (актуально при наличии нескольких сетевых интерфейсов и необходимости проверить прохождение пакетов по конкретному сетевому маршруту).
В случае, если при использовании команды ping пакеты от шлюза (или другого хоста, находящегося в одной локальной сети с сервером-отправителем) в ответ не приходят, стоит проверить сетевую связность на уровне Ethernet. Здесь для коммуникации между устройствами используются так называемые MAC-адреса сетевых интерфейсов. За разрешение Ethernet-адресов отвечает протокол ARP (Address Resolution Protocol) и с помощью одноименной утилиты мы можем проверить корректность работы на этом уровне. Запустим команду arp –n и проверим результат:
Команда выведет список IP-адресов (так как был использован аргумент –n), и соответствующие им MAC-адреса хостов, находящиеся в одной сети с нашим сервером. Если в этом списке есть IP, который мы пытаемся пинговать, и соответствующий ему MAC, значит сеть работает и, возможно, ICMP-пакеты, которые использует команда ping, просто блокируются файрволом (либо со стороны отправителя, либо со стороны получателя). Подробнее об управлении правилами файрвола рассказано здесь и здесь.
Часто используемые параметры:
- arp –n — вывод содержимого локального arp-кэша в числовом формате. Без этой опции будет предпринята попытка определить символические имена хостов;
- arp –d адрес — удаление указанного адреса из кэша. Это может быть полезно для проверки корректности разрешения адреса. Чтобы убедиться, что в настоящий момент времени адрес разрешается корректно, можно удалить его из кэша и снова запустить ping. Если все работает правильно, адрес снова появится в кэше.
Если все предыдущие шаги завершены корректно, проверяем работу маршрутизатора — запускаем ping до сервера за пределами нашей сети, например, 8.8.8.8 (DNS-сервис от Google). Если все работает корректно, получаем результат:
В случае проблем на этом шаге, нам может помочь утилита traceroute, которая используя ту же логику запросов и ответов помогает увидеть маршрут, по которому движутся сетевые пакеты. Запускаем traceroute 8.8.8.8 –n и изучаем вывод программы:
Первым маршрутизатором на пути пакета должен быть наш локальный шлюз по умолчанию. Если дальше него пакет не уходит, возможно проблема в конфигурации маршрутизатора и нужно разбираться с ним. Если пакеты теряются на дальнейших шагах, возможно, есть проблема в промежуточной сети. А, возможно, промежуточные маршрутизаторы не отсылают ответные пакеты. В этом случае можно переключиться на использование другого протокола в traceroute.
Часто используемые опции:
- traceroute –n — вывод результата в числовом формате вместо символических имен промежуточных узлов;
- traceroute –I — использование ICMP-протокола при отслеживании маршрута. По умолчанию используются UDP-датаграммы;
- traceroute –s адрес— указать адрес источника для исходящего сетевого пакета;
- traceroute –i интерфейс— указать сетевой интерфейс, с которого будут отправляться пакеты.
Диагностика разрешения имен (nslookup, dig)
Разобравшись с сетевой связностью и маршрутизацией приходим к следующему этапу — разрешение доменных имен. В большинстве случаев в работе с удаленными сервисами мы не используем IP-адреса, а указываем доменные имена удаленных ресурсов. За перевод символических имен в IP-адреса отвечает служба DNS — это сеть серверов, которые содержат актуальную информацию о соответствии имен и IP в пределах доверенных им доменных зон.
Самый простой способ проверить работает ли разрешение имен — запустить утилиту ping с указанием доменного имени вместо IP-адреса (например, ping ya.ru). Если ответные пакеты от удаленного сервера приходят, значит все работает как надо. В противном случае нужно проверить прописан ли DNS-сервер в сетевых настройках и удается ли получить от него ответ.
Способы выяснения какой DNS-сервер использует наш сервер различаются в зависимости от используемой версии и дистрибутива ОС Linux. Например, если ОС используется Network Manager для управления сетевыми интерфейсами (CentOS, RedHat и др.), может помочь вывод команды nmcli:
В настройках сетевого интерфейса, в разделе DNS configuration, мы увидим IP-адрес сервера. В Ubuntu 18.04 и выше, использующих Netplan, используем команду systemd-resolve –status:
Используемый сервер также будет указан в настройках интерфейса, в разделе DNS Servers. В более старых версиях Ubuntu потребуется проверить содержимое файлов /etc/resolve.conf и /etc/network/interfaces. Если сервер не указан, воспользуйтесь статьей для ОС Ubuntu 18.04 или CentOS, чтобы скорректировать настройки.
Проверить работу сервиса разрешения имен нам помогут утилиты nslookup или dig. Функционально они почти идентичны: G-вывод утилиты dig содержит больше диагностической информации и гибко регулируется, но это далеко не всегда нужно. Поэтому используйте ту утилиту, которая удобна в конкретной ситуации. Если эти команды недоступны, потребуется доставить пакеты на CentOS/RedHat:
yum install bind-utils
для Debian/Ubuntu:
sudo apt install dnsutils
После успешной установки сделаем тестовые запросы:
dig ya.ru
В разделе Answer Section видим ответ от DNS сервера — IP-адрес для A-записи с доменным именем ya.ru. Разрешение имени работает корректно:
nslookup ya.ru
Аналогичный запрос утилитой nslookup выдает более компактный вывод, но вся нужная сейчас информация в нем присутствует.
Что же делать, если в ответе отсутствует IP-адрес? Возможно, DNS-сервер недоступен. Для проверки можно отправить тестовый запрос на другой DNS-сервер. Обе утилиты позволяют эти сделать. Направим тестовый запрос на DNS-сервер Google:
dig @8.8.8.8 ya.ru
nslookup ya.ru 8.8.8.8
Если имена разрешаются публичным DNS-сервером корректно, а установленным по умолчанию в ОС нет, вероятно, есть проблема в работе этого DNS-сервера. Временным решением данной проблемы может быть использование публичного DNS-сервера в качестве сервера для разрешения имен в операционной системе. В том случае, если разрешение имен не работает ни через локальный, ни через публичный DNS сервер — стоит проверить не блокируют ли правила файрволла отправку на удаленный порт 53 TCP/UDP пакетов (именно на этом порту DNS-серверы принимают запросы).
Часто используемые параметры:
- nslookup имя сервер — разрешить доменное имя, используя альтернативный сервер;
- nslookup –type=тип имя — получить запись указанного типа для доменного имени (например, nslookup -type=mx ya.ru – получить MX-записи для домена ya.ru);
- dig @сервер имя — разрешить доменное имя, используя альтернативный сервер;
- dig имя тип — получить запись указанного типа для доменного имени (например, dig ya.ru mx — получить MX-записи для домена ya.ru).
Как обычно, полный набор опций и параметров для указанных утилит можно найти во встроенной справке операционной системы, используя команду man.
Вам также может быть интересно
- Недорогие VPS серверы
- Настройка сетевого адаптера в Ubuntu и Debian
- Основные команды CLI Linux
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»














