Мониторинг событий Windows Server с отправкой события на почту

Windows Server 2008 умеет через свой Task Scheduler реагировать на заданные типы событий и отправлять почту с нотификацией. Но в данной реализации нельзя вместе с письмом отправить текст события, что не удобно.

Коллеги помогли найти альтернативную реализацию данной задачи: Evan Anderson поделился ею на вот этой странице. Заодно в его заметке дана ссылка на программу для запуска чего угодно сервисом NSSM, которая тоже достаточно полезна. Скрипт Эвана достаточно просто правится под свои нужны. Например, авторизацию SMTP я добавил такими строчками:

    objCDOMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    objCDOMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
    objCDOMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"

Очистка информации о разделах под Linux

Самый удобный способ удалить разделы на дисках, особенно если там была таблица GPT, это перегрузиться в Windows и запустить утилиту DiskPart. Использование dd на конец диска не осилил, тарахтело по полчаса на диск и ничего не сделало в результате.

Порядок определения дисков в Linux

Стыдно признаться, НЕДЕЛЮ устанавливал Ubuntu на сервер. Проблемы начались после того, как я тестировал сервер под Windows с динамическими GPT дисками. Видать винда что то там сделала с областью загрузчика и после установки Ubuntu загрузка заканчивалась на мигающем курсоре, даже до Grub не доходило. Я долгое время тупил и что то там делал с MD RAID массивом при установке, пока не догадался, что порядок дисков для загрузки в BIOS и Linux отличается, а Ubuntu этого не просек. Windows, кстати, это определил и создавал 100 мегабайтный загрузочный раздел не на первом диске в списке дисков. В результате я не стал вспоминать как инсталлировать GRUB вручную с rescue диска, а просто инсталлировал Ubuntu на все диски поочередно оставляя их единственными в шасси. После этого заработала загрузка в нужной конфигурации software RAID. Вот выдержка по этому поводу из исходников драйвера:

4.4. Controlling Boot order on non SES-2 systems
    Linux discovers drives by walking sequentially through
    each channel/target/lun of the host adapter, mapping the
    drives that it finds sequentially to sda, sdb, sdc, etc.
    SAS, on the other hand, does not guarantee what order
    drives will be discovered, or appear.  Because of this
    "drive drift" (different than migration) a mechanism is
    needed to guarantee that SAS drives will be consistently
    mapped to device names.  The Razor BIOS provides a
    mechanism for determining what order drives have been
    reported to the system BIOS.  Because of the different
    mechanisms that system BIOS vendors use to manage
    devices in BIOS and because of the limited size of the
    Razor OCM structures, the Razor BIOS structures can not
    be use to consistently map all drives to a unique device
    name that persists across boots.
    The only way to solve the problem of "drive drift" is to
    require that users assign a UUID or label to the
    filesystems on their drives.  In addition, because swap
    does not support labels or UUIDs, we should recommend
    that the users use swap files instead of swap
    partitions.

Часовой пояс в Windows Mobile

Повадился некоторое время назад мой HTC Touch Pro упорно мне доказывать, что я нахожусь в Копенгагене. Устанавливал мне его часовой пояс, добавлял в закладку погоды этот славный город, делал его по умолчанию. Рылся в самых разных настройках типа HTC Location Service, GPS, реестр и тд. В конце концов нашел причину: Settings -> Personal -> Phone -> GSM/UMTS Services пункт Time Synchronization, эта функция была включена. То есть Utel, мой оператор на этом телефоне, видать, заливал мне неправильный часовой пояс. После отключения этой функции все встало на свои места. Utel-у за неправильное время и вчерашний факап с национальным роумингом – незачет.

Дни рождений в Outlook

Мне всегда очень плохо давалось запоминание дат, поэтому я, конечно же, заношу дни рождений близких мне людей в базу контактов в Outlook. Все бы было хорошо и я бы никогда не забывал поздравлять людей, если бы не глючность Microsoft Outlook. Этот глюк преследовал меня в 2003 офисе и никуда не делся в 2007. Дело в том, что иногда события “день рождения” для некоторых контактов сбиваются. Или вовсе пропадают из календаря или напоминалка об этом событии выскакивает на несколько недель раньше или позже. Сегодня я убил несколько часов, что бы добиться хоть каких то результатов в борьбе с этим глюком. Перечитал и перепробовал все, что смог найти.

То, что не помогает:

  • outlook /cleanreminders, outlook /resetfolders (http://support.microsoft.com/kb/286166)
  • очистка партнерства с Windows Mobile телефоном и создание всех дней рождений заново (на телефоне все контакты очищались при этом)
  • очистка всех контактов на Nokia/Symbian, перенастройка синхронизации и создание всех дней рождений заново
  • scanpst.exe проверка файла данных
  • сжатие файла данных
  • просто создание всех дней рождений заново

Надо сказать, что проверки выше – утомительное занятие. Контактов много, а проверки делаются медленно.

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

В конце концов был найден алгоритм, который, похоже, работает:

  • рассинхронизироваться с телефонами и очистить из базы контактов на телефонах
  • проверить файл данных на ошибки
  • создать временный файл данных Outlook и перенести туда все контакты
  • в календаре поиском найти все события дней рождений и юбилеев и удалить их
  • импортировать контакты из временного файла, при этом дни рождений не создадутся
  • перейти в контакты, вид “список телефонов”, добавить колонки дней рождений и юбилеев, отсортировать контакты по этим колонкам
  • пройтись по всем контактам и пересохранить день рождения и юбилей, это удобно делать нажимая F2 на поле, добавляя пробел в конце, сохранение клавишей Enter
  • синхронизировать телефоны

Хотя уверенности в том, что события дней рождений опять не пропадут нет.

Борьба со спамом 2

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

После рассмотрения нескольких вариантов решили попробовать Яндекс Спамооборону 1024. Бесплатный коммерческий антиспам для малого бизнеса. Ловит спам до того момента, как пропустит 1024 легитимных письма в день. Заодно релей на Ubuntu вместо FreeBSD переставили. Спамооборона встала как фильтр для postfix без проблем и сама прописала себя в конфиги.

СО сразу же начала исправно метить спам, но, как оказалось, бесплатная версия не умеет его блокировать, а только метит. Это не совсем хорошо, так как не хочется грузить Exchange, который находится за антиспам релеем, горами спама. Поэтому докрутил к postfix все тот же Amavisd-new. Свежеустановленный Amavisd-new без каких либо особых настроек и допиливаний сам весьма неплохо начал фильтровать спам, что пригодится, если будет превышен лимит СО1024. Результаты проверки СО1024 Amavisd-new игнорировал, поэтому пришлось дописать правило в /etc/spamassassin/local.cf:

header   D_YANDEX_SO    Subject =~ /^\[SPAM.*/
score    D_YANDEX_SO    60.0
describe D_YANDEX_SO    Checked by Yandex SO

Ловить хидеры X-SPAM-* не получилось. В документации туманно упоминается, что они игнорируются Amavisd-new/Spamassassin. Amavisd-new было указано весь обнаруженный спам убивать на месте. Чем еще хорошо все таки устанавливать Amavisd-new в паре со Спамообороной это тем, что он использует Clam-AV и банит EXE-шники.

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

  • Спам: 18138 писем
  • Вирусы: 1 письмо
  • Запрещенное сожержимое (.exe и тд): 157
  • Разрешена доставка: 474 письма

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

Размер шрифта и DPI в Windows 7

В Windows 7 реализована так называемая Per user DPI Settings. Из этого следует, что, если Windows посчитала, что для вашей комбинации адаптера и монитора стандартным является 120 DPI, то на Logon Screen и далее все шрифты будут увеличенного размера, что меня бесит. В свойствах Screen Resolution можно поменять DPI на стандартные 100% (96 DPI), но что бы Logon Screen тоже стал правильным, нужно создать ключик реестра: HKEY_USERS\.DEFAULT\Control Panel\Desktop\LogPixels, тип DWORD, значение 0x60 (десятичные 96). Еще есть ключ HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI, его я тоже поправил, на всякий случай.

Update: этого оказалось недостаточно. В некоторых окнах все равно наблюдались большие шрифты. Пришлось поиском в реестре исправить все найденные ключи LogPixels и в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts дать значения нужным ключам:

“Courier 10,12,15 (8514a res)”=”COURER.FON”
“MS Serif 8,10,12,14,18,24 (8514a res)”=”SERIFER.FON”
“MS Sans Serif 8,10,12,14,18,24 (8514a res)”=”SSERIFER.FON”
“Small Fonts (8514a res)”=”SMALLF.FON”

После этого все стало как нужно.

Windows 7 на стареньком Fujitsu Siemens AMILO L1310G

Решил попробовать хохмы ради поставить семерку на старенький домашний ноутбук. Ноутбуку 4 года, памяти чуть меньше 1 гигабайта. Он уже еле-еле жил под Windows XP и вел себя весьма странно. Например, USB порты работали только при включенном WiFi, ну и по мелочам. Поддержка драйверами от производителя тоже не очень радовала. Освобождая 16 гигабайт места на диске не верил, что даже setup запустится, но, тем не менее вставил диск и перезапустился.

Windows 7 мало того, что без проблем и лишних вопросов установилась. Она через Windows Update нашла все драйвера кроме модема, кардридера и утилиту включения WiFi кнопкой пришлось поставить (FS додумались сделать WiFi по умолчанию выключенным на этой модели ноутбука). USB работают как надо, по ощущениям все летает, даже Aero заработал. Похоже, Microsoft действительно сделали достойный продукт, который нормально работает даже на старом барахле.

Кстати мой основной ноутбук под семеркой живет без перезагрузки уже 16 дней:


Stress Test HDD для Windows

Если в мире linux, утилит для стресс тестирования HDD достаточно (dd, bonnie+, hdparm) и их легко найти, то для Windows у меня ушло пару часов, что бы найти достойную утилиту. Задача – нагрузить нужные разделы или физические носители постоянной максимальной активностью, что бы по прошествии достаточного времени (например неделя) выявить отказы и сбои.

Как и ожидалось, такая утилита есть и она бесплатна: Bart’s Stuff Test 5.

Extended Validation для SSL сертификатов на сайт

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

Прописывая в конфиге apache

SSLCertificateChainFile bla-bla-bla.crt

который обычно состоит из объединения нескольких промежуточных сертификатов конторы, которая выдает сертификат, имеет значение последовательность сертификатов в этом файле.

То есть, например, сначала (в случае с thawte) thawte Extended Validation SSL CA, затем thawte Primary Root CA. Потому как сертификат на сайт подписан первым. А первый подписан вторым. Когда сертификаты в файле лежали на оборот, проверялка выдавала ошибку.

Кстати вот ссылка на хорошую проверялку сертификата вашего сайта.