Данная статья будет небольшой и она будет посвящена Спискам интерфейсов в MikroTik RouterOS. В ней я постараюсь рассказать, что такое “Списки интерфейсов” и для чего они нужны.
Все действия производились на прошивке 6.42.9 (Long-Term)
Описание на MikroTik WIki: Manual:Interface/List [ENG]
Сами списки интерфейсов в RouterOS V6 (на 10.10.2018) присутствуют довольно давно, тогда они еще были очень простыми. Читать →
С появлением стандартных готовых шаблонов для различных приложений жизнь с заббиксом стала значительно проще. Сегодня я покажу это на примере мониторинга Mysql сервера в Zabbix 5 с использованием стандартного шаблона. Все стало не просто, а очень просто. Практически ничего делать не надо, разработчики все сделали за нас.
Введение
Напоминаю одну важную деталь. Если вы ставите Zabbix Server не с нуля, а обновляете старую версию, у вас не обновляются стандартные шаблоны. А они последнее время сильно изменились, плюс появились новые. Посмотреть их можно на github — https://github.com/zabbix/zabbix/tree/master/templates.
В данном случае я буду использовать шаблон из директории /db/mysql_agent/. Он написан для старого агента. Напомню, что начиная с версии 4.4 доступна новая версия агента, написанная на Go — zabbix_agent2. Для него появился новый функционал и новые шаблоны. Я пока буду использовать старого агента, так как с новым еще не разбирался.
Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:
Для примера настроим мониторинг Mysql на самом сервере мониторинга Zabbix. Так как это часто узкое место производительности системы, мониторинг базы zabbix лишним не будет. Первым делом добавим новые параметры в агенте. Для этого создаем конфигурационный файл /etc/zabbix/zabbix_agentd.d/template_db_mysql.conf следующего содержания.
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
После этого сразу перезапустим zabbix-agent.
systemctl restart zabbix-agent
Дальше идем в консоль mysql и создаем пользователя, от которого будет работать мониторинг. Ему достаточно ограниченных прав на чтение.
mysql -uroot -p
> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'TTRy1bRRgLIB';
> GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
> quit
Теперь смотрим, где у нас домашняя директория пользователя zabbix.
Подготовка к мониторингу mysql сервера завершена. Идем теперь в web интерфейс системы мониторинга Zabbix.
Настройка мониторинга Mysql сервера
В веб интерфейсе идем в раздел Настройка -> Шаблоны и импортируем шаблон template_db_mysql_agent.xml.
После этого прикрепляем добавленный шаблон к хосту, где мы только что настроили zabbix-agent и добавили пользователя mysql. Для того, чтобы сразу увидеть все метрики, принудительно выполним сбор данных. Для начала вручную запустим правила автообнаружения, так как у них интервал проверок 1 час. Не хочется столько времени ждать данных. Идем в хост, далее во вкладку Правила обнаружения. Выбираем 2 правила от шаблона mysql и запускаем их.
Ждем несколько секунд и переходим на вкладку Элементы данных. Фильтруем элементы по названию группы MySQL и Zabbix raw items.
Теперь переходим к списку элементов данных. Выделяем все элементы, которые относятся к Mysql и имеют тип Zabbix Agent и запускаем их принудительную проверку. Основной элемент тут — MySQL: Get status variables. Почти все итемы получаются в результате предобработки данных с него.
После этого идем в раздел Мониторинг -> Последние данные и наблюдаем собираемые метрики.
На этом по базовой настройке мониторинга сервера mysql все. Дальше раскрою некоторые нюансы.
Мониторинг репликации MySQL
Вообще, шаблон достаточно навороченный. Там и автообнаружение, и зависимые элементы с предобработкой xml, и предобработка с помощью JavaScript. Рассмотрю отдельно некоторые моменты представленного шаблона zabbix по мониторингу mysql. Во-первых, некоторые параметры задаются с помощью макросов. Вот их список.
Из настраиваемых параметров ясно, что мониторить можно не только локальный mysql сервер, но и удаленный, задав параметры подключения к нему.
Так же в шаблоне реализован мониторинг репликации базы данных. Для этого есть отдельное правила автообнаружения с триггерами. Теперь моя старая статья по мониторингу репликации mysql стала не актуальна. Этот же функционал реализован в базовом шаблоне. Если у вас не настроена репликация, то автообнаружение просто не найдет ничего. Можно это правило выключить.
Для мониторинга репликации автоматически создаются 4 триггера.
Replication lag is too high (over {$MYSQL.REPL_LAG.MAX.WARN} for 5m) — отставание реплики больше заданного в макросе времени. По умолчанию 30 минут.
The slave I/O thread is not connected to a replication master — Демон по сбору бинарного лога запущен, но не подключен к мастеру. Его параметр slave_io_running имеет значение не Yes.
The slave I/O thread is not running — демон по сбору бинарного лога не запущен. Его параметр slave_io_running равен No.
The SQL thread is not running — демон выполнения команд локального relay лога не запущен. Его парметр slave_sql_running равен No.
В целом, этих четырех метрик достаточно для мониторинга репликации. Я так же настраивал мониторинг именно их.
Триггеры шаблона
Для полноты картины, поясню остальные триггеры шаблона, чтобы у вас было понимание, за чем они следят и как правильно реагировать на них. Ниже список триггеров шаблона для мониторинга mysql сервера.
Buffer pool utilization is too low (less {$MYSQL.BUFF_UTIL.MIN.WARN}% for 5m) — под innodb пул выделено слишком много памяти и она не используется вся. Триггер чисто информационный, делать ничего не надо, если у вас нет дефицита памяти на сервере. Если нехватка оперативной памяти есть, то имеет смысл забрать немного памяти у mysql и передать другому приложению. Настраивается потребление памяти пулом параметром innodb_buffer_pool_size.
Failed to get items (no data for 30m) — от mysql сервера не поступают новые данные мониторинга в течении 30 минут. Имеет смысл уменьшить этот интервал до 5-10 минут.
Refused connections (max_connections limit reached) — срабатывает ограничение на максимальное количество подключений к mysql. Увеличить его можно параметром mysql сервера — max_connections. Его необходимо увеличить, если позволяют возможности сервера. Напомню, что увеличенное количество подключений требует увеличения потребления оперативной памяти. Если у вас ее уже не хватает, нет смысла увеличивать число подключений. Нужно решать вопрос с потреблением памяти.
Server has aborted connections (over {$MYSQL.ABORTED_CONN.MAX.WARN} for 5m) — сервер отклонил подключений выше заданного порога в макросе. Надо идти в лог mysql сервера и разбираться в причинах этого события. Скорее всего там будут подсказки.
Server has slow queries (over {$MYSQL.SLOW_QUERIES.MAX.WARN} for 5m) — количество медленных запросов выше установленного макросом предела. Надо идти и разбираться с медленными запросами. Тема не самая простая. Надо заниматься профилированием запросов и решать проблемы по факту — добавлением индексов, редактированием запросов, увеличения ресурсов mysql сервера и т.д.
Service has been restarted (uptime < 10m) — информационный триггер, срабатывающий на перезапуск mysql сервера (не ребут самого сервера).
Service is down — служба mysql не запущена.
Version has changed (new version value received: {ITEM.VALUE}) — версия mysql сервера изменилась. Тоже информационный триггер, сработает, к примеру, после обновления mysql сервера.
На этом по мониторингу MySQL сервера с помощью стандартного шаблона Zabbix все. Надеюсь, я доступно и понятно раскрыл данную тему. Если у вас есть замечания, жду вас в комментариях.
Заключение
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!
Здорово, что разработчики сами занялись написанием готовых шаблонов для мониторинга сетевых устройств, операционных систем и приложений. Поняли, что это будет способствовать развитию продукта. Многие шаблоны, которые разрабатывали сами пользователи, становятся неактуальными, так как разработчики их делают лучше. Собственно, это и логично. Кто лучше всех знает продукт, как не они. За последнее время появилось много обновления по этой теме. Надеюсь, будет еще больше.
Недавно вышла новая версия сервера Zabbix 5.0. Сегодня я расскажу, как обновить предыдущую версию zabbix 4.4 до актуальной 5.0. Делать это придется в обязательном порядке всем, так как версия 4.4 не LTS и имеет ограниченное время поддержки. В то время 5.0 как раз LTS с циклом поддержки в 5 лет.
Введение
Ранее я написал подробную статью по установке и настройке Zabbix 5, где в том числе рассказал своими словами обо всех основных нововведениях. Настоятельно рекомендую с ними ознакомиться, прежде чем обновляться. Обязательно сначала прочитайте всю статью, только потом начинайте обновление. По ходу дела будут важные замечания.
Второй момент. В этой версии очень много изменений, как в настройках, так и в интерфейсе. Обновлять без подготовки не рекомендую. Если у вас несколько серверов, начните с самого простого. Если же только один, то настоятельно рекомендую сделать его копию и проверить обновление на ней.
Еще один момент, который я упускал, когда обновлялся со старых версий Zabbix. В новых версиях часто обновляются стандартные шаблоны, но вы их не увидите при обновлении. У вас останутся работать старые версии. Новые нужно вручную переносить из свежих установок и подключать к хостам.
С одной стороны это плюс, так как шаблоны зачастую меняются очень сильно. Нужен ручной контроль. А с другой стороны неудобно вручную обновлять все шаблоны, которые еще и зависимости свои имеют. Рассмотрю все эти моменты по ходу дела. Приступаем к обновлению сервера мониторинг Zabbix версии 4.4 до 5.0.
Подготовка к обновлению
Перед обновлением, сделаем на всякий случай бэкап базы данных. Для этого предварительно остановим сервер.
systemctl stop zabbix-server
У меня что-то активно писалось в базу, поэтому сервер выключался долго. При этом systemd выдал ошибку:
Failed to stop zabbix-server.service: Connection timed out
See system logs and 'systemctl status zabbix-server.service' for details.
Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.
ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками
На всякий случай сохраним php скрипты админки, чтобы можно было оперативно запустить старую версию в случае нештатной ситуации. Хотя лично я сделал снепшот виртуалки перед обновлением, чтобы откатиться назад в случае проблем.
Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/5.0/ Дальнейшее обновление не будет отличаться от текущего.
К обновлению подготовились, можно приступать.
Установка обновления zabbix 4.4 до 5.0
Centos 8
Устанавливаем само обновление zabbix на сервер Centos следующей командой:
Это список пакетов заббикса для общего случая. Если у вас установлено что-то еще, лучше обновить все сразу. Посмотреть список установленных пакетов zabbix можно командой:
В Centos 7 обновить Zabbix с 4-й вертки на 5-ю может оказать не такой простой задачей. Связано это с тем, что необходима версия php 7.2, в ее в базовых репозиториях Centos 7 нет. Необходимо подключать репозиторий centos-release-scl и ставить пакеты из него. Но просто так взять и поставить не получится, будет конфликт с текущими версиями пакетов. Так что нужно аккуратно что-то удалить, а что-то добавить. Действуем аккуратно и внимательно.
Удаляем старые пакеты, которые будут заменены при обновлении:
yum remove zabbix-web-*
Подключаем репозиторий centos-release-scl:
yum install centos-release-scl
Редактируем файл /etc/yum.repos.d/zabbix.repo, разрешая обновляться пакетам из zabbix-frontend. Не забудьте проверить, что у вас подключился репозиторий от 5-й версии.
[zabbix-frontend]name=Zabbix Official Repository frontend - $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
Теперь убедитесь, что у вас активирован новый конфиг zabbix для apache. У вас должен быть файл /etc/httpd/conf.d/zabbix.conf, а в нем следующая строка:
Дальше инструкция общая для всех систем. После завершения обновления, запускаем сервер:
systemctl start zabbix-server
В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.
tail -f /var/log/zabbix/zabbix_server.log
После завершения обновления базы, сервер запустится. После этого можно запустить и агент.
systemctl start zabbix-agent
В логах агента и сервера можно посмотреть версию запущенных сервисов.
Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.
chown -R nginx:nginx /etc/zabbix/web
Можете лицезреть обновленную версию web интерфейса.
Сначала провел обновление на небольшом сервере. У меня весь процесс прошел без ошибок и накладок. Новый интерфейс сразу заработал.
Основные изменения в интерфейсе Zabbix 5.0
Я потратил некоторое время, пока искал привычные настройки на новых местах. Чтобы сэкономить вам время, дам несколько подсказок.
Web проверки и графики теперь живут в разделе Узлы сети.
Я долго искал web проверки и перепугался, не убрали ли их совсем из системы. Для меня это очень актуальный функционал. С его помощью настроен мониторинг сайтов.
Для того, чтобы посмотреть на одном экране набор произвольных графиков хотса, надо перейти в Узлы сети, открыть графики конкретного хоста. Затем перейти в Фильтр и там выбрать необходимые графики. Стало удобно.
Раньше, чтобы быстро посмотреть несколько графиков на одном экране, надо было их собирать в дашборд или комплексный экран. Теперь можно без проблем вывести в три клика все, что надо. Жаль, что сами графики так и остались старыми. Выглядят они ужасно 🙁
Настройка шаблонов оповещений теперь находится в способах оповещений. Все старые шаблоны, что были в действиях, удалены. Так что сохраняйте их перед обновлением.
Вот подтверждение того, что несмотря на обновление zabbix server до 5.0, шаблон остался старый.
В новом шаблоне этого триггера уже нет. Так что добавлять в систему и обновлять шаблоны у хостов придется вручную. Я уже немного занимался этим еще в версии 4.4 и могу сказать, что это хлопотно. В новых шаблонах больше данных и триггеров, которые не всегда и не везде нужны. Надо внимательно все смотреть и отключать не нужное. А так же редактировать некоторые триггеры под свои нужды.
С другой стороны, если вас старые шаблоны полностью устраивают, то и менять их не обязательно. Я скорее всего на старых установках так и оставлю старые шаблоны, а в новых буду использовать новые. Потом сделаю какую-то универсальную компиляцию для себя из того, что нужно конкретно мне.
Android — это операционная система с открытым исходным кодом (на основе ядра Linux). Это позволяет её легко модифицировать, практически для каждого Android-смартфона выходит масса кастомных прошивок. Но открытость ОС используется активно и мошенниками, которые создают вирусное ПО, что способно обходить все защитные механизмы Android. Да, Google регулярно выпускает патчи безопасности, но это происходит лишь после того, как «дыра» в защите будет обнаружена хакерами. Так подвержен ли Андроид заражению вирусами? Нужен ли антивирус на телефон и почему не каждый из них можно использовать?
Что делает антивирус
Такая программа не просто выполняет проверку установленных приложений, но ещё и отслеживает их работу в фоне. И в случае «подозрительных» действий (например, приложение для прослушивания музыки запрашивает доступ к камере или местоположению) — обязательно запрещает это и уведомляет пользователя.
Зачем антивирус на Андроид? Для защиты конфиденциальных данных пользователя, которые в теории можно использовать для шантажа или для получения доступа к его платежным реквизитам. И практика показывает, что Android хоть и имеет десятки механизмов защиты от подобных действий программ, но обойти их можно, ведь хакеры регулярно находят новые варианты обхода ограничений прав доступа.
Нужен ли смартфону антивирус
Пользователь подвергает свой Android-смартфон заражению в следующих случаях:
был разблокирован загрузчик (для установки неподписанных версий Андроид);
на телефоне получен root-доступ (позволяет вносить изменения в системный раздел, где находится ОС и её резервные копии);
на телефон установлены приложения из неизвестных источников (через APK-файлы);
телефон от ненадежного производителя (в устройства от малоизвестных китайских производителей нередко уже изначально интегрировано рекламное ПО);
в телефоне включена функция «Отладка по USB» (это позволяет дистанционно управлять его системным разделом, когда смартфон подключен к ПК через USB-кабель);
в настройках GooglePlay отключена проверка установленных программ на вирусы.
Как избежать заражения без установки антивируса? Не делать ничего из того, что указано выше. То есть пользоваться телефоном без каких-либо модификаций ОС, инсталлировать программы только из GooglePlay и регулярно устанавливать обновления. Но и это не даёт 100% гарантию того, что заразить устройство вирусом не получится. Особенно это касается тех устройств, на которых установлены устаревшие версии Андроид и их программная поддержка со стороны производителя прекращена.
Ещё один распространенный вариант обмана пользователя — это использование фишинговых сайтов. Они маскируются под обычные веб-ресурсы (например, интернет-магазины), предлагают совершить покупку и ввести платежные реквизиты. Для пользователя это не выглядит чем-то опасным, но на деле он самостоятельно передает свои данные мошенникам. Android от подобных атак защитить смартфон не может. А вот установленный антивирус предупредит пользователя о том, что используемый им сайт является подозрительным.
Так надо ли устанавливать антивирус на телефон? Однозначно да! Ведь к смартфону сейчас привязаны и банковские сервисы, и электронные кошельки. И если к нему будет получен несанкционированный доступ, то это теоретически может привести к краже личных данных и фото, паролей, платежных реквизитов. Да и на https://www.itsdelta.ru/catalog/laboratoriya-kasperskogo/kaspersky-internet-security-dlya-android/ Касперский для Андроида цена не из тех, что стоит экономить и рисковать.
Безопасен ли GooglePlay
Недавно компания Symantec провела массивную проверку приложений из GooglePlay (для США региона). И было обнаружено 7 вредоносных программ, которые теоретически могли предоставить возможность для дистанционного управления устройством третьим лицам. Вскоре их удалили, но утилиты и сейчас можно скачать, установить через сторонние магазины приложений (типа ApkMirror).
Поэтому на 100% быть уверенным в том, что в GooglePlay нет вирусов — нельзя. Устанавливаемая из данного магазина программа может и не содержать зловредного кода, но при запуске она его загружает с удаленного сервера, а после — настоятельно запрашивает права доступа у пользователя. Этот механизм взлома остается актуальным даже сейчас.
Патчи безопасности
Нужен ли антивирус для Android, если у пользователя «свежий» телефон с последней версией ОС? Тоже да. Потому что у многих производителей обновления системы безопасности — редкие. Google патчи выпускает регулярно, но после этого их нужно адаптировать под установку на каждое устройство. Этим занимается сам производитель. Но некоторые из них могут задерживать обновления более чем на 12 месяцев. И всё это время в безопасности девайса есть «дыра», которой могут воспользоваться мошенники.
Самыми «злостными» в этом плане являются компании Oppo, ZTE, Lenovo, Fairphone. Так что даже на «свежие» смартфоны данных производителей антивирус устанавливать нужно в обязательном порядке.
Платный или бесплатный антивирус
В GooglePlay есть сотни бесплатных антивирусов. Но в 2020 году один из них — Loapi, был заподозрен в наличии зловредного кода. Детальная проверка показала, что в него интегрирован скрипт, нагружающий CPU устройства до 100% для выполнения несанкционированных задач (вероятней всего, для майнинга криптовалюты). А вот в качестве баз данных сигнатур по вирусному ПО Loapi использовал данные от Avast. Можно ли считать, что такой антивирус является надежным?
Поэтому предпочтение следует отдавать платным антивирусам от надежных разработчиков. Они также быстрее обновляются, имеют дополнительные функции (защита от спама, блокировка включения режима «точка доступа» и так далее).
Итого, нужен ли антивирус на телефон Андроид? Обязательно, причем для него нужно регулярно загружать свежие базы сигнатур. И в дополнение к этому не следует устанавливать программы не из GooglePlay, пользоваться не обновленной прошивкой. В этом случае пользователь будет защищен на 99,9% от возможного заражения.
В WordPress отключение редакций и ревизий приносит умиротворение и порядок. Не знаю, как вас, меня иногда бесит огромное количество этих самых ревизий. И, ладно бы, мой сайт прост как грабли и не имеет большого количества функционала и контента. А если это большой сайт и контента много и он добавляется часто? Беда. Редакции — это резервные копии, которые сохраняются в базе данных при каждом обновлении поста или страницы. Если Вам все же нужны ревизии записей и страниц, то можно ограничить количество их сохранения, а можно полностью отключить и удалить.
Итак, решение принято. Мы хотим ограничить количество редакций или отключить их вовсе. Пути три:
Ограничить редакции и ревизии можно при помощи:
WP_POST_REVISIONS
, поместив в config.php:
define('WP_POST_REVISIONS' , 1);
Поработать с хуком, таким образом либо ограничить редакции и ревизии, либо отключить: