SNMP является распространенным решением для мониторинга устройств в сети. Настоятельно рекомендуется включить SNMP, чтобы можно было отслеживать работоспособность экземпляр GitHub Enterprise Server и знать, когда следует добавить на хост-компьютер дополнительный объем памяти, хранилища или процессора.
GitHub Enterprise содержит стандартную установку SNMP, поэтому вы можете воспользоваться многими подключаемыми модулями, которые предоставляются для Nagios или любой другой системы мониторинга.
Настройка SNMP версии 2c
-
Из учетной записи администратора на GitHub Enterprise Server в правом верхнем углу любой страницы щелкните .
-
Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
1. На боковой панели слева нажмите Консоль управления .
1. На левой боковой панели щелкните Мониторинг.
1. В разделе "Мониторинг" выберите Включить SNMP.
-
В поле Строка сообщества введите новую строку сообщества. Если оставить это поле пустым, по умолчанию используется значение
public
.1. Нажмите кнопку Сохранить параметры под левой боковой панелью.
Примечание. Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простою, заметному для пользователей.
-
Ожидайте завершения запуска конфигурации.
-
Проверьте конфигурацию SNMP, выполнив следующую команду на отдельной рабочей станции с поддержкой SNMP в сети:
# community-string is your community string # hostname is the IP or domain of your Enterprise instance $ snmpget -v 2c -c COMMUNITY-STRING -O e HOSTNAME hrSystemDate.0
Это должно возвращать системное время на узле экземпляр GitHub Enterprise Server.
Пользовательская безопасность
Если настроена поддержка SNMP версии 3, вы можете получить более высокий уровень безопасности с контролем на уровне пользователей благодаря модели безопасности пользователей (USM). Для каждого уникального пользователя можно отдельно настроить один из следующих уровней безопасности.
noAuthNoPriv
: этот уровень безопасности не предоставляет проверку подлинности и конфиденциальность.authNoPriv
: этот уровень безопасности предоставляет проверку подлинности, но не предоставляет конфиденциальность. Чтобы отправить запрос на устройство, потребуется имя пользователя и пароль (длиной не менее восьми символов). Информация отправляется без шифрования, как в протоколе SNMP версии 2. В качестве протокола проверки подлинности может использоваться MD5 или SHA, по умолчанию — SHA.authPriv
: этот уровень безопасности предоставляет проверку подлинности и конфиденциальность. Проверка подлинности является обязательной, пароль должен содержать не менее восьми символов, а ответы шифруются. Пароль конфиденциальности не является обязательным, но если он указан, то должен содержать не менее восьми символов. Если пароль конфиденциальности не указан, используется пароль проверки подлинности. В качестве протокола конфиденциальности может использоваться DES или AES, по умолчанию — AES.
Настройка пользователей для SNMP версии 3
-
Из учетной записи администратора на GitHub Enterprise Server в правом верхнем углу любой страницы щелкните .
-
Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
1. На боковой панели слева нажмите Консоль управления .
1. На левой боковой панели щелкните Мониторинг.
1. В разделе "Мониторинг" выберите Включить SNMP.
-
Выберите SNMP версии 3.
-
В поле "Имя пользователя" введите уникальное имя для пользователя SNMP версии 3.
-
В раскрывающемся меню Уровень безопасности выберите уровень безопасности для пользователя SNMP версии 3.
-
Для пользователей SNMP версии 3 с уровнем безопасности
authnopriv
:- В поле "Пароль для проверки подлинности" введите пароль для проверки подлинности.
- В правой части окна "Пароль для проверки подлинности" в раскрывающемся меню Протокол выберите нужный протокол для проверки подлинности.
-
Для пользователей SNMP версии 3 с уровнем безопасности
authpriv
:- В поле "Пароль для проверки подлинности" введите пароль для проверки подлинности.
- В правой части окна "Пароль для проверки подлинности" в раскрывающемся меню Протокол выберите нужный протокол для проверки подлинности.
- При необходимости в поле "Пароль конфиденциальности" введите пароль конфиденциальности.
- В правой части раздела "Пароль конфиденциальности" выберите в раскрывающемся меню Протокол метод протокола конфиденциальности, который вы хотите использовать.
-
Нажмите кнопку Добавить пользователя.
1. Нажмите кнопку Сохранить параметры под левой боковой панелью.
Примечание. Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простою, заметному для пользователей.
-
Ожидайте завершения запуска конфигурации.
Запрос данных SNMP
В SNMP версии 3 доступны сведения об устройстве на аппаратном и программном уровнях. Из-за отсутствия шифрования и конфиденциальности, для уровней безопасности noAuthNoPriv
и authNoPriv
мы исключаем таблицу hrSWRun
(1.3.6.1.2.1.25.4) из создаваемых отчетов SNMP. Если вы используете уровень безопасности authPriv
, мы включаем эту таблицу. Дополнительные сведения см. в справочной документации по API.
В SNMP версии 2с доступны сведения об устройстве только на аппаратном уровне. Приложения и службы в GitHub Enterprise не имеют настроенных идентификаторов OID для передачи метрик. Доступны несколько MIB, для получения списка которых можно выполнить snmpwalk
на отдельной рабочей станции с поддержкой SNMP в сети:
# community-string is your community string
# hostname is the IP or domain of your Enterprise instance
$ snmpwalk -v 2c -c COMMUNITY-STRING -O e HOSTNAME
Из доступных MIB для SNMP наиболее полезным является HOST-RESOURCES-MIB
(1.3.6.1.2.1.25). В таблице ниже приведены некоторые важные объекты в этом MIB:
Имя | OID | Описание |
---|---|---|
hrSystemDate.2 | 1.3.6.1.2.1.25.1.2 | Представление узлов о локальной дате и времени дня. |
hrSystemUptime.0 | 1.3.6.1.2.1.25.1.1.0 | Сколько времени прошло с момента последней инициализации узла. |
hrMemorySize.0 | 1.3.6.1.2.1.25.2.2.0 | Объем ОЗУ на виртуальной машине. |
hrSystemProcesses.0 | 1.3.6.1.2.1.25.1.6.0 | Количество контекстов процесса, загруженных или выполняющихся на узле в данный момент. |
hrStorageUsed.1 | 1.3.6.1.2.1.25.2.3.1.6.1 | Объем дискового пространства, потребляемого на узле, выраженный в hrStorageAllocationUnits. |
hrStorageAllocationUnits.1 | 1.3.6.1.2.1.25.2.3.1.4.1 | Размер hrStorageAllocationUnit в байтах |
Например, чтобы получить hrMemorySize
по протоколу SNMP версии 3, выполните следующую команду на отдельной рабочей станции с поддержкой SNMP в сети:
# username is the unique username of your SNMP v3 user
# auth password is the authentication password
# privacy password is the privacy password
# hostname is the IP or domain of your Enterprise instance
$ snmpget -v 3 -u USERNAME -l authPriv \
-A "AUTH PASSWORD" -a SHA \
-X "PRIVACY PASSWORD" -x AES \
-O e HOSTNAME HOST-RESOURCES-MIB::hrMemorySize.0
Чтобы получить hrMemorySize
по протоколу SNMP версии 2c, выполните следующую команду на отдельной рабочей станции с поддержкой SNMP в сети:
# community-string is your community string
# hostname is the IP or domain of your Enterprise instance
snmpget -v 2c -c COMMUNITY-STRING HOSTNAME HOST-RESOURCES-MIB::hrMemorySize.0
Примечание: чтобы предотвратить утечку сведений о службах, работающих на устройстве, мы исключаем таблицу hrSWRun
(1.3.6.1.2.1.25.4) из создаваемых отчетов SNMP, если вы не используете уровень безопасности authPriv
для SNMP версии 3. Если вы используете уровень безопасности authPriv
, мы включаем таблицу hrSWRun
.
Дополнительные сведения о сопоставлениях OID для популярных системных атрибутов SNMP см. в разделе OID для статистики по ЦП, памяти и дискам в Linux SNMP.