Скриншот web страницы из командной строки linux

Поддерживаю один проект на bitrix, коробочное решение Интернет магазин + CRM. В один «прекрасный» момент вдруг заметили менеджеры, что уже несколько часов нет ни одного заказа. Проверил — так и есть, при открытии корзины где рассчитываются все доставки и оформляется заказ, страница открывается по 1-2 МИНУТЫ!!! Естественно клиенты не дожидаются и уходят. Виновник был быстро найден (один из модулей расчета стоимости доставки) и отключен. Он заработал снова, и мы его включили потом. Но это не дело-же, надо хотя бы мониторить. Все эти модули обычно написаны разными людьми / компаниями и при расчете обращаются к сторонним серверам, и если сервер лежит а в модуле не предусмотрели отлуп по таймауту — то ложится вся страница.


Начал искать, есть куча сервисов по мониторингу сайта, скорости загрузки страниц, но к сожалению, ни один из них не работает с полной отработкой javascript, ajax. Перерыл кучу старых библиотек под php, питон и кучу всего (мне надо было именно чтобы работало с linux. Потом нашел в сети несколько онлайн сервисов, которые умеют делать скриншоты сайтов. Думал уже сделать через них, но оказалось это не бесплатно да и зависеть от сторонних сервисов не хотелось. Решил тоже научится делать скрин сайта. Снова перелопатил кучу старых библиотек. Да, они работали, и обычные страницы сайта нормально скринились. Но вот корзина с добавленным в нее товаром — не отрабатывалась.


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


Ставим гугл хом:


ubuntu

sudo apt-get install google-chrome-stable


centos7

wget https://dl.google.com/linux/direct/google-chrome-stable_curr...

sudo yum localinstall google-chrome-stable_current_x86_64.rpm


centos8

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*

sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

wget https://dl.google.com/linux/direct/google-chrome-stable_curr...

sudo yum localinstall google-chrome-stable_current_x86_64.rpm


Делаем скрин:

google-chrome-stable --allow-running-insecure-content --ignore-certificate-errors --ignore-urlfetcher-cert-requests --reduce-security-for-testing --no-sandbox --headless --disable-gpu --hide-scrollbars -screenshot="y1.png" --window-size=1200,2400 "https://yandex.ru/search/?text=test"


И соответственно через bash скрипт я уже использую эту команду для вычисления скорости ответ и полной загрузки страницы, затем уже через телеграм бота делаю аларм если что-то не так.


Одно я не смог победить. Не знаю, какой по умолчанию у гугл хрома срок ожидания ответа страницы для генерации скрина. В дополнительных ключах для его запуска этого тоже не нашел (чтобы поставить например ждать ответа не более 30 секунд).


PS: Кто надумает использовать это решение для того-же самого, не забудьте положить товар в корзину интернет магазина, и лишь затем уже дергать страницу оформления заказа.

Скриншот web страницы из командной строки linux Системное администрирование, Интернет-магазин, Linux, Centos, Ubuntu, Мониторинг, Скриншот, Длиннопост

Лига Сисадминов

1.6K постов17.7K подписчиков

Добавить пост

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.