Архив метки: мониторинг

Установка Zabbix на Ubuntu Server c nginx + MySQL + php-fpm

zabbix-logo




Сегодня рассмотрим статью про установку системы мониторинга на Ubuntu Server 18.04. В качестве самой системы мониторинга будем использовать известную утилиту – Zabbix.




И так начнем:




Добавление Zabbix репозитория




Установите пакет конфигурации репозитория. Этот пакет содержит файлы конфигурации apt (менеджера пакетов приложений).




Cкачиваем пакет для Ubuntu Server 18.04




cd /tmp




wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1%2Bbionic_all.deb




Если у вас Debian или CentOS, то переходим по ссылке и ищем zabbix для вашего дистрибутива linux




После того как пакет загрузится произведем его установку:




sudo dpkg -i zabbix-release_4.2-1+bionic_all.deb




Теперь обновим индексы пакетов:




sudo apt update




Установка сервера и веб-интерфейса




Для установки Zabbix сервера с MySQL набираем следующую команду:




sudo apt install zabbix-server-mysql zabbix-agent




Для установки Zabbix веб-интерфейса:




sudo apt install zabbix-frontend-php




Создание базы данных MySQL




Если у Вас еще не установлена БД MySQL, то сейчас самое время ее установить, в терминале набираем следующее:




sudo apt install mysql-server mysql-client




Теперь можно создать БД Zabbix:




mysql -uroot -p<пароль>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<пароль>';
mysql> quit;




Импорт данных




Теперь импортируйте изначальную схему и данные сервера на MySQL:




sudo zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix




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




Настройка базы данных для Zabbix сервера




Измените zabbix_server.conf для использования созданной базы данных. Например:




sudo nano /etc/zabbix/zabbix_server.conf




DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<пароль>




В параметре DBPassword используйте пароль от MySQL базы данных Zabbix




Запуск Zabbix




Самое время запустить процессы Zabbix сервера/агента и добавить их в автозагрузку:




sudo systemctl enable zabbix-server && sudo systemctl start zabbix-server
sudo systemctl enable zabbix-agent && sudo systemctl start zabbix-agent




Установка nginx и php-fpm




Добавим сторонний репозиторий (более актуальные версии nginx и php)




sudo add-apt-repository ppa:ondrej/php
sudo apt update




Ставим php и nginx. На момент написания статьи актуальная версия php7.3, а nginx 1.15.12




sudo apt install nginx php7.3 php7.3-common php7.3-zip php7.3-mysql php7.3-fpm php7.3-cli php7.3-cgi php7.3-curl php7.3-gd php7.3-json php7.3-mbstring php7.3-opcache php7.3-readline php7.3-xml php7.3-xmlrpc php-imagick php-memcache




Настройка nginx




С серверной частью закончили. Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный файл — /etc/nginx/conf.d/default.conf. Приводим его к следующему виду:




sudo nano /etc/nginx/conf.d/default.conf




server {
     listen      111.222.333.444:80;
     server_name zabbix.server.ru www.zabbix.server.ru;
     root        /usr/share/zabbix;
     index       index.php index.html index.htm;
location / {
         try_files $uri $uri/ /index.php?$args;
     if (!-e $request_filename)     
     {         rewrite ^(.+)$ /index.php?q=$1 last;     
     }     
     location ~* ^.+.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {         
               expires     max;     
     }     
location ~ [^/].php(/|$) {         
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;         
               if (!-f $document_root$fastcgi_script_name) {             
                   return  404;         
               }         
               fastcgi_pass    127.0.0.1:9001;         
               fastcgi_index   index.php;         
               include         /etc/nginx/fastcgi_params;     }  }




  • 111.222.333.444 – ваш IP адрес сервера
  • zabbix.server.ru – меняем на свой FQDN




Проверим конфиг на ошибки и если все в порядке, перезапустим nginx.




nginx -t
sudo systemctl restart nginx




Настройка Zabbix Frontend




Идем в браузер и открываем адрес http://zabbix.server.ru. Вы должны увидеть установщик Zabbix 4.x.




zabbix-4.2




Нажимаем Next step и начинаем настройку web интерфейса. На следующей странице будет проверка требований. У вас должны быть выполнены все требования. В зависимости от системы и версии php, информация будет в каждом случае разниться.




zabbix-4.2




На следующем этапе указываем параметры доступа к базе данных,




zabbix-4.2




потом Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры.




zabbix-4.2




Потом будет страница с проверкой введенных данных.




zabbix-4.2




Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.




zabbix-4.2




После нажатия на Finish увидите окно авторизации Zabbix сервера.







Стандартная учетная запись для входа в web интерфейс zabbix следующая:




  • Пользователь Admin
  • Пароль zabbix




После логина увидите стандартный dashboard.







Настройка Zabbix Agent на Linux




Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на другую машину, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно будет задать следующие параметры:




sudo nano /etc/zabbix/zabbix_agentd.conf




Server=192.168.13.117
ServerActive=192.168.13.117
Hostname=srvubn01 # имя вашего узла мониторинга, которое будет указано на сервере zabbix.




Перезапускаем агент:




sudo systemctl restart zabbix-agent




На этом установка сервера мониторинга Zabbix окончена.



[endtxt]



2019-05-10T06:45:11
Monitoring

Оптимизация настроек Zabbix

zabbix-logo




Стандартные настройки в zabbix, не всегда хорошо работают и их необходимо изменить под свои нужды. Я собрал в данной статье, основные параметры для оптимизации. Возможно, — это не все и вы знаете больше, но я постараюсь максимизировать.




Настройка кеша




Для оптимизации zabbix сервера, стоит увеличить размер кеша, для этого — открываем:




sudo nano /etc/zabbix/zabbix_server.conf




Находим строку «CacheSize» и увеличиваем его.




CacheSize=256M




Я увеличил до 256M. При надобности, можно добавить.




Zabbix discoverer processes more than 75% busy




Недавно получил алерт в заббиксе:




Zabbix discoverer processes more than 75% busy




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Ищем строку с опцией «StartDiscoverers» и увеличиваем данный параметр:




StartDiscoverers=5




Я, опцию StartDiscoverers увеличил до 5.  На этом настройка заканчивается, нужно сохранить конфиг и перезагрузить zabbix сервер:




sudo service zabbix-server restart




Если после добавления хостов ( с разными подсетями) вы увидите что снова сработал этот триггер, то нужно увеличить StartDiscoverers.




Zabbix icmp pinger processes more than 75% busy




Недавно получил алерт в заббиксе:




Zabbix icmp pinger processes more than 75% busy




Данное сообщение, говорит — что процесс(ы) выполняющие ping по хостам, перегружены.




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Ищем строку с опцией «StartPingers» и увеличиваем данный параметр:




StartPingers=5




Я, опцию StartPingers увеличил до 5, тем самым — я увеличил количество процессов выполняющих ICMP Ping.




На этом настройка заканчивается, нужно сохранить конфиг и перезагрузить zabbix сервер:




sudo service zabbix-server restart




Zabbix poller processes more than 75% busy




poller — это процесс который опрашивает агентов.




Данный параметр стоит увеличивать в 2- случаях:




  • Большая сеть
  • Есть много недоступных ресурсов и они мониторятся.




Как исправить?




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Ищем строку с опцией «StartPollers» и увеличиваем данный параметр:




StartPollers=5




Я установил данный параметр в 5. Если очень будет худо, то увеличиваем его до 20. Ничто не приходит бесследно, увеличение процессов ведет к увеличение потребления ресурсов.




После этого, вы можете получить:




Zabbix unreachable poller processes more than 75% busy




Если видите у себя данное сообщение ( алерт, сработанный триггер), открываем конфиг:




sudo nano /etc/zabbix/zabbix_server.conf




Ищем строку с опцией «StartPollersUnreachable» и увеличиваем данный параметр:




StartPollersUnreachable=1




PS: У меня данный параметр используется по умолчанию и я его не трогал ( не было ошибок).




Имеется вероятность того, что перестанет хватать коннекщенов для БД, то надо увеличивать лимит подключений.




Zabbix housekeeper processes more than 75% busy




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




И приводим к виду:




HousekeepingFrequency=1
MaxHousekeeperDelete=100




Сохраняем файл и перезагружаем zabbix:




sudo service zabbix-server restart




Zabbix busy timer processes, in %




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Переменную укажу позже (не знаю какая)!




Сохраняем файл и перезагружаем zabbix:




sudo service zabbix-server restart




Zabbix busy escalator processes, in %




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Меняем переменную:




MaxHousekeeperDelete




Сохраняем файл и перезагружаем zabbix:




sudo service zabbix-server restart




Zabbix busy alerter processes, in %




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Переменную укажу позже (не знаю какая)!




Сохраняем файл и перезагружаем zabbix:




sudo service zabbix-server restart




Zabbix busy configuration syncer processes, in %




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Находим и изменяем:




HistoryCacheSize=




Сохраняем файл и перезагружаем zabbix:




sudo service zabbix-server restart




Zabbix busy db watchdog processes, in %




Начиная с Zabbix 3.4 alpha, нет необходимости в мониторинге процесса db watchdog, так как он был удален. Шаблон приложения Zabbix сервер не должен иметь этот элемент.




Zabbix busy history syncer processes, in %




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Находим и изменяем:




HistoryCacheSize=
CacheSize=




Сохраняем файл и перезагружаем zabbix:




sudo service zabbix-server restart




Zabbix busy self-monitoring processes, in %




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Переменную укажу позже (не знаю какая)!




Сохраняем файл и перезагружаем zabbix:




sudo service zabbix-server restart




Zabbix busy http poller processes, in %




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Находим и меняем параметр:




StartHTTPPollers=




Сохраняем файл и перезагружаем zabbix:




sudo service zabbix-server restart




Zabbix busy java poller processes, in %




Это можно исправить, откроем zabbix_server.conf конфиг-файл:




sudo nano /etc/zabbix/zabbix_server.conf




Находим и меняем параметр:




StartJavaPollers=




Сохраняем файл и перезагружаем zabbix




sudo service zabbix-server restart




А на этом, у меня все и статья «Оптимизация настроек Zabbix» завершена.



2019-05-09T09:29:54
Monitoring

Проблемы с Wi-Fi и беспроводным домашним интернетом

Роутеры и точки доступа с Wi-Fi — неотъемлемый атрибут пользователя домашнего и мобильного интернета вот уже 10 лет. Однажды скорость работы Wi-Fi-сети может сильно снижаться, а иногда беспроводное соединение пропадает совсем и надолго.

Читать

Домашняя погодная станция на WiFi

Рано утром, когда встаёшь и уходишь из дома на работу или по делам постоянно возникает вопрос: тепло на улице или холодно? И как исходя из этого одеваться, к чему готовиться?

Включать телевизор и искать на какой программе показывают местную температуру, включать и слушать радио,  при этом заходить, включать свет в других комнатах — не вариант. Если сам при этом на ходу спишь — это вообще не вариант! Поэтому пришла идея в прихожей, там где непосредственно находится одежда, обувь, зонт и прочие климатические средства защиты установить дисплей метеостанции, чтобы перед выходом на улицу сразу прикинуть, что одеть и чего ждать (морально готовиться к -40, например). Читать

Мониторинг аппаратных датчиков в Linux. Linux-monitoring sensors (lm_sensors).

lm_sensors — ПО, используемое в *nix системах для получения данных с аппаратных датчиков о температуре компонентов, напряжении питания или скорости вращения вентиляторов, а так же задания минимального и максимального значения для каждого датчика, при достижении которого система начинает издавать звуковые сигналы через pc speaker (что не всегда является хорошей идеей).
Установка:
# apt-get install lm_sensors3
Прежде чем смотреть, каковы значения датчиков, эти датчики нужно сначала найти, используя утилиту sensors-detect. А чтобы она не спрашивала у вас десятки раз, согласны ли вы просканировать тот или иной узел аппаратной платформы, нужно сразу сказать ей да, с помощью утилиты yes:
# yes | sensors-detect
Утилита найдёт все датчики в системе и активирует необходимые для их работы модули ядра.
Теперь можно посмотреть данные, передаваемые датчиками с помощью утилиты sensors:
# sensors
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +37.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +34.0°C (high = +80.0°C, crit = +100.0°C)
Core 1: +36.0°C (high = +80.0°C, crit = +100.0°C)
Core 2: +27.0°C (high = +80.0°C, crit = +100.0°C)
Core 3: +30.0°C (high = +80.0°C, crit = +100.0°C)
it8728-isa-0a30
Adapter: ISA adapter
in0: +0.08 V (min = +0.00 V, max = +3.06 V)
in1: +2.02 V (min = +0.00 V, max = +3.06 V)
in2: +2.00 V (min = +0.00 V, max = +3.06 V)
in3: +2.03 V (min = +0.00 V, max = +3.06 V)
in4: +0.01 V (min = +0.00 V, max = +3.06 V)
in5: +1.79 V (min = +0.00 V, max = +3.06 V)
in6: +1.55 V (min = +0.00 V, max = +3.06 V)
3VSB: +3.38 V (min = +0.00 V, max = +6.12 V)
Vbat: +3.14 V
fan1: 802 RPM (min = 0 RPM)
fan2: 857 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 0 RPM (min = 0 RPM)
fan5: 0 RPM (min = 0 RPM)
temp1: +27.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: +127.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp3: +28.0°C (low = +127.0°C, high = +127.0°C) sensor = Intel PECI
intrusion0: ALARM
Много не нужной информации и некоторые из значений не корректны, поэтому надо всё это дело настроить! Системный файл конфигурации редактировать не стоит, так как он заменяется при обновлении программы. Для локальной конфигурации создана папка /etc/sensors.d, в которой мо
жно создавать свои конфиги. Файл может иметь любое имя, это не важно, и будет перекрывать настройки системного файла, если в нём уже есть конфиги для настраиваемого оборудования. Создадим файл с красивым именем /etc/sensors.d/sensors.local.conf, а исходные данные для настройки возьмём из уже выполненной ранее команды sensors, и той же команды, с аргументом -u, что даст больше информации:
# sensors -u
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:
temp1_input: 36.000
temp1_max: 80.000
temp1_crit: 100.000
temp1_crit_alarm: 0.000
Core 0:
temp2_input: 35.000
temp2_max: 80.000
temp2_crit: 100.000
temp2_crit_alarm: 0.000
Core 1:
temp3_input: 36.000
temp3_max: 80.000
temp3_crit: 100.000
temp3_crit_alarm: 0.000
Core 2:
temp4_input: 27.000
temp4_max: 80.000
temp4_crit: 100.000
temp4_crit_alarm: 0.000
Core 3:
temp5_input: 31.000
temp5_max: 80.000
temp5_crit: 100.000
temp5_crit_alarm: 0.000
it8728-isa-0a30
Adapter: ISA adapter
in0:
in0_input: 0.036
in0_min: 0.000
in0_max: 3.060
in0_alarm: 0.000
in0_beep: 0.000
in1:
in1_input: 2.016
in1_min: 0.000
in1_max: 3.060
in1_alarm: 0.000
in1_beep: 0.000
in2:
in2_input: 2.004
in2_min: 0.000
in2_max: 3.060
in2_alarm: 0.000
in2_beep: 0.000
in3:
in3_input: 2.028
in3_min: 0.000
in3_max: 3.060
in3_alarm: 0.000
in3_beep: 0.000
in4:
in4_input: 0.012
in4_min: 0.000
in4_max: 3.060
in4_alarm: 0.000
in4_beep: 0.000
in5:
in5_input: 1.788
in5_min: 0.000
in5_max: 3.060
in5_alarm: 0.000
in5_beep: 0.000
in6:
in6_input: 1.548
in6_min: 0.000
in6_max: 3.060
in6_alarm: 0.000
in6_beep: 0.000
3VSB:
in7_input: 3.384
in7_min: 0.000
in7_max: 6.120
in7_alarm: 0.000
in7_beep: 0.000
Vbat:
in8_input: 3.144
fan1:
fan1_input: 802.000
fan1_min: 0.000
fan1_alarm: 0.000
fan1_beep: 1.000
fan2:
fan2_input: 857.000
fan2_min: 0.000
fan2_alarm: 0.000
fan2_beep: 1.000
fan3:
fan3_input: 0.000
fan3_min: 0.000
fan3_alarm: 0.000
fan3_beep: 1.000
fan4:
fan4_input: 0.000
fan4_min: 0.000
fan4_alarm: 0.000
fan4_beep: 1.000
fan5:
fan5_input: 0.000
fan5_min: 0.000
fan5_alarm: 0.000
fan5_beep: 1.000
temp1:
temp1_input: 27.000
temp1_max: 127.000
temp1_min: 127.000
temp1_alarm: 0.000
temp1_type: 4.000
temp1_offset: 0.000
temp1_beep: 1.000
temp2:
temp2_input: 127.000
temp2_max: 127.000
temp2_min: 127.000
temp2_alarm: 0.000
temp2_type: 4.000
temp2_offset: 0.000
temp2_beep: 1.000
temp3:
temp3_input: 28.000
temp3_max: 127.000
temp3_min: 127.000
temp3_alarm: 0.000
temp3_type: 6.000
temp3_offset: 92.000
temp3_beep: 1.000
intrusion0:
intrusion0_alarm: 1.000
Итак, прежде чем настраивать датчики, нужно задать чип, на котором эти датчики находятся. В примере, указанном выше, чипа 2 — coretemp-isa-0000 и it8728-isa-0a30. Указав чип, приступаем к настройке — скроем вывод данных ,которые, лично мне, не интересны. Это данные об отсутствующих вентиляторах (fan3-5), о напряжении питания разных модулей системы или о не подключённых датчиках температуры (temp2). Для игнорирования их вывода, используется опция ignore в сочетании с именем объекта:
chip «coretemp-isa-0000»
#IGNORE
ignore in0
ignore in1
ignore in2
ignore in3
ignore in4
ignore in5
ignore in6
ignore in7
ignore in8
ignore intrusion0
ignore fan3
ignore fan4
ignore fan5
ignore temp2
Теперь настроим вентиляторы fan1 и fan2 на том же чипе, которые показывают в 2 раза меньшее количество оборотов, чем это есть в реальности. С помощью опции compute, можно производить арифметические операции со значением указанного датчика:
compute fan1 2*@, @/2
compute fan2 2*@, @/2
Также есть опция label, с помощью которой можно переопределить название датчика, если оно определяется не корректно, либо просто хочется улучшить его челевекочитаемость:
label temp1 «CPU»
Нужно учитывать, что опция label работает как ожидается при использовании команды sensors, но может игнорироваться при использовании lm_sensors сторонними программами, например collectd эту опцию игнорирует.
Как уже упоминалось ранее, по умолчанию, демон lm_sensors подаёт звуковой сигнал на pc speaker при достижении заданного критического минимального или максимального значения датчика температуры либо если значение опускается до заданного значения датчика вентилятора. Пример этих значений (fan1_min: 0.000 у fan1 и temp1_max: 127.000 temp1_min: 127.000 у temp1):
fan1:
fan1_input: 1584.000
fan1_min: 0.000
fan1_alarm: 0.000
fan1_beep: 1.000
temp1:
temp1_input: 27.000
temp1_max: 127.000
temp1_min: 127.000
temp1_alarm: 0.000
temp1_type: 4.000
temp1_offset: 0.000
temp1_beep: 1.000
Эти значения можно корректировать, отключать звуковую сирену для конкретного датчика, либо вообще отключать звуковое оповещение глобально, так как это не всегда нужно.
Для корректировки значений есть опция set, используемая вместе с параметром и новым значением для этого параметра. Например, зададим параметру temp1_max значение 95:
set temp1_max 95
Отключим звуковой сигнал тревоги у вентилятора fan1_beep:
set fan1_beep 0
Либо отключим звуковой сигнал тревоги глобально для всех датчиков:
set beep_enable 0
(!) Для применения новых параметров, заданных опцией set, нужно выполнить команду sensors -s.
Конфиг, который получился у меня для использования совместно с collectd и материнской платой Gigabyte H87M-D3H:
chip «it8728-isa-0a30»
#FANS
compute fan1 2*@, @/2
compute fan2 2*@, @/2
#IGNORE
ignore in0
ignore in1
ignore in2
ignore in3
ignore in4
ignore in5
ignore in6
ignore in7
ignore in8
ignore intrusion0
ignore fan3
ignore fan4
ignore fan5
ifnore temp2

Автор: Yar4e

Средства мониторинга во FreeBSD

Операционная система FreeBSD как и другие альтернативные системы имеет на своем борту средства для мониторинга процессов, информации о дисках а также информацию о сетевых соединениях.Поскольку визуально эти средства расположенны в недрах каталогов , попробуем рассмотреть некоторые из них , перечислив их назначение. Читать