Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Домашняя Zabbix Инсталляция и настройка Zabbix на FreeBSD 7.2

Инсталляция и настройка Zabbix на FreeBSD 7.2

Решил написать статью по инсталяции и настройке Zabbix на FreeBSD 7.2
Возможно кому-то пригодится. Причем инсталируем на чистую операционную систему,
с наложением патчей безопасности. Ядро-стандартное (Generic).
Начнем с обновления портов. Ставим cvsup-without-gui для обновления портов и установки  патчей безопасности. Рекомендую изучить мануал zabbix.

Примечание:

1.В подверсиях Zabbix-1.6.X иконки имеют расширение Jpeg  а не PNG. (Иконки PNG не загружаются).
2. При инсталяции ставится  программа  PNG 1.2.X   и инсталяция прерывается.
Решается тем что, сразу после обновления, небходимо поставить порт 
/usr/ports/graphics/png  до инсталяции других портов.
 
Ставим cvsup-without-gui для обновления портов и src. 
Ставим cvsup-without-gui. Интернет должем быть подключен!!!
ivcshop# cd /usr/ports/
ivcshop# cd net/cvsup-without-gui/
ivcshop# make
ivcshop# make install
ivcshop# rehash 
Копируем конфигурационные файлы CVSUP  в /etc.
ports-supfile -  служит для обновления портов
standard-supfile - для наложения патчей на ОС.
Переходить на  FreeBSD 8.0 -  не будем.
cd /usr/share/examples/cvsup/
Копируем шаблонные файлы ports-supfile и standard-supfile в /etc  для правки.
ivcshop# cp ports-supfile /etc/
ivcshop# cp standard-supfile /etc/

Правим standard-supfile.
ivcshop# ee /etc/standard-supfile

 

В standard-supfile должно быть описано следующее:
//////////////////
*default host=cvsup2.ru.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7_2
*default delete use-rel-suffix
src-all
//////////////////
Обновляем src  используя /etc/standard-supfile.
ivcshop#  cvsup -g -L 2 /etc/standard-supfile

Правим ports-supfile
ivcshop# ee /etc/ports-supfile
Должно быть описано следующее :
\\\\\\\\\\\\\\\\\\
*default host=cvsup2.ru.FreeBSD.org
\\\\\\\\\\\\\\\\\\\

Обновляем порты:
ivcshop#  cvsup -g -L 2 /etc/ports-supfile
Обновляем src для патчей:
ivcshop# cd /usr/src/
Собираем мир:
ivcshop# make buildworld
Собираем ядро:
ivcshop# make buildkernel
Инсталлируем ядро:
ivcshop# make installkernel

ivcshop# shutdown -r now
После перезагрузки выбираем в загрузочном меню:
**BOOT FreeBSD in single user mode

Монтируем :
ivcshop#mount -u /
ivcshop#mount -a -t ufs
ivcshop#swapon -a

Запускаем mergemaster для сбора данных.
ivcshop#mergemaster -p
Инсталлируем мир:
ivcshop#cd /usr/src
ivcshop# make installworld

Сравниваем изменения в конфигурационных файлах:
ivcshop#mergemaster
В данном случае нажимаем на все вопросы "d",т.к. изменений в конфигурационных файлах нет.

Наконец-то перезагружаемся:
ivcshop#reboot
С патчами и портами все.

Теперь поставим MySQl:
ivcshop# cd /usr/ports/databases/mysql51-server/
ivcshop# make WITH_XCHARSET=all
ivcshop# make install
Создаем конфигурационный файл my.cnf для MySQL
ivcshop#cp /usr/local/share/mysql/my-small.cnf  /etc/my.cnf

Редактируем /etc/rc.conf
ivcshop# ee /etc/rc.conf
Пишем строку: mysql_enable="YES"

Запускаем
ivcshop# /usr/local/etc/rc.d/mysql-server start
А запустился ли ?
ivcshop# ps -ax | grep mysql
72567  v0  S      0:00.01 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-f
72618  v0  S      0:00.15 /usr/local/libexec/mysqld --defaults-extra-file=/var/
72620  v0  R+     0:00.00 grep mysql

Назначаем пароль для  root MySQL
ivcshop# mysqladmin -u root password 12345
Проверяем можем ли зайти под  root MySql:
ivcshop# mysql -uroot -p
Enter password:

Ищем и удаляем библиотеку libtool-1.X (инсталится по умолчанию), иначе Apache2.2  не встанет.
ivcshop# pkg_info  | less

Находим libtool-1.X и удаляем:
ivcshop# pkg_delete libtool-1.5.26
Ставим libtool22  для Apache2.2:
ivcshop# cd /usr/ports/devel/libtool22/
ivcshop# make
ivcshop# make install
Ставим apache22:
ivcshop# cd /usr/ports/www/apache22
ivcshop# make
Во вкладке выбираем mod_mysql. Остальное по Вашему усмотрению.
ivcshop# make install
Добавляем строку: apache22_enable="YES" в /etc/rc.conf.

Ставим PHP5
ivcshop# cd /usr/ports/lang/php5
ivcshop# make
У меня выбраны следующие опции:
   Options for php5 5.2.11_1                     
     і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і
     і і[X] CLI        Build CLI version                                і і
     і і[X] CGI        Build CGI version                                і і
     і і[X] APACHE     Build Apache module                              і і
     і і[ ] DEBUG      Enable debug                                     і і
     і і[X] SUHOSIN    Enable Suhosin protection system (not for jails) і і
     і і[X] MULTIBYTE  Enable zend multibyte support                    і і
     і і[ ] IPV6       Enable ipv6 support                              і і
     і і[X] MAILHEAD   Enable mail header patch                         і і
     і і[X] REDIRECT   Enable force-cgi-redirect support (CGI only)     і і
     і і[X] DISCARD    Enable discard-path support (CGI only)           і і
     і і[X] FASTCGI    Enable fastcgi support (CGI only)                і і
     і і[X] PATHINFO   Enable path-info-check support (CGI only) 

ivcshop# make install
Видим следующее:

***************************************************************

Make sure index.php is part of your DirectoryIndex.

You should add the following to your Apache configuration file:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

***************************************************************

Правим конфигурационный файл Apache:
ivcshop# ee /usr/local/etc/apache22/httpd.conf
  Ищем строку <IfModule dir_module> и под ней пишем: DirectoryIndex index.php index.html.
Т.е. должно быть так:

<IfModule dir_module>
    DirectoryIndex index.php index.html

 
Ищем строку <IfModule mime_module>, под ней пишем: AddType application/x-httpd-php .php
и AddType application/x-httpd-php-source .phps
Т.е. должно быть так:
<IfModule mime_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

Ставим расширения под PHP5:

ivcshop#cd /usr/ports/lang/php5-extensions/
ivcshop#make
Options for php5-extensions 1.3                     і
     і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і
     і і   [X] BCMATH      bc style precision math functions            і і
     і і   [X] BZ2         bzip2 library support                        і і
     і і   [X] CALENDAR    calendar conversion support                  і і
     і і   [X] CTYPE       ctype functions                              і і
     і і   [X] CURL        CURL support                                 і і
     і і   [X] DBA         dba support                                  і і
     і і   [ ] DBASE       dBase library support                        і і
     і і   [X] DOM         DOM support                                  і і
     і і   [X] EXIF        EXIF support                                 і і
     і і   [X] FILEINFO    fileinfo support                             і і
     і і   [X] FILTER      input filter support                         і і
     і і   [ ] FRIBIDI     FriBidi support                              і і
     і і   [X] FTP         FTP support                                  і і
     і і   [X] GD          GD library support                           і і
     і і   [X] GETTEXT     gettext library support 
     [X] GMP         GNU MP support                                     і і
     і і   [X] HASH        HASH Message Digest Framework                і і
     і і   [X] ICONV       iconv support                                і і
     і і   [X] IMAP        IMAP support                                 і і
     і і   [ ] INTERBASE   Interbase 6 database support (Firebird)      і і
     і і   [X] JSON        JavaScript Object Serialization support      і і
     і і   [ ] LDAP        OpenLDAP support                             і і
     і і   [X] MBSTRING    multibyte string support                     і і
     і і   [ ] MCRYPT      Encryption support                           і і
     і і   [ ] MHASH       Crypto-hashing support                       і і
     і і   [X] MING        ming shockwave flash support                 і і
     і і   [ ] MSSQL       MS-SQL database support                      і і
     і і   [X] MYSQL       MySQL database support                       і і
     і і   [ ] MYSQLI      MySQLi database support                      і і
     і і   [X] NCURSES     ncurses support (CLI only)  
     [ ] ODBC        unixODBC support                                   і і
     і і   [X] OPENSSL     OpenSSL support                              і і
     і і   [X] PCNTL       pcntl support (CLI only)                     і і
     і і   [X] PCRE        Perl Compatible Regular Expression support   і і
     і і   [X] PDF         PDFlib support (implies GD)                  і і
     і і   [X] PDO         PHP Data Objects Interface (PDO)             і і
     і і   [X] PDO_SQLITE  PDO sqlite driver                            і і
     і і   [ ] PGSQL       PostgreSQL database support                  і і
     і і   [X] POSIX       POSIX-like functions                         і і
     і і   [X] PSPELL      pspell support                               і і
     і і   [ ] READLINE    readline support (CLI only)                  і і
     і і   [ ] RECODE      recode support                               і і
     і і   [X] SESSION     session support                              і і
     і і   [ ] SHMOP       shmop support                                і і
     і і   [X] SIMPLEXML   simplexml support    
     [ ] SNMP        SNMP support                                 і і
     і і   [X] SOAP        SOAP support                                 і і
     і і   [X] SOCKETS     sockets support                              і і
     і і   [X] SPL         Standard PHP Library                         і і
     і і   [ ] SQLITE      sqlite support                               і і
     і і   [ ] SYBASE_CT   Sybase database support                      і і
     і і   [ ] SYSVMSG     System V message support                     і і
     і і   [ ] SYSVSEM     System V semaphore support                   і і
     і і   [ ] SYSVSHM     System V shared memory support               і і
     і і   [X] TIDY        TIDY support                                 і і
     і і   [X] TOKENIZER   tokenizer support                            і і
     і і   [ ] WDDX        WDDX support (implies XML)                   і і
     і і   [X] XML         XML support                                  і і
          [X] XMLREADER   XMLReader support                            і і
     і і   [X] XMLRPC      XMLRPC-EPI support                           і і
     і і   [X] XMLWRITER   XMLWriter support                            і і
     і і   [X] XSL         XSL support (Implies DOM)                    і і
     і і   [X] YAZ         YAZ support (ANSI/NISO Z39.50)               і і
     і і   [X] ZIP         ZIP support                                  і і
     і і   [X] ZLIB        ZLIB support        

ivcshop# make install
Создаем конфигурационный файл php.ini
ivcshop#cp /usr/local/etc/ php . ini -recommended   /usr/local/etc/ php . ini  

Приступаем к настройке Zabbix.

Переходим в порт Zabbix.
cd /usr/ports/net-mgmt/zabbix-server/

ivcshop#make
Обязательно отмечаем MYSQL и FPING. Выбираем JABBER, если хотим получать уведомления  по JABBER. Мне этого не нужно.

     ??????????????????????????????????????????????????????????????????????
     ?                 Options for zabbix-server 1.6,4                    ?
     ? ?????????????????????????????????????????????????????????????????? ?
     ? ?         [X] MYSQL   Use MySQL backend                          ? ?
     ? ?         [ ] PGSQL   Use PostgreSQL backend                     ? ?
     ? ?         [ ] SQLITE  Use SQLite backend                         ? ?
     ? ?         [ ] IPV6    Support for IPv6                           ? ?
     ? ?         [ ] LDAP    Support for checking LDAP servers          ? ?
     ? ?         [ ] JABBER  Use jabber media type                      ? ?
     ? ?         [X] FPING   Use fping for pinging hosts                ? ?
      ??????????????????????????????????????????????????????????????????????
     ?                       [  OK  ]       Cancel                        ?
     ??????????????????????????????????????????????????????????????????????
  
 За ним тянется net-snmp 5.4.2.1_6. Вот опции:

     ??????????????????????????????????????????????????????????????????????
     ?                  Options for net-snmp 5.4.2.1_6                    ?
     ? ?????????????????????????????????????????????????????????????????? ?
     ? ?    [ ] IPV6           Build with IPv6 support                  ? ?
     ? ?    [ ] MFD_REWRITES   Build with 64-bit Interface Counters     ? ?
     ? ?    [X] PERL           Install additional perl modules          ? ?
     ? ?    [X] PERL_EMBEDDED  Build embedded perl                      ? ?
     ? ?    [ ] TKMIB          Install graphical MIB browser            ? ?
     ? ?    [X] DUMMY          Enable dummy values as placeholders      ? ?
     ? ?    [ ] DMALLOC        Enable dmalloc debug memory allocator    ? ?
     ivcshop#make install
Получаем информацию.
======================================================================
Zabbix requires a database.  If you are using SQLite, one will be
created automatically.  Otherwise you can install one as follows (<db>
is your database engine and <db_client> is its client program):
Ниже описано как залить данные
% cd /usr/local/share/zabbix/server/create
% cat schema/<db>.sql data/data.sql data/images_<db>.sql | <db_client>

To upgrade an existing database, see the scripts in
/usr/local/share/zabbix/server/upgrades.
======================================================================
ivcshop# rehash


Создаем базу данных Zabbix

ivcshop# mysql -u root -p
Enter password:

mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)

Создаем пользователя zab  с паролем 12345 и даем ему полное разрешение на базу zabbix:
mysql> grant all on zabbix.* to 'zab'@'localhost' identified by '12345';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


mysql> quit
Bye

ivcshop# cd /usr/local/share/zabbix/server/create/schema/

Смотрим, что в директории:( пишу для того,чтобы Вы себя проверяли...)
ivcshop# ls
mysql.sql       oracle.sql      postgresql.sql  sqlite.sql

Заливаем данные для MySQL из mysql.sql.
ivcshop# cat mysql.sql | mysql -u zab -p zabbix
Enter password:

ivcshop# cd ../data/
Смотрим, что в директории:
ivcshop# ls
data.sql                images_mysql.sql        images_pgsql.sql
images                  images_oracle.sql       images_sqlite3.sql

Заливаем данные из data.sql и images_mysql.sql.
ivcshop# cat data.sql | mysql -u zab -p zabbix
Enter password:
ivcshop# cat images_mysql.sql |mysql -u zab -p zabbix
Enter password:


ivcshop# cd /usr/local/etc/zabbix/
Смотрим, что в директории:
ivcshop# ls
zabbix_agent.conf               zabbix_server.conf.sample
zabbix_agentd.conf
Создаем конфигурационный файл путем копирования:
ivcshop# cp zabbix_server.conf.sample  zabbix_server.conf
ivcshop#ee zabbix_server.conf
Добавляем в него  или раскоментируем:
<начало
ListenPort=10051
HousekeepingFrequency=2
SenderFrequency=60
DebugLevel=3
Timeout=5
UnreachablePeriod=90
PidFile=/var/tmp/zabbix_server.pid
LogFile=/var/log/zabbix_server.log
LogFileSize=1
AlertScriptsPath=/home/zabbix/bin/
FpingLocation=/usr/local/sbin/fping
DBHost=localhost
DBName=zabbix
DBUser=zab 
DBPassword=12345
DBSocket=/tmp/mysql.sock
конец>

Создаем файл логов Zabbix:
ivcshop# cd /var/log/
ivcshop# touch zabbix_server.log
Даем разрешение для пользователя Zabbix  на него:
ivcshop# chown zabbix:wheel zabbix_server.log
ivcshop# chmod 666 zabbix_server.log
Редактируем конфигурационный файл apache
ivcshop# ee /usr/local/etc/apache22/httpd.conf

Добавляем в конфигурацию:

Alias /zabbix/ "/usr/local/www/apache22/data/php_zabbix/"
        <Directory />
                AllowOverride All
                Options Indexes FollowSymLinks
                Order allow,deny
                Allow from all
        AllowOverride Options Fileinfo
        </Directory>

 

Редактируем конфигурационный файл /etc/rc.conf
ivcshop# ee /etc/rc.conf
Добавляем строку:
zabbix_server_enable="YES"
Запускаем Zabbix:
ivcshop# /usr/local/etc/rc.d/zabbix_server start

  Копируем frontends из папки work в порту zabbix:
ivcshop# cd /usr/ports/net-mgmt/zabbix-server/work/zabbix-1.6
Смотрим, что в директории:
ivcshop# ls
AUTHORS         INSTALL         NEWS            build           config.status   create          include         misc
COPYING         Makefile        README          compile         config.sub      depcomp         install-sh      missing
ChangeLog       Makefile.am     aclocal.m4      config.guess    configure       docs            m4              src
FAQ             Makefile.in     bin             config.log      configure.in    frontends       man             upgrades

ivcshop# cd frontends/
Смотрим, что в директории:
ivcshop# ls
php
ivcshop# cp -R php/ /usr/local/www/apache22/data/php_zabbix/

Правим php.ini или инсталяция прервется.
ivcshop# ee /usr/local/etc/php.ini
Добавляем :

date.timezone = "Europe/Moscow"
max_execution_time = 300

После изменений
ivcshop# apachectl graceful
  В браузере набираем http://localhost/zabbix/setup.php
Начинаем инсталяцию:
1
Вкладка 1Introduction
кнопка Next
2 Вкладка Licence Agreement
 галка I agree - Next
3 Вкладка Check of pree-requisites
Должно быть все OK - Next
4 Вкладка Configure DB connection
Type - MySQL
host - Localhost
port - 0
name = zab
password - 12345
кнопка Test connectiom OK
Next
5 Вкладка ZABBIX server details
Host - localhost
Port 10051
Next
6 Вкладка PRE-Installatoin Summary
Next
7 Вкладка Install
Нажать Save configuration file  и загрузить сформированный кофигурационный скрипт.
Далее помещаем его на сервер Zabbix в указанный установщиком каталог (в данном случае /usr/local/share/zabbix/php/conf/) и жмем далее. Конфигурирование фронтенда закончено.

В браузере набираем http://localhost/zabbix
  Вводим логин admin    пароль zabbix
Инсталяция окончена.

 
Настраиваем SNMPD  на сервере:
ivcshop#  ee /etc/snmpd.config
меняем
# Change this!
read := "123456"
и
# open standard SNMP ports
begemotSnmpdPortStatus.0.0.0.0.161 = 1
begemotSnmpdPortStatus.10.10.10.202.161 = 1 (IP- adress сервера.порт)

ivcshop# ee /etc/rc.conf
Прописываем
snmpd_enable="YES"
Проверяем работу с другим SNMP устройством.
ivcshop# snmpwalk -v 2c -c 12345 10.10.10.206

Должно показать :

SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.18 = INTEGER: 18
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.19 = INTEGER: 19
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.20 = INTEGER: 20
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.21 = INTEGER: 21
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.22 = INTEGER: 22
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.23 = INTEGER: 23
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.24 = INTEGER: 24
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.25 = INTEGER: 25
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.26 = INTEGER: 26
SNMPv2-SMI::mib-2.47.1.3.3.1.1.1.27 = INTEGER: 27
SNMPv2-SMI::mib-2.47.1.4.1.0 = Timeticks: (1777) 0:00:17.77

Установка агента Zabbix на машины с ОС FreeBSD

ivcshop#cd /usr/ports/net-mgmt/zabbix-agent
ivcshop# make install
Далее правим конфигурационный файл /usr/local/etc/zabbix/zabbix_agentd.conf:

#начало
ServerPort=10051
Hostname=localhost
ListenPort=10050
ListenIP=127.0.0.1
StartAgents=5
DisableActive=1
DebugLevel=3
PidFile=/var/zabbix/zabbix_agentd.pid
# !Не забываем проверить права доступа на файл!
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=2
Timeout=3
#Конец

ivcshop# ee /etc/rc.conf
Добавляем строку:
zabbix_agentd_enable="YES"
Запускаем агент:
ivcshop#/usr/local/etc/rc.d/zabbix_agentd start
Теперь панели управления можно добавить машину с только что установленным агентом  и привязать к ней уже существующий шаблон Template_FreeBSD, хотя шаблон необходимо модернизировать - убрать не поддерживаемые Items.

Инсталяция агента под Windows  тривиальна.
Замечание: при переходе на новую версию нет необходимости обновлять агентов на всех машинах, т.к. хорошо работают старые версии агентов.

Домашняя Zabbix Инсталляция и настройка Zabbix на FreeBSD 7.2