Solaris OpenIndiana установка и настройка Zabbix агента

Создадим директорию
# mkdir zabbix-agent && cd zabbix-agent

Скачаем и распакуем необходимую версию агента http://www.zabbix.com/download.php
# tar xvf zabbix_agent*

Скопируем бинарные файлы в соответствующие директории
# cp bin/zabbix_* /usr/bin/
# cp sbin/zabbix* /usr/sbin/

Добавим пользователя и группу
# groupadd -g 122 zabbix
# useradd -c 'Zabbix' -d / -g zabbix -s /usr/bin/false zabbix

Создадим скрипт запуска/остановки агента
cat << 'EOF' > /etc/init.d/zabbix_agentd
#!/bin/sh
  CONFIG=/etc/zabbix/zabbix_agentd.conf
  DAEMON=/usr/sbin/zabbix_agentd
  PIDDIR=/var/run/zabbix
  PID=/var/run/zabbix/zabbix_agentd.pid
  case "$1" in
          start)
                if [ ! -d $PIDDIR ]; then
                        mkdir $PIDDIR
                fi
                chown zabbix:sys $PIDDIR

                  if [ -f $CONFIG -a -f $DAEMON ]; then
                          echo 'Starting zabbix_agentd.'
                          $DAEMON -c $CONFIG
                  fi
                  ;;
          stop)
                  echo 'Stopping zabbix_agentd.'
                  kill -TERM $ cat $PID
                  ;;
          restart)
                  $0 stop
                  sleep 3
                  $0 start
                  ;;
          *)
                  echo "Usage: $0 { start | stop | restart }"
                  exit 1
                  ;;
  esac
EOF

Определим владельца и права на скрипт, создадим ссылку
# chown root:sys /etc/init.d/zabbix_agentd
# chmod 744 /etc/init.d/zabbix_agentd
# ln -s /etc/init.d/zabbix_agentd /etc/rc3.d/S99zabbix_agentd

Создадим директорию и конфигурационный файл со следующими настройками
# mkdir -p /etc/zabbix/conf.d

# cat << EOF >/etc/zabbix/zabbix_agentd.conf
Hostname=agent_hostname # hostname zabbix agent
Server=192.168.1.1 # IP zabbix server
Include=/etc/zabbix/conf.d/
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix_agentd.log
LogFileSize=100
Timeout=30
EOF

Создадим pid файл и журналы
# mkdir -p /var/run/zabbix && chown zabbix:zabbix /var/run/zabbix
# touch /var/log/zabbix_agentd.log && chown zabbix:zabbix /var/log/zabbix_agentd.log

Запускаем агента
# /etc/init.d/zabbix_agentd start

После установки агента, небходимо добавить его на сервере.
Настройка -> Узлы сети -> Создать узел сети.
Имя узла сети должно совпадать с параметром Hostname= в файле настроек агента.

Solaris OpenIndiana использование утилиты truss

Утилита truss используется для отслеживания системных вызовов и сигналов различных процессов
операционной системы.

Использование без ключей
# truss /usr/lib/ssh/sshd

Основные ключи
-p <PID> утилита подключается к процессу по pid
-o outfile запись результатов работы в файл
-c вывод информации в виде сводки
-a отображаются строки аргументов, которые передаются в каждом exec() системном вызове
-d устанавливается отметка времени для каждой строки вывода трассировки
-e отображаются строки окружения, которые передаются в каждом exec() системном вызове
-i прерываемые и sleeping вызовы не отображаются
-t определение системных вызовов, которые будут участвовать в трассировке
-s определение сигналов, которые будут участвовать в трассировке
-f включается трассировка дочерних процессов порожденных вызовами fork() vfork()

Сбор информации о процессе с PID 1380 в файл sshd.output
# truss  -o /var/tmp/sshd.output -p 1380

Отображение трассировки read, write системных вызовов
# truss -c -t read,write /usr/sbin/ping 10.10.10.111
10.10.10.111 is alive

syscall               seconds   calls  errors
read                     .000       9
write                    .000       1
                     --------  ------   ----
sys totals:              .000      10      0
usr time:                .000
elapsed:                 .010

Пример трассировки с ключом -f
# truss -f -o /var/tmp/useradd.out /usr/sbin/useradd -m -d /export/home/usr usr
# more  /var/tmp/useradd.out | grep fork
1612:   fork1()                                         = 1613
1613:   fork1()         (returning as child ...)        = 1612

Пример Ошибок в вызовах при попытке размонтирования файловой системы занятой процесамми
# truss  -t  read,write,open umount /fz
open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
open("/lib/libc.so.1", O_RDONLY)                = 3
open("/etc/mnttab", O_RDONLY)                 = 3
umountwrite(2, " u m o u n t", 6)                   = 6
: write(2, " :  ", 2)                            = 2
/fzwrite(2, " / f z", 3)                     = 3
 busy
write(2, "   b u s y\n", 6)                = 6

Документацию по системным вызовам для Solaris  можно найти на docs.oracle.com

Дополнительная информация