Архив метки: Linux

Установка 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

Защита сайтов на WordPress с помощью Fail2Ban

Ваши сайты на WordPress пытаются ломать?

Мой VDS находится под мониторингом Zabbix’а. Вчера я стал активно получать на почту сообщения о большой загрузке сервера.

Я не выдержал и зашел на Zabbix посмотреть графики загрузки.

CPU Utilization

Читать

Проверка скорости записи на диск в Ubuntu 18.04

Для того, чтобы измерить скорость записи на диск, можно воспользоваться стандартной утилитой linux — dd. С ее помощью мы создадим на диске файл размером 1 Gb частями по 1Mb.

Измеряем скорость записи на диск:

sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync

После чего мы можем наблюдать результат.

На одной из моих виртуальных машин он получился следующий (FirstVDS):

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 3.19209 s, 336 MB/s

На другом результаты оказались совершенно иные (Amazon Micro Instance EC2):

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 13.5856 s, 79.0 MB/s

На третьем результаты тоже оказались весьма иными (FirstVDS):

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 7.75306 s, 138 MB/s

Четвёртому результату вы наверняка будете очень удивлены:

 

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.528269 s, 2.0 GB/s

Такой скорости удалось достичь, использовав маленькую хитрость родом из 2000х годов, а именно — РАМдиск (как создать и использовать читайте по ссылке).

Возможно вас заинтересует недорогой, проверенный, честный и очень надежный хостинг отличное соотношение цены и качества от FirstVDS. Хочу сказать, что хостинг-провайдер полностью оправдал мои ожидания. Серверы работают стабильно, без сбоев, что для меня очень важно. Производительности хватает с головой — даже под нагрузкой всё работает быстро и плавно. Настройка проста и понятна, интерфейс удобный, а если что-то вдруг не получается, всегда можно обратиться в техподдержку. Ребята там реально молодцы — отвечают быстро и помогают по делу. В общем, я полностью доволен. Если кому-то нужен надёжный и доступный vds в аренду, могу смело рекомендовать!

Цены на виртуальные выделенные сервера. Стремительная активация сервера, гибкие условия и заманчивые предложения по оплате.

firstvds rpices server

Как использовать DANE / TLSA

DNS-аутентификация именных объектов (DANE) – отличная функция, которая использует преимущества подписанной зоны DNSSEC, чтобы сообщить клиенту, какой сертификат TLS он должен ожидать при подключении к безопасному адресату через HTTPS или SMTPS. Через безопасный канал (DNSSEC) клиент может запросить открытый ключ сервера. Это означает, что атака «Человек-в-середине» (MITM) с поддельным сертификатом будет выставлена напрямую, т. е. больше невозможно. Кроме того, доверие к органам сертификации (ЦС) больше не требуется. Читать

Сравнение файлов в консоли Linux

Нужно увидеть различия между двумя ревизиями текстового файла? Тогда diff — это команда, которая вам нужна. Из этого туториала вы узнаете, как легко использовать diff в Linux и macOS.

Погружение в diff

Команда diff сравнивает два файла и выдает список различий между ними. Чтобы быть более точным, он создает список изменений, которые необходимо внести в первый файл, чтобы он соответствовал второму файлу. Если вы будете иметь это в виду, вам будет легче понять вывод diff. Команда diff была разработана для поиска различий между файлами исходного кода и для вывода результатов, которые могут быть прочитаны и обработаны другими программами, такими как команда patch. В этом уроке мы рассмотрим наиболее полезные способы использования diff .

Давайте углубимся и проанализируем два файла. Порядок файлов в командной строке определяет, какой файл diff считает «первым файлом», а какой — «вторым файлом». В приведенном ниже примере alpha1 — это первый файл, а alpha2 — второй файл. Оба файла содержат фонетический алфавит, но второй файл, alpha2, подвергся некоторому дальнейшему редактированию, так что эти два файла не идентичны.

Мы можем сравнить файлы с этой командой. Введите diff, пробел, имя первого файла, пробел, имя второго файла и нажмите клавишу ВВОД.

diff alpha1 alpha2

Как мы анализируем этот результат? Если вы знаете, что искать, это не так уж плохо. Каждое различие перечисляется по очереди в одном столбце, и каждое различие помечается. Ярлык содержит цифры по обе стороны от буквы, например 4c4. Первое число — это номер строки в alpha1, а второе — номер строки в alpha2. Буква в середине может быть:

  • c: Строка в первом файле должна быть изменена, чтобы соответствовать строке во втором файле.
  • d: строка в первом файле должна быть удалена, чтобы соответствовать второму файлу.
  • a: Дополнительный контент должен быть добавлен в первый файл, чтобы он соответствовал второму файлу.

4c4 в нашем примере говорит нам, что четвертая строка alpha1 должна быть изменена, чтобы соответствовать четвертой строке alpha2. Это первое различие между двумя найденными файлами.

Строки, начинающиеся с < ссылаются на первый файл в нашем примере alpha1, а строки, начинающиеся с > ссылаются на второй файл, alpha2. Строка < Delta говорит нам, что слово Delta — это содержимое строки четыре в alpha1. Строка > Dave говорит нам, что слово Dave — это содержимое строки четыре в alpha2. Подводя итог, нам нужно заменить Delta на Dave в четвертой строке в alpha1, чтобы эта строка соответствовала обоим файлам.

Следующее изменение обозначено 12c12 . Применяя ту же логику, это говорит нам о том, что строка 12 в alpha1 содержит слово Lima, а строка 12 в alpha2 содержит слово Linux.

Третье изменение относится к строке, которая была удалена из alpha2. Метка 21d20 расшифровывается как «строка 21 должна быть удалена из первого файла, чтобы синхронизировать оба файла со строки 20 и далее». Строка < Uniform показывает нам содержимое строки, которую необходимо удалить из alpha1.

Четвертое отличие обозначено 26a26,28 . Это изменение относится к трем дополнительным строкам, которые были добавлены в alpha2. Обратите внимание на 26,28 на этикетке. Номера в две строки, разделенные запятой, представляют собой диапазон номеров строк. В этом примере диапазон составляет от строки 26 до строки 28. Метка интерпретируется как «в строке 26 в первом файле добавьте строки 26–28 из второго файла». Нам показаны три строки в alpha2, которые необходимо быть добавленным к альфа1. Они содержат слова Quirk, Strange и Charm.

Snappy One-Liners

Если вам нужно знать, являются ли два файла одинаковыми, используйте параметр -s (сообщать об идентичных файлах).

diff -s alpha1 alpha3

Вы можете использовать опцию -q (краткая), чтобы получить одинаково лаконичное утверждение о двух разных файлах.

diff -q alpha1 alpha2

Следует обратить внимание на то, что с двумя одинаковыми файлами опция -q (краткая) полностью закрывается и ничего не сообщает.

Альтернативный взгляд

Опция -y (рядом) использует другую компоновку для описания различий в файлах. Часто удобно использовать параметр -W (ширина) с видом рядом, чтобы ограничить количество отображаемых столбцов. Это позволяет избежать появления уродливых строк, которые затрудняют чтение. Здесь мы указали diff производить параллельное отображение и ограничивать вывод до 70 столбцов.

diff -y -W 70 alpha1 alpha2

Первый файл в командной строке, alpha1, показан слева, а вторая строка в командной строке, alpha2, показана справа. Строки из каждого файла отображаются рядом. Рядом с этими строками в alpha2 есть символы индикатора, которые были изменены, удалены или добавлены.

  • |: Строка, которая была изменена во втором файле.
  • <: Строка, которая была удалена из второго файла.
  • >: Строка, добавленная ко второму файлу, которого нет в первом файле.

Если вы предпочитаете более компактную сводную информацию о различиях в файлах, используйте параметр --suppress-common-lines. Это заставляет diff перечислять только измененные, добавленные или удаленные строки.

diff -y -W 70 --suppress-common-lines alpha1 alpha2

Добавьте цветовую подсветку

Другая утилита под названием colordiff добавляет цветовую подсветку к выводу diff. Это позволяет намного легче увидеть, какие линии имеют различия.

Используйте apt-get для установки этого пакета в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux используйте инструмент управления пакетами вашего дистрибутива Linux.

sudo apt-get install colordiff

Используйте colordiff же, как вы используете diff.

На самом деле, colordiff — это оболочка для diff, и diff делает всю работу за кулисами. Из-за этого все опции diff будут работать с colordiff.

Предоставление определённого контекста

Чтобы найти некоторую золотую середину между наличием всех строк в файлах, отображаемых на экране, и наличием в списке только измененных строк, мы можем попросить diff предоставить некоторый контекст. Есть два способа сделать это. Оба способа достигают одной и той же цели — показывать несколько строк до и после каждой измененной строки. Вы сможете увидеть, что происходит в файле в том месте, где была обнаружена разница.

Первый метод использует опцию -c (скопированный контекст).

colordiff -c alpha1 alpha2

Вывод diff имеет заголовок. В заголовке перечислены два имени файла и время их изменения. Звездочки (*) перед именем первого файла и тире (-) перед именем второго файла. Звездочки и тире будут использоваться, чтобы указать, какому файлу принадлежат строки в выходных данных.

Линия звездочек с 1,7 в середине указывает на то, что мы смотрим на линии от alpha1. Чтобы быть точным, мы смотрим на строки с первой по седьмую. Слово Delta помечается как измененное. Он имеет восклицательный знак (!) Рядом с ним, и он красный. Есть три строки не измененного текста, отображаемые до и после этой строки, поэтому мы можем видеть контекст этой строки в файле.

Линия штрихов с 1,7 в середине говорит о том, что мы сейчас смотрим на линии из alpha2. Опять же, мы смотрим на строки с первой по седьмую, причем слово Dave на четвертой строке помечено как отличающееся.

Три строки контекста выше и ниже каждого изменения — это значение по умолчанию. Вы можете указать, сколько строк контекста вы хотите предоставить diff . Для этого используйте опцию -C (скопированный контекст) с заглавной буквой «C» и укажите количество строк, которое вам нужно:

colordiff -C 2 alpha1 alpha2

Вторая опция diff которая предлагает контекст, это опция -u (унифицированный контекст).

colordiff -u alpha1 alpha2

Как и раньше, у нас есть заголовок на выходе. Эти два файла названы, и показано время их изменения. Есть тире (-) перед названием альфа1 и знаки плюс (+) перед названием альфа2. Это говорит нам о том, что тире будут использоваться для обозначения альфа1, а знаки плюс будут использоваться для обозначения альфа2. По всему списку разбросаны строки, начинающиеся со знаков (@). Эти строки отмечают начало каждого различия. Они также говорят нам, какие строки показываются из каждого файла.

Нам показывают три строки до и после строки, помеченной как отличающиеся, чтобы мы могли видеть контекст измененной строки. В едином представлении линии с разницей показаны одна над другой. Перед строкой из alpha1 стоит тире, а перед строкой из alpha2 стоит знак плюс. Это отображение достигает в восьми строках того, что для скопированного контекстного дисплея выше потребовалось пятнадцать.

Как и следовало ожидать, мы можем попросить diff точное количество строк унифицированного контекста, которые мы хотели бы видеть. Для этого используйте опцию -U (унифицированный контекст) с заглавной буквой «U» и укажите желаемое количество строк:

 colordiff -U 2 alpha1 alpha2

Игнорирование пустого пространства

Давайте проанализируем еще два файла, test4 и test5. В них есть имена шести супергероев.

colordiff -y -W 70 test4 test5

Результаты показывают, что diff находит ничего особенного с линиями Black Widow, Spider-Man и Thor. Он отмечает изменения с линиями Капитан Америка, Железный человек и Халк.

Так что же отличается? Что ж, в тесте 5 Халк пишется строчной буквой «h», а у «Капитана Америка» есть дополнительный пробел между «Капитаном» и «Америкой». Хорошо, это ясно, но что не так с линией Ironman? Там нет видимых различий. Вот хорошее эмпирическое правило. Если вы не видите этого, ответ — пробел. В конце этой строки почти наверняка есть пробел или два, или символ табуляции.

Если они не имеют значения для вас, вы можете diff игнорировать определенные типы различий строк, в том числе:

  • -i: игнорировать различия в случае.
  • -Z: игнорировать конечные пробелы.
  • -b: игнорировать изменения количества пустого пространства.
  • -w: игнорировать все изменения пробелов.

Давайте попросим diff снова проверить эти два файла, но на этот раз, чтобы игнорировать любые различия в случае.

colordiff -i -y -W 70 test4 test5

Строки с «The Hulk» и «The Hulk» теперь считаются совпадением, и для строчной буквы «h» не отмечается никакой разницы. Давайте попросим diff также игнорировать конечный пробел.

colordiff -i -Z -y -W 70 test4 test5

Как и предполагалось, конечный пробел должен был быть различием на линии Ironman, потому что diff больше не помечает разницу для этой линии. Это оставляет Капитана Америку. Давайте попросим diff игнорировать регистр и игнорировать все проблемы с пробелами.

colordiff -i -w -y -W 70 test4 test5

Указав diff игнорировать различия, которые нас не интересуют, diff сообщает нам, что для наших целей файлы совпадают.

Команда diff имеет много других опций, но большинство из них относится к созданию машиночитаемого вывода. Их можно просмотреть на странице руководства Linux. Параметры, которые мы использовали в приведенных выше примерах, позволят вам отследить все различия между версиями ваших текстовых файлов, используя командную строку и человеческие глаза.



2019-04-15T18:30:02
Вопросы читателей

Конвертация дисков qcow2 -> lvm в KVM (Proxmox)

Занимался на днях переносом виртуальных машин с обычного kvm гипервизора на proxmox. На исходном гипервизоре диски виртуальных машин были в формате qcow2. Я решил заодно сконвертировать диски из qcow2 в lvm и написать заметку об этом, чтобы не забыть.

Читать