|
Подпишитесь на новости сайта по RSS
|
|
Главная страница
Здравствуйте!
Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...
Новости
|
|
|
В мире OpenSource существует прекрасная платформа мониторинга сетевого оборудования Zabbix. Грамотный админ одним из первых сетевых инструментов поднимает именно эту систему, чтобы практически в реальном времени понимать, что происходит у него в сети. Zabbix лучше всего ставить на выделенный сервер, чтобы его скрипты работали с физической сетевой картой. На вдумчивое конфигурирование Zabbix уходит несколько недель, чтобы полностью разобраться с ним и отладить все механизмы сбора данных.
Но что делать, если под рукой только единственный тестовый сервер, на котором крутится все что можно - от 1С с его PostgreSQL и апачевым веб-клиентом до видеонаблюдения? А бедолагу-админа завалили тоннами бумаги по безопасности, тратя все его время на проверки и прохождение очередных сертификаций? В такой ситуации можно и заколхозить самодельную легковестную систему монторинга, чтобы через нее видеть проблемы, возникающие хотя бы в ядре сети. Так сказать, до лучших времен.
Так у меня появилась маленькая самописная система мониторинга, и неплохо отработала несколько месяцев, пока на предпиятии не появились новые сервера и админ наконец-то не настроил Zabbix. Написана система на Python. Особенность этой системы в том, что она способна делать различные замеры по ICMP и SNMP, а отправлять отчеты о критических ситуациях может на только на email, но и по SMS. Да, для этого дела я прикрутил к серверу по COM-порту старенький мобильник Siemens M50 с параллельной подзарядкой и с SIM-картой, которая была активирована на корпоративный тариф с бесплатными SMS-сообщениями в количестве 2000 штук.
Логика настройки этой системы следующая: сначала настраивются источники обрабатываемых данных (источники именованных значений), и потом настраиваются правила, которые выполняют различные проверки полученных значений. В случае, если обнаружено отклонение от допустимых величин, считается что наступило критическое событие.
Сами именованные значения могут иметь обычные Python-типы int, float, bool, string.И вытягиваются они из оборудования примерно так:
measureValue.addItem( "APC5000_Temperature", # Имя значения "int", # Тип значения "snmpDeviceSensor", # Механизм получения "10.153.0.88", # IP устройства ".1.3.6.1.4.1.318.1.1.1.2.2.2.0") # SNMP идентификатор
А сравнение возможно по принципу больше/меньше/равно и даже можно оценивать градиент, так как недавняя история каждого значения хранится в БД SQLite3. И выглядит описание правил примерно так:
valueAnalytic.addRule({ "ruleName" : "ИБП APC5000 слишком горячий", "ruleType" : "aboveOrEqual", "valueName" : "APC5000_Temperature", "targetValue" : 35 })
valueAnalytic.addRule({ "ruleName" : "На ИБП APC5000 нет напряжения питания", "ruleType" : "equal", "valueName" : "APC5000_InputVoltage", "targetValue": 0
})
Исходники этой системы мониторинга опубликованы на GitHub:
Проект Monitoring-sp
Почему в названии используется суффикс "-sp"? Потому что нотификация возможна по SMS и по электропочте (Post), вот почему.
К вопросу, зачем вообще заморачиваться с COM-портом и SMS, рекомендую рассмотреть непредвиденные ситуации, когда из-за форсмажора обрубается интернет (например, перерубили кабель, возник пожар, которокое замыкание в блоке питания маршрутизатора), и никто в этом случае никакого письма не получит, да и SMS, отправляемое через какое-нибудь Interner API, тоже отправлено не будет. Конечно, лучше было бы использовать промышленный GSM-модуль. Но предприятия бывают разные, и есть такие, в которых доказать необходимость закупки такого устройства невозможно, а если чудо и произойдет, то поставка затягивается на годы. В таких условиях, хочешь не хочешь, а расчехлишь свой старенький мобильник с AT-командами, и сделаешь из говна и палок очередного монстрика.
|
|
|
|
Пузомерка ТИЦ (тематический индекс цитирования) - однин из основных оценочных показателей качества сайта. Логично было бы видеть плавные изменения этой цифири во времени. Но не таков наш Яндекс! ТИЦ у него скачет в зависимости от... фиг знает чего. Сейчас вдруг обнаружил, что сайт Webhamster.Ru неожиданно получил нулевой ТИЦ.
Один раз уже такое было в 2015 году, и после краткосрочного обнуления ТИЦ, он возвращался на прежнее место, причем даже с увеличением значения:
![](/db/data/articles/436/scr_405.png)
Новое же обнуление ТИЦ затянулось на более длительный срок. С чем это связано - пока неясно. Есть предположение, что Яндекс резко невзлюбил сайты с размытым семантическим ядром - то есть, сайты обо всем. Так что если автор интересуется многими вещами, и не делает сайт с заточкой на одну тематику, то он в пролете. Хотя, это всего лишь предположение.
Однако интересно то, что количество посетителей не уменьшилось, хотя с таким ТИЦ-ем траффик посетителей с Яндекса должен был бы совсем исчезнуть. В общем, что-то в Яндексе опять накрутили с алгоритмами оценки сайтов.
|
|
|
|
Возможно, некоторые пользователи заметили, что на страницах сервиса MyTetra Share появилась баннерная реклама книг с Озона. Я сам очень не люблю баннерную рекламу, тем более тизеры, и поэтому нашел вот такой компромис: книги рекламировать не стыдно, тем более если они соответствуют тематике сайта. Баннеры размещаются в правом верхнем углу страницы, вот так:
![](/db/data/articles/435/scr_404_02.png)
Реклама книг с Озона провисела у меня два с половиной месяца, и теперь я её отключаю. Почему? Потому что не заработал на ней ни копейки. Я не знаю, что учитывает Озон в своей статистике заказов, но реальность такова, что факт покупки книги в статистику просто не попадает. Доход же партнеры Озона получают по поведенческому фактору, только если покупка состоялась. Для теста я специально организовал покупку книги через баннер на сайте, и... ничего! Для сайта с посещаемостью ~3000 посетителей в день и откруткой ~4000 страниц в день такой "успех" неприемлем.
Да, я еще раз убедился, что заработать в интернете на хороших вещах практически нереально. Пока что единственная действенная монетизация сайта - это Сапа, как бы ее не ругали вебмастера за все закидоны руководства в последнее время. Кстати, монетизация через Google Adsence тоже дохода не приносит. Осталось мне еще пощупать Яндекс.Директ. Если и с ним не получится, то вынужден буду констатировать, что заработок возможен только на тизерах. А это значит, что в рунете сформировалась такая копроэкономика, которая нацелена на самые низменные рефлексы пользователя. Нормальной рекламой могут заработать только крупные порталы, по моим прикидкам от 30 000 посетителей в сутки, на 100 000 станиц и более. То есть, портал должен быть раз в 10 больше, чем я имею сейчас. А вебмастера небольших ресурсов, для выживания своего сайта вынуждены играть именно в эту игру: испоганить сайт тизерами, либо держать заведомо убыточный ресурс. Других вариантов интернет-среда не предполагает, если, конечно, сайт не является игровым или что-нибудь не продает.
|
|
|
|
Давненько я хотел написать статью про Linux-утилиту xargs. Эта утилита входит в состав базовых программ, которые используются в Linux при составлении команд и написании bash-скриптов. Однако за все время работы с Linux я не нашел ни одного вменяемого описания на данную утилиту. Долгое время её синтаксис и работа оставалась для меня загадкой. Но постепенно, проведя некоторые эксперименты, я наконец разобрался с тем, что же эта утилита делает.
Наконец, недавно я нашел время чтобы написать свою небольшую статью про утилиту xargs:
Как сконструировать нужную команду с помощью xargs. Понимание xargs.
Данный текст должен помочь начинающим луноходам быстрее разобраться в премудростях bash-скриптинга.
|
|
|
|
Признаюсь: я неосилятор Vi, Vim и Emacs. Не могу я комфортно работать с этими странными *NIX редакторами, в которых нужно все помнить и просто знать как что делать. Я проходил встроенные туториалы Vi/Vim, но в конце забывал, что там было в начале. В emacs меня всегда удивляло то, что стандартная поставка идет с каким-то диким конфигом, пользоваться которым вообще невозможно. Но главное не это. Главное то, что редактировать текст приходится не только в консольном текстовом редакторе, но и в других местах: в полях ввода браузера, в специфических IDE, в различных GUI программах, да в том же офисе наконец. И я считаю, что везде должны использоваться одни и те же принципы, одна и та же логика, одни и теже сочетания клавиш.
Я не понимаю, как люди при работе в vi/vim/emacs делают одно и то же действие над тестом так, а в других программах, - те же действия над текстом, - эдак. Все время следить за контекстом работы - это очень утомительно. И поэтому я давно уже ищу человеческий консольный редактор под Linux, чтобы все популярные действия в нем делались так же как и в других частях DE.
Долго меня убеждали, что такого нет и не будет, потому что консоль, потому что терминал. Но я потихоньку разбирался с настройками, и, например, научился делать правильный и заметный курсор в Konsole и настраивать в терминале копипаст по клавишам Ctrl+C/Ctrl+V. Эти маленькие победы дали сумасшедшее удобство в работе. Я уже не задумывался, когда и где нужно нажимать Ctrl/Shift+Ins. Везде Ctrl+C/V и все! Но у меня все так же небыло нормального консольного редактора. Я около года пользовался редактором FAR в эмуляции, потом переключился на Sublime, потом на KWrite, о чем написал цикл из трех статей.
Но, скажем честно, KWrite - это очень хороший, но все-таки не консольный редактор. А хотелось иметь такой редактор, который бы работал не только в локальной консоли, но и удаленно через SSH. И чтобы небыло никакой разницы, локально ли правится текст, или текст правится на удаленной машине. Да, vi/vim частично обладают таким свойством. Но эта универсальность была достигнута дорогой ценой: полный отказ от привычных комбинаций с клавишами-модификаторами, и построение работы через алфавитно-цифровую часть клавиатуры, плюс извращенное использование клавиши Esc.
И вот, в 2016 году, совершенно неожиданно появился консольный редактор Micro, написанный с нуля на языке Go. Он оказался удивителен тем, что в нем - о ужас! - работали привычные сочетания клавиш! Он молча перебиндивал сочетания Ctrl+C/V, благодаря чему сразу работал привычный копипаст. Он интегрировался с буфером обмена DE. Он показывал помощь по клавише F1, сохранял файл по Ctrl+S, отменял действия клавишей ESC, и даже по этой же клавише завершал свою работу. И даже текст выделялся привычными клавишами Shift+Стрелки. Для меня это было сигналом к тому, что авторы данного редактора на одной волне со мной. И я решил начать им пользоваться постоянно.
В процессе использования данного редактора выявилась пара проблем, которая была успешно решена при общении с автором редактора. Я сделал себе небольшие записульки о том, как пользоваться и что надо настроить в первую очередь в редакторе Micro:
Следует сказать, что по-умолчанию некоторые комбинации клавиш работают не так, как привычно. Например, клавиши выделения до начала/конца строки придется настраивать отдельно. Но настройки в Micro очень обширны и работают как положено.
На русском языке материалов об этом редакторе практически нет. Поиск Яндекса выдает на первой странице всего три статьи:
Тем не менее, редактор очень хорош, а если в нем еще и появится привычное многим меню, то он вообще сможет стать идеальной программой для редактирования текстов.
|
|
|
|
В последней актуальной версии PIM-менеджера MyTetra v.1.42 появилась возможность делать в текстах записей ссылки на другие записи. Такие ссылки называются внутренними. Для пользователя это выглядит следующим образом: кликнув правой кнопкой мышки на запсиь, выбирается пункт "Скопировать ссылку на запись". После чего данную ссылку можно использовать как обычные http-ссылки, размещаемые в тексте с помощью кнопки редактирования ссылки (иконка земного шара, пристыкованного к проводу).
Для обозначения внутренних ссылок был создан специальный протокол "mytetra". На уровне HTML-кода ссылки на записи представляются в виде:
<a href="mytetra://note/идентификатор_записи">Это ссылка на другую запись</a>
Внутренние ссылки работают в самой программе MyTetra, однако до сегодняшнего момента сервис MyTetra Share не умел преобразовывать такие сылки в обычные URL, чтобы перекрестная навигация работала и в браузере при просмотре баз знаний. В версии 0.44 этот недостаток был устранен, и теперь ссылки на другие записи в текстах записей не вызывают ошибки, а открывают соответствующие Web-страницы.
|
|
|
|
Нашел тут интересный сайт MegaIndex, на котором есть куча бесплатных инструментов для анализа сайта. Один из инструментов называется "Внешние ссылки", с помощью которого можно анализировать ссылки, ссылающиеся на анализируемый сайт. В нем есть раздел "Популярно в анкорах", в котором формируется графическое облако слов, чаще всего используемых в ссылках на сайт. Напрямую можно попать на страницу внешних ссылок вот так:
https://ru.megaindex.com/backlinks/имя_вашего_сайта?sort=desc&sort_by=domain_rank
В результате будет сформировано облако, которое наглядно дает понять, как выглядит сайт в интернете с точки зрения ссылок, ссылающихся на него на различных сайтах. Для моего проекта WebHamster.Ru это облако выглядит так:
![](/db/data/articles/431/cloud_03_mini.png)
Все ключавые слова очевидны, за исключением загадочных Family, Gift Card, Racing. Предполагаю, что они образовались в результате использования форума сайта в спамерской сети, когда на форуме спамботами публикуются посты с сылками, а на эти посты делаются ссылки на других сайтах, чтобы для целевого ресурса сформировать ссылочную массу с хороших сайтов для людей. Я периодически борюсь со спамерами, и для этого сделал и самодельную sin/ellipse искаженную капчу, и прикрутил проверку через stopforumspam.com, однако настойчивые спамеры пролезают вручную. Поэтому, если оставить форум без присмотра на неделю, то несколько сообщений будут болтаться, пока их не удалишь. Так что сейчас подумываю о прикручивании модуля, который будет удалять сообщения после их публикации.
В общем, сервис интересный, рекомендую вебмастерам проанализировать свой сайт им, а так же другими инструментами типа Xtool и ему подобными. Удачи!
|
|
|
|
В рамках работ по внедрению криптоанархии в жизнь, наконец-то было сделано то, что давно должно было быть сделано. Сегодня я перевел свой сайт в режим шифрования по протоколу HTTPS (SSL). Теперь только злой человек посередине сможет перехватить мой пароль на админку. Повышение секьюрности - бесполезный, но необходимый шаг, который рано или поздно надо было совершить.
Для получения сертификатов я использовал бесплатный сервис Let's Encrypt. Данные сертификаты выдаются на три месяца, поэтому помимо включения протокола HTTPS, нужно настраивать автоматическое продление. Все производимые настройки я методично записывал, и в результате получилась такая статья:
Настройка сертификатов Let's Encrypt HTTPS на веб-сервере NGinx в Debian Linux Jessie
Внимание! Некоторое время на сайте могут наблюдаться проблемы, связанные с переходом на новый протокол. Я не робот, и сразу все неполадки заметить не могу. Можно рапортовать о проблемах мне на email (см. внизу страницы) или писать в гостевую книгу.
|
|
|
|
По просьбам пользователей PIM-менеджера MyTetra было проведено нагрузочное тестирование версии 1.42. Проверялась работа с базой, содержащей 100 000 заметок.
Специально для тестирования был написан скрипт генерации тестовой базы generateBase.php, размещенный в настоящий момент в ветке experimental. Данный скрипт создает в отдельном каталоге тестовую базу, наполненную ветками и записями со случайно сгенерированными текстами.
Результаты тестирования изложены в следующей статье:
Нагрузочное тестирование MyTetra 1.42 на 100 000 записей
Краткие выводы следующие: MyTetra без проблем работает с базой такого размера. Самая большая просадка в скорости выполнения различных действий - это, как и ожидалось, полнотекстовый поиск по всей базе знаний. Для решения этой проблемы необходимо внедрять в проект возможность индексации текстов.
В остальном результаты нагрузочного тестирования очень обнадеживающие. Всем пользователям MyTetra рекомендую ознакомится.
|
|
|
|
Я никогда не пользовался соцсетями. Когда началась соцсетевая лихорадка, я с удивлением смотрел на людей, которые готовы были рассказать о себе всё и сутками залипали у монитора в поисках ржаки, споров, хайпа, лайков и прочей социомлядской дребедени. Я отчетливо видел, как социальные сети привязывают к себе людей (и продолжают это делать сейчас). Я не желал снижать уровень цифровой приватности и не хотел тратить время на соцсети, потому что прекрасно понимаю, насколько сильно они меня могут затянуть.
Но с появлением сотового телефона с ОС Андроид стало ясно, что от всевидящего ока никуда не денешься. И смысла в десктопной цифровой гигиене, с ОС Linux в главной роли, уже никакого нет. Но так как я не влился в соцсетевое братство с самого начала, мне до сих пор наличие соцсетей было бы совершенно до лампочки, если бы... Если бы я не был разработчиком своего сайта.
Мне постоянно твердили: как ты вообще держишь сайт без социальных кнопок? Откуда у тебя такая дикая посещаемость, если ты никогда не занимался раскруткой?
![](/db/data/articles/427/owl.png)
Я пожимал плечами, и говорил, что наверно это из-за того, что все материалы сайта хорошо протегированы, и поисковики его за это любят. Так оно и было, и, надеюсь, будет.
В установке социальных кнопок меня останавливало то, что, как я думал, придется регаться во всех социальных сетях, чтобы получить код своей кнопки. На деле это оказалось верно только наполовину: некоторые соцсети для доступа к актуальной документации требуют авторизацию, а некоторые публикуют API в открытую. В кнопках нет привязки в соцсетевому аккаунту - это хорошо. Но вот культурным шоком для меня было то, что соцсети в своем API не имеют стандартных квадратных кнопок с логотипом сети. Только прямоугольные кнопки, которые не так то просто впихнуть в компактный дизайн. Народ извращается как может: рисует свои кнопки и время от времени адаптирует свой код к постоянно меняющимся API то одной то другой соцсети, или пользуется сторонними сервисами, предоставляющими наборы социальных кнопок.
Я решил не тратить время на написание своего костыля, и просто воспользовался сервисом uSocial.pro. В бесплатном доступе у него есть четыре вида простецких кнопок, а большего мне и не надо. Да, еще одним культурным шоком было то, что вебмастера готовы ежемесячно платить стороннему сервису по два-три доллара за использование красивеньких социальных кнопок у себя на сайте. Мне бы в голову никогда не могла прийти такая услуга и то, что еще найдутся регулярно платящие пользователи за какие-то кнопочки. Но вот жизнь показывает, что и такая схема монетизации возможна. Кошмар.
В общем, немного поковырявшись, я сделал для своего сайта социальные кнопочки. На самом сайте они располагаются на правой панели:
![](/db/data/articles/427/social_on_site_02.png)
Для сервиса MyTetra Share социальные кнопки располагаются в заголовке записи:
![](/db/data/articles/427/social_on_mytetra_share.png)
Теперь можно будет посмотреть, как эти кнопки влияют на посещаемость, и есть ли в них вообще смысл.
|
|
|