Zabbix Agent 6.0.33 продолжал завершать работу на Solaris 11.4.

Вопрос или проблема

Примечание 1: Отредактировано, чтобы добавить вывод журнала агента Zabbix в конце сообщения.

Агент Zabbix для Solaris 6.0.33 на Solaris 11.4

Я выполнил шаги установки соответствующим образом. Когда я запускаю службу с помощью команды /usr/bin/zabbix/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf и затем выполняю ps -ef | grep zabbix, показывается, что zabbix_agentd работает в нескольких экземплярах.

Однако, когда я импортировал SMF-манифест ниже и включил службу, она остается в режиме обслуживания. svcadm clear zabbix-agentd затем svcs -l zabbix-agentd причина, указанная в выводе, заключалась в том, что служба перезапускалась слишком быстро.

Я предоставляю SMF-манифест, который использую. Буду признателен, если вы сможете помочь советом, как решить эту проблему.

Дайте знать, если вам нужна какая-либо другая информация от меня. Заранее спасибо.

<?xml version="1.0" ?>
<!DOCTYPE service_bundle
  SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
    Манифест создан с помощью svcbundle (20 февраля 2025, 16:31:49+0800)
-->
<service_bundle name="application/zabbix-agentd" type="manifest">
    <service name="application/zabbix-agentd" version="1" type="service">
        <!--
            Следующая зависимость не позволит нам стартовать до
            достижения рубежа multi-user.
        -->
        <dependency name="multi_user_dependency" grouping="require_all"
            restart_on="none" type="service">
            <service_fmri value="svc:/milestone/multi-user"/>
        </dependency>
        <exec_method name="start" type="method" timeout_seconds="300"
            exec="/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf"
        />
        <!--
            Атрибут exec ниже может быть изменен на команду, которую SMF
            должен выполнить для остановки службы. Используйте svcbundle -s
            stop-method для установки атрибута.
        -->
        <exec_method name="stop" type="method" timeout_seconds="300"
            exec=":kill"/>
        <!--
            Группа свойств duration не нужна.
        -->
        <property_group name="config" type="application">
            <propval name="pidfile" type="astring" value="/var/run/zabbix/zabbix_agentd.pid"/>
        </property_group>
        <instance name="default" enabled="true"/>
        <template>
            <common_name>
                <!--
                    zabbix-agentd
                -->
                <loctext xml:lang="C">
                        application/zabbix-agentd
                </loctext>
            </common_name>
            <description>
                <!--
                    Агент Zabbix для Solaris v6.0.33
                -->
                <loctext xml:lang="C">
                        The application/zabbix-agentd service.
                </loctext>
            </description>
        </template>
    </service>
</service_bundle>

Примечание 1: последние 10 строк журнала агента Zabbix

28241:20250221:211143.324 zbx_setproctitle() title:'collector [processing data]'
 28241:20250221:211143.324 In update_cpustats()
 28241:20250221:211143.325 End of update_cpustats()
 28241:20250221:211143.325 In zbx_kstat_collect()
 28241:20250221:211143.325 vm_index: 1, freemem: 76813709167, updates: 1740143503
 28241:20250221:211143.325 End of zbx_kstat_collect()
 28241:20250221:211143.325 zbx_setproctitle() title:'collector [idle 1 sec]'
 28246:20250221:211143.875 In send_buffer() host:'10.3.16.251' port:10051 entries:0/100
 28246:20250221:211143.875 End of send_buffer():SUCCEED
 28246:20250221:211143.875 zbx_setproctitle() title:'active checks #1 [idle 1 sec]'

Здесь приведена незакомментированная запись для zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogType=file
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=1
DebugLevel=5
Server=10.3.16.251
ServerActive=10.3.16.251
Hostname=Server-A

Ответ или решение

Теория

Zabbix Agent — это программа, используемая для сбора данных с оборудованных узлов и их передачи серверу Zabbix. Zabbix Agent 6.0.33 разработан для работы на различных операционных системах, включая Solaris. Важной частью конфигурации Zabbix Agent на таких системах является правильная настройка сервиса через SMF (Service Management Facility), которая позволяет управлять службами операционной системы Solaris.

Проблема, с которой вы столкнулись, заключается в том, что Zabbix Agent уходит в режим обслуживания (maintenance mode) при его запуске через SMF, что может говорить о проблемах с конфигурацией либо с запуском службы через SMF. Эта ситуация может возникнуть по различным причинам, включая неправильное задание путей, ошибки в манифесте SMF, или проблемы с правами доступа.

Пример

На основе предоставленного манифеста SMF и конфигурационного файла zabbix_agentd.conf, мы видим, что структура манифеста обеспечивает базовую функциональность для исполнения агента, включая зависимости от milestone multi-user. Проблема проявляется в том, что сервис быстро перезагружается из-за ошибки в манифесте или конфигурации.

Последние строки из лога Zabbix Agent показывают, что агент завершает операции сбора данных и отправки буфера на сервер успешно, но это может быть ложноположительным результатом, так как процесс может завершаться после записи.

Применение

Для решения этой проблемы необходимо провести несколько шагов диагностики и корректировки:

  1. Проверка корректности путей и прав доступа:

    • Убедитесь, что указанные в манифесте SMF и файле конфигурации пути корректны. Это касается файлов конфигурации, логов, PID-файлов и исполнительного файла zabbix_agentd.
    • Проверьте права доступа на исполняемые файлы и директории. Убедитесь, что пользователь, под которым запускается Zabbix Agent, имеет необходимые права для чтения, записи и выполнения.
  2. Анализ лога Zabbix Agent:

    • Проверьте файлы журнала Zabbix Agent для обнаружения ошибок, которые могут быть упущены. Убедитесь, что уровень отладки (DebugLevel) установлен на высокий (например, 5), чтобы гарантировать максимально подробное логирование.
  3. Исправление манифеста SMF:

    • Убедитесь в корректности конфигурации в вашем SMF манифесте. Ошибки в тэге exec_method могут привести к неработоспособности сервиса. Может быть полезным удлинить тайм-аут для старта, если процесс исполняется длительное время.
    • Рассмотрите возможность включения дополнительных опций отладки в атрибут exec_method.
  4. Тестирование и валидация:

    • Запустите агент вручную, используя ту же команду, что и в SMF манифесте, и наблюдайте за его выполнением.
    • Убедитесь, что после ручного старта агент работает стабильно в течение длительного времени.
    • Используйте svcadm refresh <service-name> и svcadm enable <service-name>, чтобы убедиться в корректных попытках перезапуска службы после изменения конфигурации.
  5. Консультация с документацией и сообществом:

    • Ознакомьтесь с официальной документацией Zabbix для версий, совместимых с Solaris, чтобы убедиться в корректности всех применяемых настроек.
    • Если проблема продолжает проявляться, обратитесь за помощью на форумы Zabbix или специализированные ресурсы/группы, где могут предоставить специфическую помощь для вашей версии ОС и агента.

Успешное выполнение всех вышеперечисленных действий должно позволить устранить проблему и запустить Zabbix Agent в полноценном рабочем режиме через SMF.

Оцените материал
Добавить комментарий

Капча загружается...