Главная > CentOS > Установка zabbix 2.2 на CentOS 6.5

Установка zabbix 2.2 на CentOS 6.5

Установка серверной части.
Устанавливаем систему CentOS 6.5. Мануалов по установке много, так что данный процесс описывать не буду.

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

=======Firewall======
service iptables stop
chkconfig iptables off

Если желания отключать нет можно добавить в исключения

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
service iptables save

Отключаю selinux

=======Selinux======
vi  /etc/selinux/config
SELINUX=disabled
Если желания отключать нет можно настроить
yum -y install policycoreutils-python
chcon -Rv --type=httpd_sys_content_t /var/www/html/
semanage port -a -t http_port_t -p tcp 10051

Далее перезагружаем систему и обновляем ее.

yum update

После я добавляю нужные репозитории

yum install centos-release-SCL
rpm -Uvh http://download3.fedora.redhat.com/pub/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

После я устанавливаю требуемые компоненты для установки zabbix
Использовать я буду Percona-Server, он полностью совместим с MySQL, но говорят что производительность на порядок выше.
Почитать можно тут http://www.percona.com/software/percona-server
Здесь показывают сравнение Percona Server Feature Comparison

yum install Percona-Server-client-56.x86_64 Percona-Server-devel-56.x86_64 Percona-Server-server-56.x86_64


Запускаем mysql

 service mysql start

После я настриваю стандартно mysql

mysql_secure_installation

Делаю ссылки для компиляции

ln -sf /usr/lib64/libperconaserverclient_r.so.18.1.0 /usr/lib64/libmysqlclient_r.so.18.1.0
ln -sf /usr/lib64/libperconaserverclient_r.so.18 /usr/lib64/libmysqlclient_r.so.18
ln -sf /usr/lib64/libperconaserverclient_r.so /usr/lib64/libmysqlclient_r.so
ln -sf /usr/lib64/libperconaserverclient.so.18.1.0 /usr/lib64/libmysqlclient.so.18.1.0
ln -sf /usr/lib64/libperconaserverclient.so.18 /usr/lib64/libmysqlclient.so.18
ln -sf /usr/lib64/libperconaserverclient.so /usr/lib64/libmysqlclient.so
cp /usr/lib64/libperconaserverclient_r.so.18.1.0 /usr/lib64/mysql/
cp /usr/lib64/libperconaserverclient.so.18.1.0 /usr/lib64/mysql/
ln -sf /usr/lib64/mysql/libperconaserverclient_r.so.18.1.0 /usr/lib64/mysql/libmysqlclient_r.so.18.1.0
ln -sf /usr/lib64/mysql/libperconaserverclient.so.18.1.0 /usr/lib64/mysql/libmysqlclient.so.18.1.0

После я закидываю туда базы zabbix. Они находятся в дистрибутиве zabbix-2.2.1/database/mysql/

[root@zabbix ~]# mysql -uroot -p
Enter password:

Создали базу, пользователя и дали права

CREATE DATABASE zabbix CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'Password';
FLUSH PRIVILEGES;
quit;

Импортим саму базу.

cat schema.sql | mysql -u zabbix -p zabbix
cat images.sql | mysql -u zabbix -p zabbix
cat data.sql | mysql -u zabbix -p zabbix

Если у нас есть из резерной копии то просто заливаем ее

mysql -u zabbix -p zabbix < zabbix.sql

Продолжаем устанавливать необходимые компоненты.

yum install gcc make net-snmp-devel openldap-devel httpd net-snmp-utils curl-devel OpenIPMI-devel rpm-build gnutls-devel  kernel-devel fping unixODBC-devel libxml2-devel wget
 
yum install php php-mysql php-mbstring php-bcmath  php-gd  php-xml php-session php-ctype php-xmlreader php-xmlwriter php-sockets php-gettext
 
yum --enablerepo=epel install iksemel iksemel-devel libssh2-devel

Находим необходимые Java

yum search java | grep 'java-'
yum install java-1.7.0-openjdk-src.x86_64 java-1.7.0-openjdk-devel.x86_64

Скачиваем сам zabbix

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.1/zabbix-2.2.1.tar.gz/download

Распаковываем

tar -zxvf zabbix-2.2.1.tar.gz

Компилируем

./configure --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl --with-openipmi --enable-agent --with-ldap --with-ssh2 --with-unixodbc --enable-java --with-libxml2

Устанавливаем

make install

Теперь копируем init файлы

cp misc/init.d/fedora/core5/zabbix_* /etc/init.d/

Устанавливаем на них права

chmod a+x /etc/init.d/zabbix_server
chmod a+x /etc/init.d/zabbix_agentd

Создаем пользователя под которым будет запускаться демон zabbix

useradd -m -s /bin/bash zabbix

Даем права на файлы конфигурации

chown zabbix /usr/local/etc/zabbix_server.conf
chown zabbix /usr/local/etc/zabbix_agentd.conf

Добавляем в автозагрузку

chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig --level 345 zabbix_server on
chkconfig --level 345 zabbix_agentd on
chkconfig zabbix_server on
chkconfig zabbix_agentd on
chkconfig httpd on

Копируем web файлы и даем на них права apache

mkdir /var/www/zabbix
cp -r frontends/php/* /var/www/zabbix/
chown apache:apache -R /var/www/zabbix/

Редактиреум apache

vi /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
 DocumentRoot /var/www/zabbix
 ServerName s502is-zab
 DirectoryIndex index.php
 AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
 AddType application/x-httpd-php-source .phps
 ErrorLog logs/zabbix-error_log
</VirtualHost>

Редактиреум php

vi /etc/php.ini
date.timezone = Asia/Novosibirsk
max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
mbstring.func_overload = 2
max_input_time = 300

Перезапускаем наши службы

service httpd restart
service zabbix_server restart
service zabbix_agentd restart
service snmptrapd  restart

Установка клиентов
Клиенты для Windows устанавливаются пакетом MSI:

<a href="http://www.zabbix.com/ru/download.php">http://www.zabbix.com/ru/download.php</a>

Если включен Брандмауэр то требуется добавить исключения.
Предположим, сервер Zabbix имеет адрес 198.51.100.10:

Netsh Advfirewall Firewall Add Rule name="zabbix-agent-in" dir=in action=allow description="Monitoring host health" profile=any localport=10050 protocol=tcp remoteip=198.51.100.10
Netsh Advfirewall Firewall Add Rule name="zabbix-agent-out" dir=out action=allow description="Monitoring host health" profile=any remoteport=10051 protocol=tcp remoteip=198.51.100.10

Резервное копирование базы данных
Вначале я использовал самое простое резервного копирование, сливал базу через mysqldump в файл

mysqldump -u zabbix -h localhost -ppassword zabbix &gt; /tmp/backup/zabbix_`date "+%Y%m%d%H%M"`.sql

А если нужно было восстанавливал через mysql

mysql -u zabbix -ppassword zabbix &lt; /tmp/backup/zabbix_`date "+%Y%m%d%H%M"`.sql

Минус такой схемы в том что когда бэкапишь через mysqldump то база сразу вешается и zabbix просто замерает и после того как mysqldump сделает свою работу в zabbix куча сработанных триггеров.
И второй, главный минус, когда восстанавливаешь через mysql и база у тебя большая то восстановление может длится днями.

ПОЭТОМУ будем использовать XtraBackup
Для начала установим его

yum install percona-xtrabackup.x86_64

Создадим файл

/usr/local/share/zabbix/externalscripts/mysql-fullbackup.sh

с содержимым

#!/bin/bash
#
# mysql-fullbackup.sh
#
# Full Backup for Zabbix w/MySQL
#
MYSQLUSER="YOURUSER"
MYSQLPASS="YOURPASSWORD"
 
MYSQLCNF="/etc/my.cnf"
MYSQLDIR="/var/lib/mysql"
 
BASEDIR="/var/lib/xtrabackup"
BKPDIR="${BASEDIR}/lastbackup"
BKPTEMPDIR="${BASEDIR}/tempbackup"
 
# Memory used in stage 2
USEMEMORY="1GB"
 
# create basedir
mkdir -p ${BASEDIR}
 
# remove temporary dir
if [ -d "${BKPTEMPDIR}" ]; then
        rm -rf ${BKPTEMPDIR}
fi
 
# do backup - stage 1
innobackupex --defaults-file=${MYSQLCNF} --user=${MYSQLUSER} --no-timestamp --password=${MYSQLPASS} ${BKPTEMPDIR}
 
# do backup - stage 2 (prepare backup for restore)
innobackupex --apply-log --use-memory=${USEMEMORY} ${BKPTEMPDIR}
 
# backup my.cnf
cp -pf ${MYSQLCNF} ${BKPTEMPDIR}/my.cnf
 
# keep only the lastbackup
if [ -d "${BKPDIR}" ]; then
      if [ -d "${BKPDIR}.old" ]; then
              rm -rf ${BKPDIR}.old
      fi
      rm -rf ${BKPDIR}
fi
chown -R mysql: ${BKPTEMPDIR}
mv ${BKPTEMPDIR} ${BKPDIR}

Дадим права на выполнение

chmod +x /usr/local/share/zabbix/externalscripts/mysql-fullbackup.sh

Добавим в планировщик

crontab -e
0 6 * * * /usr/local/share/zabbix/externalscripts/mysql-fullbackup.sh &gt; /tmp/ysql-fullbackup.log

И самое главное!
Если нам потребуется восстановить базу то все сводится к:

service mysql stop
cd /var/lib
mv mysql mysqlcrashed
mv /var/lib/xtrabackup/lastbackup mysql
service mysql start
Categories: CentOS Tags:
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.