Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2024-03-26. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Мониторинг работоспособности кластера

Чтобы обеспечить производительность и избыточность кластера GitHub Enterprise Server можно отслеживать работоспособность кластера.

Кто эту функцию можно использовать?

GitHub определяет право на кластеризация и должен включить конфигурацию лицензии вашего экземпляра. Кластеризация требует тщательного планирования и дополнительных административных накладных расходов. Дополнительные сведения см. в разделе Сведения о кластеризации.

Сведения о работоспособности кластера GitHub Enterprise Server

Кластер GitHub Enterprise Server состоит из нескольких узлов с избыточными службами, распределенными между двумя или более узлами. Если сбой отдельной службы или всего узла, пользователи не должны заметить. Сбои влияют на производительность и избыточность, поэтому важно отслеживать работоспособность кластера. Вы можете отслеживать работоспособность кластера с помощью служебной программы командной строки или внешнего средства мониторинга, например Nagios.

Проверка состояния кластера вручную

GitHub Enterprise Server имеет встроенную программу командной строки для мониторинга работоспособности кластера. При запуске команды ghe-cluster-status в административной оболочке выполняется ряд проверок работоспособности на каждом узле, включая проверку подключения и состояния службы. В выходных данных отображаются все результаты теста, включая текст ok или error. Например, чтобы отобразить только неудачные тесты, выполните следующую команду:

admin@ghe-data-node-0:~$ ghe-cluster-status | grep error
> mysql-replication ghe-data-node-0: error Stopped
> mysql cluster: error

Примечание. Если неудачные тесты отсутствуют, эта команда не выводит выходные данные. Это означает, что кластер работоспособен.

Мониторинг состояния кластера с помощью Nagios

Можно настроить Nagios для мониторинга GitHub Enterprise Server. Помимо мониторинга базового подключения к каждому из узлов кластера, можно проверять состояние кластера, настроив Nagios для использования команды ghe-cluster-status -n. В результате выполнения возвращаются выходные данные в формате, понятном Nagios.

Необходимые компоненты

  • Узел Linux, где выполняется Nagios.
  • Сетевой доступ к кластеру GitHub Enterprise Server.

Настройка узла Nagios

  1. Создайте ключ SSH с пустой парольной фразой. Nagios использует его для проверки подлинности в кластере GitHub Enterprise Server.

    nagiosuser@nagios:~$ ssh-keygen -t ed25519
    > Generating public/private ed25519 key pair.
    > Enter file in which to save the key (/home/nagiosuser/.ssh/id_ed25519):
    > Enter passphrase (empty for no passphrase): LEAVE BLANK BY PRESSING ENTER
    > Enter same passphrase again: PRESS ENTER AGAIN
    > Your identification has been saved in /home/nagiosuser/.ssh/id_ed25519.
    > Your public key has been saved in /home/nagiosuser/.ssh/id_ed25519.pub.
    

    Предупреждение системы безопасности. Ключ SSH без парольной фразы может представлять угрозу безопасности, если он авторизован для полного доступа к узлу. Ограничьте авторизацию этого ключа одной командой только для чтения.

Примечание. Если вы используете дистрибутив Linux, который не поддерживает алгоритм Ed25519, используйте следующую команду:

nagiosuser@nagios:~$ ssh-keygen -t rsa -b 4096
1. Скопируйте закрытый ключ (`id_ed25519`) в домашнюю папку `nagios` и задайте соответствующие права владения.
nagiosuser@nagios:~$ sudo cp .ssh/id_ed25519 /var/lib/nagios/.ssh/
nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_ed25519
  1. Чтобы авторизовать открытый ключ для выполнения только команды ghe-cluster-status -n, используйте префикс command= в файле /data/user/common/authorized_keys. В административной оболочке на любом узле измените этот файл, добавив открытый ключ, созданный на шаге 1. Пример: command="/usr/local/bin/ghe-cluster-status -n" ssh-ed25519 AAAA....

  2. Проверьте и скопируйте конфигурацию на каждый узел в кластере, выполнив команду ghe-cluster-config-apply на узле, где был изменен файл /data/user/common/authorized_keys.

    admin@ghe-data-node-0:~$ ghe-cluster-config-apply
    > Validating configuration
    > ...
    > Finished cluster configuration
    
  3. Чтобы проверить, может ли подключаемый модуль Nagios успешно выполнить команду, запустите ее в интерактивном режиме с узла Nagios.

    nagiosuser@nagios:~$ /usr/lib/nagios/plugins/check_by_ssh -l admin -p 122 -H HOSTNAME -C "ghe-cluster-status -n" -t 30
    > OK - No errors detected
    
  4. Создайте определение команды в конфигурации Nagios.

    Пример определения

    define command {
         command_name    check_ssh_ghe_cluster
         command_line    $USER1$/check_by_ssh -H $HOSTADDRESS$ -C "ghe-cluster-status -n" -l admin -p 122 -t 30
    }
    
  5. Добавьте эту команду в определение службы для узла в кластере GitHub Enterprise Server.

    Пример определения

    define host{
         use                     generic-host
         host_name               ghe-data-node-0
         alias                   ghe-data-node-0
         address                 10.11.17.180
         }
    
    define service{
           use                             generic-service
           host_name                       ghe-data-node-0
           service_description             GitHub Cluster Status
           check_command                   check_ssh_ghe_cluster
           }
    

После добавления определения в Nagios служба проверка выполняется в соответствии с конфигурацией. Вы должны увидеть только что настроенную службу в веб-интерфейсе Nagios.