«Тонкий клиент или создаем PXE Boot из LTSP» и «Zabbix»: разница между страницами

Материал из support.qbpro.ru
(Различия между страницами)
imported>Vix
Нет описания правки
 
imported>Vix
 
Строка 1: Строка 1:
'''ПОЭТАПНОЕ РУКОВОДСТВО ПО УСТАНОВКЕ И НАСТРОЙКЕ ТОНКОГО КЛИЕНТА НА ПЛАТФОРМЕ Linux Debian Squeeze '''
[[Файл:Zabbix2.png]]
<hr>
== Установка и настройка ==
'''''- Система Debian Jessie (8)'''''
 
* '''устанавливаем postgresql''', читать тут [[PostgreSQL]]


*И так, собрав в кучу все имеющееся руководство по настройке "тонкого" клиента и перебрав всевозможные
* '''устанавливаем необходимые пакеты:'''
варианты и решения, рассмотрим задачу по созданию универсального образа или точнее платформы, на которой
echo "deb-src http://repo.zabbix.com/zabbix/3.4/debian stretch main" > /etc/apt/sources.list.d/zabbix.list
можно создавать те или иные решения, с применением безопасных технологий.
wget -O - "http://repo.zabbix.com/zabbix-official-repo.key" | apt-key add -
*Применительно к ситуации, создадим "тонкого" клиента, с возможностью обслуживания разделов жесткого диска,
wget -O - "https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-79EA5ED4" | apt-key add -
в частности с возможностью сохранения или восстановления образов партиций NTFS по сети.
wget -O - "https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-A14FE591" | apt-key add -
*'''Далее по порядку''':
  wget -O - "https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-A14FE591-EL5" | apt-key add -
1. Устанавливаем необходимые пакеты:
  apt-get install isc-dhcp-server tftpd-hpa ltsp-server nfs-common nfs-kernel-server


* рекомендуется после установки запустить программу aptitude и до установить требуемые пакеты, если есть такой запрос...
apt-get update
* при установке сервера tftpd-hpa он будет просить вас указать каталог где будет "платформа", согласитесь по умолчанию /srv/tftp или /opt/ltsp, все равно потом это будем менять..
apt-get install zabbix-agent zabbix-frontend-php zabbix-proxy-pgsql zabbix-server-pgsql php-fpm nginx


2. '''Теперь настраиваем сервер DHCP''':
* '''создаем администратора базы zabbix'''
*предположим что наша сеть такая:
  CREATE USER zabbixadmin WITH PASSWORD 'mypassword';
  root@debvbox:~#cat /etc/network/interfaces


# The loopback network interface
* '''создаем базу данных для zabbix'''
auto lo
  CREATE DATABASE "zabbix"
iface lo inet loopback
  WITH OWNER "zabbixadmin"
   
  ENCODING 'UTF8'
# The primary network interface
  LC_COLLATE = 'ru_RU.UTF-8'
auto eth0
  LC_CTYPE = 'ru_RU.UTF-8';
iface eth0 inet static
        address 10.10.5.1
        netmask 255.255.255.0
        network 10.10.5.0
        broadcast 10.10.5.255
        gateway 10.10.5.1
        dns-nameservers 10.10.5.1


*Исходя из этих данных настраиваем наш dhcp сервер:
* '''даем права на базу администратору'''
   
  GRANT ALL PRIVILEGES ON DATABASE "zabbix" to zabbixadmin;
root@debvbox:~# cat /etc/dhcp/dhcpd.conf


ddns-update-style none;
* '''теперь необходимо в эту базу загрузить шаблоны и схему (для postgresql)'''
   
  zcat /usr/share/zabbix-server-pgsql/{schema,images,data}.sql.gz|psql -h 127.0.0.1 zabbix zabbixadmin
default-lease-time 259200;
'''{!}''' - для версии 3.4:
max-lease-time 518400;
zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz|psql -h 127.0.0.1 zabbix zabbixadmin
authoritative;
log-facility local7;
  #параметры настроек сети которые будет получать клиент..
shared-network debvbox {
    option nis-domain                  "debvbox";
    option domain-name                  "debvbox";
    option domain-name-servers          10.10.5.1;
   
    subnet 10.10.5.0 netmask 255.255.255.0 {
    #range 10.10.5.50 10.10.5.60;
    option routers                      10.10.5.1;
    option subnet-mask                  255.255.255.0;
    option broadcast-address            10.10.5.255;
    option time-offset                  -5;    # Eastern Standard Time
    }
########################MAC ADDDRESS ALL################# 
# здесь прописываем нашего будущего клиента, его мак адрес и.т.д.
    host vclient {
    option host-name "vclient";
    hardware ethernet 08:00:27:35:BA:D9;
    fixed-address 10.10.5.65;
# этот параметр говорит какой образ загрузчика брать.. об этом дальше..
    filename "pxelinux.0";
    }
* теперь прописываем какой интерфейс будет слушать сервер dhcp
root@debvbox:~# cat /etc/default/isc-dhcp-server


# Defaults for dhcp initscript
* '''настраиваем php-fpm'''
  # sourced by /etc/init.d/dhcp
  cat /etc/php5/fpm/pool.d/www.conf
  # installed at /etc/default/isc-dhcp-server by the maintainer scripts
....
   
  ;listen = /var/run/php5-fpm.sock
#
  listen = 127.0.0.1:9000
# This is a POSIX shell fragment
#
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#      Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"
   
   
* в данном случае как видно это интерфейс - eth0
....
* теперь перезапускаем сервер dhcp и на этом настройка первого этапа закончена.
root@debvbox:~# /etc/init.d/isc-dhcp-server restart
   
   
  Stopping ISC DHCP server: dhcpd.
  cat /etc/php5/fpm/php.ini
  Starting ISC DHCP server: dhcpd.
  ....
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,<br>pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,<br>pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
....
date.timezone = Europe/Moscow
....
max_execution_time = 300
....
post_max_size = 16M
....
always_populate_raw_post_data = -1
....


3. '''Настройка сервера TFTP - HPA'''
* '''(!)''' - возможно '''zabbix''' при первом запуске еще что-то попросит, измените как будет указано.
* создаем каталог, где будет наша будущая система клиента в окружении chroot
root@debvbox:~#mkdir /ltsp


* прописываем для сервера tftp-hpa где будет наша "платформа"
* '''nginx''' - пример наcтройки для '''zabbix''':
root@debvbox:~#cat /etc/default/tftpd-hpa


# /etc/default/tftpd-hpa
  server {
    listen      10.0.1.40:88;
    server_name zabbix;
    root /home/www/zabbix;
    location / {
        index  index.html index.php;
    }
   
   
TFTP_USERNAME="tftp"
     location ~* \.(gif|jpg|png)$ {
TFTP_DIRECTORY="/ltsp/boot/"
        expires 30d;
TFTP_ADDRESS="0.0.0.0:69"
    }
TFTP_OPTIONS="--secure"
* перезапускаем сервер tftp-hpa
root@debvbox:/etc# /etc/init.d/tftpd-hpa restart
 
Restarting HPA's tftpd: in.tftpd.
 
Проверяем:
netstat -lnp | grep :69
 
udp        0     0 0.0.0.0:69              0.0.0.0:*                          16665/in.tftpd
 
 
 
4. '''Настройка сервера LTSP'''
*Корневая файловая система, которую будут использовать клиенты, находится в каталоге /ltsp. Она должна быть доступна через NFS. Настраивается все это через конфиг /etc/exports
* прописываем настройки для сервера nfs-kernel, nfs-common
root@debvbox:/etc# cat /etc/exports
 
# /etc/exports: the access control list for filesystems which may be exported
#              to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes      hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
## первый каталог - это система и он в режиме только чтение...
/ltsp/                  *(ro,no_root_squash,async,no_subtree_check)
## второй - это домашняя папка пользователя, и он доступен уже на запись...
/ltsp/home/user/        *(rw,no_root_squash,async,no_subtree_check)
 
Проверяем:
showmount -e
   
   
  Export list for  nzip:                                                                                                                                      
    location ~ \.php$ {
/home/ltsp/home/user/  *                                                                                                                                     
        fastcgi_pass localhost:9000;
  /home/ltsp/          *
        fastcgi_param SCRIPT_FILENAME
                      $document_root$fastcgi_script_name;
        include      fastcgi_params;
    }
  }


* теперь создаем корневую систему для пользователя:
=='''Полезные советы'''==
  root@debvbox:~# cd /ltsp
* '''Проблема:''' Триггер с элементом vm.memory.size
  root@debvbox:~# ltsp-build-client --arch i386 --dist squeeze --mirror http://ftp.ru.debian.org/debian/ squeeze main
  Пытаюсь мониторить переполнение RAM (если меньше 10% свободной RAM в течении 5 минут) и создаю триггер:
  .
  {hostname:vm.memory.size[available].last(5m)}<10
.
  Однако ничего не происходит.
invoke-rc.d nfs-kernel-server reload
info: LTSP client installation completed successfully


* заходим в режиме chroot в каталог /ltsp
* '''Решение:'''
  root@debvbox:~# chroot /ltsp
Вам для вашей задачи лучше использовать функцию max()
root@debvbox:~/#
  {hostname:vm.memory.size[pavailable].max(5m)}<10
* [https://www.zabbix.com/forum/in-russian/46020-%D0%A2%D1%80%D0%B8%D0%B3%D0%B3%D0%B5%D1%80-%D1%81-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%BC-vm-memory-size источник]
  '''Пример:''' {Zabbix server:vm.memory.size[available].max(5m)}<10
<hr>


* сразу добавляем пользователя который будет работать..
* '''Проблема:''' Если постоянно выскакивает предупреждение на триггер Disk I/O is overloaded on
  root@debvbox:~/# adduser user
  {Zabbix server:system.cpu.util[,iowait].last(0)}>20
  .
  Получается, что ожидает операции ввода.вывода более 20 сек ?
  .
successfully


* до устанавливаем необходимые пакеты для работы клиентов..
* '''Решение:''' Cоветую увеличить интервал и также путем увелечинеия памяти!
  root@debvbox:~/# apt-get install sudo ntfs-3g ntfsprogs
  [https://www.zabbix.com/forum/zabbix-help/36397-disk-i-o-is-overloaded-on-zabbix-server/page2?t=44382&highlight=Disk+I/O+overloaded&page=2 Вот здесь совет]
Пример: {Zabbix server:system.cpu.util[,iowait].avg(5m)}>30
<hr>


* выходим из режима chroot
* '''Проблема:''' Zabbix discoverer processes more than 75% busy
  exit
 
  root@debvbox:~#
* '''Решение:''' Этот процесс используется при обнаружении устройств в сети.
Проверьте и в случае необходимости, подправьте настройки правил обнаружения или увеличьте количество процессов которые
занимаются обнаружением новых устройств (параметр StartDiscoverers в конфиг файле zabbix сервера).
К пингу этот процесс и триггер отношения не имеют.
  Если не нужен, то и не запускайте обнаружения. Если нужен, то поставьте 2. Посмотрите на графике динамику изменения.
  Если всё равно нагрузка будет большая, поставьте 3. Ну и так далее.
<hr>


* прописываем права пользователя user в sudo и group в каталоге среды /ltsp/etc
* Проблема: zabbix win 7  cannot make counterpath for "\\": [0xC0000BBD] Обязательный аргумент пропущен или указан неправильно.
* теперь нам необходимо настроить загрузку нашего тонкого клиента, чтоб он мог по умолчанию через 15 секунд загружать систему с жесткого диска или выбрав нижнее меню, загрузить уже нашу среду и провести восстановление системы у себя с помощью ntfsclon
* Решение:
cmd
lodctr /r
* взято [https://serveradmin.ru/zabbix-init_cpu_collector-cannot-make-counterpath/ тут]


root@debvbox:/ltsp# cat /ltsp/boot/pxelinux.cfg/default


TIMEOUT 60
PROMPT 0
DEFAULT menu.c32
MENU TITLE BOOT_MENU
MENU COLOR unsel 37;40
MENU COLOR sel 30;47
MENU COLOR border 37;40
MENU COLOR title 37;40
MENU COLOR hotkey 36;40
MENU COLOR tabmsg 36;40
MENU TABMSG Brought to you by Blue Light.
MENU AUTOBOOT
#
#
label WINDOWS
localboot 0
#
label SYSTEM_RECOVERY
kernel vmlinuz
APPEND ro initrd=initrd.img quiet root=/dev/nfs ip=dhcp boot=nfs nfsroot=10.10.5.1:/ltsp/ ramdisk=8192
* для корректной работы загрузчика скопируем необходимую библиотеку..
cp /ltsp/usr/lib/syslinux/menu.c32 /ltsp/boot/menu.c32
* перезапускаем сервер tftp-hpa
root@debvbox:/etc# /etc/init.d/tftpd-hpa restart
Restarting HPA's tftpd: in.tftpd.
* пробуем загрузится "тонким" клиентом
* [https://habrahabr.ru/post/277783/ полезное...]
<hr>
<hr>
* [https://habr.com/ru/company/serverclub/blog/250549/ Загрузочный сервер — как загрузочная флешка, только сервер и по сети]
'''ИСТОЧНИКИ:'''
<hr>
* [https://serveradmin.ru/ustanovka-i-nastroyka-zabbix-3-4-na-debian-9/#_Zabbix_34_Debian_9 Установка сервера Zabbix 3.4 на Debian 9]
* [https://blog.vpsville.ru/blog/pro/61.html Установка службы Zabbix - агент на Windows сервер.]
* [http://jakondo.ru/ustanovka-i-nastrojka-zabbix-agentov-na-os-windows-i-linux-ubuntu-debian/ Установка и настройка Zabbix агентов на ОС Windows и Linux (Ubuntu, Debian)]
* [http://www.ekzorchik.ru/2015/01/install-zabbix-agent-on-windows-7/ Установить Zabbix агент на Windows 7]
* [http://www.ekzorchik.ru/2015/01/how-to-install-zabbix-agent-on-windows-xp/ Как установить Zabbix агент на Windows XP]
* [http://www.suiviperf.com/zabbix/ '''ZABBIX AGENT installers''']
* [https://www.zabbix.com/documentation/3.0/ru/manual/quickstart/notification Получение оповещения о проблеме]
* [https://serveradmin.ru/nastroyka-email-opoveshheniy-v-zabbix/ Отправка email уведомлений в zabbix 2.4]
* [https://habrahabr.ru/company/zabbix/blog/193472/ Zabbix тюнинг]
* [http://blog.files.dp.ua/zabbix-trigger Решение проблем с триггерами processes more than 75% busy]
* [http://linux-notes.org/optimizatsiya-nastroek-zabbix/ Оптимизация настроек Zabbix]

Версия от 05:12, 17 сентября 2018

Zabbix2.png


Установка и настройка

- Система Debian Jessie (8)

  • устанавливаем postgresql, читать тут PostgreSQL
  • устанавливаем необходимые пакеты:
echo "deb-src http://repo.zabbix.com/zabbix/3.4/debian stretch main" > /etc/apt/sources.list.d/zabbix.list
wget -O - "http://repo.zabbix.com/zabbix-official-repo.key" | apt-key add -
wget -O - "https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-79EA5ED4" | apt-key add -
wget -O - "https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-A14FE591" | apt-key add -
wget -O - "https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-A14FE591-EL5" | apt-key add -
apt-get update
apt-get install zabbix-agent zabbix-frontend-php zabbix-proxy-pgsql zabbix-server-pgsql php-fpm nginx
  • создаем администратора базы zabbix
CREATE USER zabbixadmin WITH PASSWORD 'mypassword';
  • создаем базу данных для zabbix
CREATE DATABASE "zabbix"
 WITH OWNER "zabbixadmin"
 ENCODING 'UTF8'
 LC_COLLATE = 'ru_RU.UTF-8'
 LC_CTYPE = 'ru_RU.UTF-8';
  • даем права на базу администратору
GRANT ALL PRIVILEGES ON DATABASE "zabbix" to zabbixadmin;
  • теперь необходимо в эту базу загрузить шаблоны и схему (для postgresql)
zcat /usr/share/zabbix-server-pgsql/{schema,images,data}.sql.gz|psql -h 127.0.0.1 zabbix zabbixadmin

{!} - для версии 3.4:

zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz|psql -h 127.0.0.1 zabbix zabbixadmin
  • настраиваем php-fpm
cat /etc/php5/fpm/pool.d/www.conf
....
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000

....

cat /etc/php5/fpm/php.ini
....
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,
pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,
pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, .... date.timezone = Europe/Moscow .... max_execution_time = 300 .... post_max_size = 16M .... always_populate_raw_post_data = -1 ....
  • (!) - возможно zabbix при первом запуске еще что-то попросит, измените как будет указано.
  • nginx - пример наcтройки для zabbix:
 server {
    listen      10.0.1.40:88;
    server_name zabbix;
    root /home/www/zabbix;
    location / {
        index   index.html index.php;
    }

    location ~* \.(gif|jpg|png)$ {
        expires 30d;
    }

    location ~ \.php$ {
        fastcgi_pass  localhost:9000;
        fastcgi_param SCRIPT_FILENAME
                      $document_root$fastcgi_script_name;
        include       fastcgi_params;
    } 
}

Полезные советы

  • Проблема: Триггер с элементом vm.memory.size
Пытаюсь мониторить переполнение RAM (если меньше 10% свободной RAM в течении 5 минут) и создаю триггер:
{hostname:vm.memory.size[available].last(5m)}<10
Однако ничего не происходит.
  • Решение:
Вам для вашей задачи лучше использовать функцию max()
{hostname:vm.memory.size[pavailable].max(5m)}<10
 Пример: {Zabbix server:vm.memory.size[available].max(5m)}<10

  • Проблема: Если постоянно выскакивает предупреждение на триггер Disk I/O is overloaded on
{Zabbix server:system.cpu.util[,iowait].last(0)}>20
Получается, что ожидает операции ввода.вывода более 20 сек ?
  • Решение: Cоветую увеличить интервал и также путем увелечинеия памяти!
Вот здесь совет
Пример: {Zabbix server:system.cpu.util[,iowait].avg(5m)}>30

  • Проблема: Zabbix discoverer processes more than 75% busy
  • Решение: Этот процесс используется при обнаружении устройств в сети.
Проверьте и в случае необходимости, подправьте настройки правил обнаружения или увеличьте количество процессов которые
занимаются обнаружением новых устройств (параметр StartDiscoverers в конфиг файле zabbix сервера).
К пингу этот процесс и триггер отношения не имеют.
Если не нужен, то и не запускайте обнаружения. Если нужен, то поставьте 2. Посмотрите на графике динамику изменения.
Если всё равно нагрузка будет большая, поставьте 3. Ну и так далее.

  • Проблема: zabbix win 7 cannot make counterpath for "\\": [0xC0000BBD] Обязательный аргумент пропущен или указан неправильно.
  • Решение:
cmd
lodctr /r



ИСТОЧНИКИ: