«Настройка PostgreSQL» и «Zabbix»: разница между страницами

Материал из support.qbpro.ru
(Различия между страницами)
imported>Vix
Нет описания правки
 
imported>Vix
 
Строка 1: Строка 1:
Для установки нужных нам пакетов пишем в командной строке:
[[Файл:Zabbix2.png]]
<hr>
== Установка и настройка ==
'''''- Система Debian Jessie (8)'''''


$ sudo apt-get install postgresql postgresql-client postgresql-contrib
* '''устанавливаем 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 -


В отличии от привычного мне MySQL, Postres не спрашивает пароль для администратора при установке, поэтому его нужно задать вручную. Суперпользователь БД в PostgreSQL называется postgres. Следующими командами присвоим ему пароль:
apt-get update
apt-get install zabbix-agent zabbix-frontend-php zabbix-proxy-pgsql zabbix-server-pgsql php-fpm nginx


  $ sudo su postgres -c psql postgres
* '''создаем администратора базы zabbix'''
  CREATE USER zabbixadmin WITH PASSWORD 'mypassword';


  postgres=# ALTER USER postgres WITH PASSWORD 'password';
* '''создаем базу данных для zabbix'''
postgres=# \q
  CREATE DATABASE "zabbix"
  WITH OWNER "zabbixadmin"
  ENCODING 'UTF8'
  LC_COLLATE = 'ru_RU.UTF-8'
  LC_CTYPE = 'ru_RU.UTF-8';


Вместо password пишем свой пароль. Данными командами мы изменили пароль пользователю «postgres» в базе данных «postgres». Теперь нужно задать соответствующий пароль системному пользователю postgres. Для это пишем:
* '''даем права на базу администратору'''
GRANT ALL PRIVILEGES ON DATABASE "zabbix" to zabbixadmin;


  $ sudo passwd postgres
* '''теперь необходимо в эту базу загрузить шаблоны и схему (для 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,<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
....


Далее настроим наш сервер для работы в сети. Для этого своим любимым редактором открываем файл /etc/postgresql/8.3/main/postgresql.conf например:
* '''(!)''' - возможно '''zabbix''' при первом запуске еще что-то попросит, измените как будет указано.


$ sudo nano /etc/postgresql/8.3/main/postgresql.conf
* '''nginx''' - пример наcтройки для '''zabbix''':


и в секции «Connections and Authentication» раскомментируем следующие строки:
  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;
    }
}


listen_addresses = 'localhost'
=='''Полезные советы'''==
* '''Проблема:''' Триггер с элементом vm.memory.size
Пытаюсь мониторить переполнение RAM (если меньше 10% свободной RAM в течении 5 минут) и создаю триггер:
{hostname:vm.memory.size[available].last(5m)}<10
Однако ничего не происходит.


и
* '''Решение:'''
Вам для вашей задачи лучше использовать функцию max()
{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>


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


вместо localhost через запятую пишем IP-адреса на которые хотим повесить PostgreSQL сервер. Например:
* '''Решение:''' Cоветую увеличить интервал и также путем увелечинеия памяти!
[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>


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


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


Если нужно что бы наш сервер был доступен на всех сетевых интерфейсах, вместо IP-адресов ставим ‘*’.


Теперь мы должны определить кто из пользователей сети должен иметь доступ к серверу. Для этого в конец файла /etc/postgresql/8.3/main/pg_hba.conf дописываем строчку:
host    all        all        [ip адрес]          [маска подсети]  md5
вместо [ip адрес] пишем айпи клиента в нашей сети, вместо [маска подсети] нашу маску подсети, например:
host    all        all        192.168.1.2        255.255.255.0  md5
если нужно задать целую подсеть — 192.168.1.0
Перезапускаем сервер:
$ sudo /etc/init.d/postgresql-8.3 restart
На этом сервер должен нормально стартануть и работать как планировалось.
Установим теперь phpPgAdmin:
если Apache уже установлен:
$ sudo apt-get install php5-pgsql phppgadmin wwwconfig-common
если не установлен, устанавливаем и его:
$ sudo apt-get install apache2 php5 php5-pgsql phppgadmin wwwconfig-common
Подключаем файл конфигурации phpPgAdmin в Апач (в Ubuntu он сам не подключается, в Дебиане данное действие не требуется) и перезагружаем веб-сервер:
$ ln -s /etc/phppgadmin/apache.conf /etc/apache2/conf.d/phppgadmin
$ /etc/init.d/apache2 restart
открываем браузер и пишем:
http://ip-адрес_сервера/phppgadmin
мы должны увидеть домашнюю страницу phpPgAdmin.
В целях безопасности вход в phpPgAdmin запрещен от имени пользователя postgres. Поэтому создаем нового пользователя ‘pgadmin’ с правами администратора, для администрирования нашего сервера через веб-интерфейс:
$ sudo -u postgres createuser pgadmin
Shall the new role be a superuser? (y/n)
Shall the new role be allowed to create databases? (y/n)
Shall the new role be allowed to create more new roles? (y/n)
отвечаем на несколько вопросов, что бы наделить нашего пользователя соответствующими привилегиями (я своего сделал суперпользователем), а потом задаем ему пароль следующим образом:
$ sudo su postgres -c psql postgres
postgres=# ALTER USER pgadmin WITH PASSWORD 'password';
postgres=# \q
Вместо password пишем пароль и пробуем залогиниться в phpPgAdmin. Сам веб-интерфейс интуитивно понятен и у меня даже на русском языке по умолчанию :) правда не такой функциональный как хотелось бы. Здесь вы можете создать базу данных или пользователя, удалять, импортировать, редактировать и т.п. в зависимости от ваших привилегий и потребностей.
ИСТОЧНИКИ:
<hr>
<hr>
* [https://eax.me/postgresql-install/ Начало работы с PostgreSQL]
'''ИСТОЧНИКИ:'''
* [https://postgrespro.ru/docs/postgresql/9.6/app-createuser.html PostgreSQL]
<hr>
* [http://hutpu4.net/linux-open-source/postgresql-phppgadmin-for-debian-ubuntu.html Блог dоктора Dобрянского]
* [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



ИСТОЧНИКИ: