Сообщество - Лига Сисадминов

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

2 419 постов 18 936 подписчиков

Популярные теги в сообществе:

36

Ужас админа

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

Ужас админа

Всего ужаса это фото не передает. Пилот, два двойника, пак РОЕ-инжекторов смотанных скотчем, куча коаксиалки и витаху торчащая во всех углах. А держится все это чуда на проводках и хамутах.

Показать полностью 1
27

Создание Low-Level Discovery в Zabbix с использованием PowerShell.

Иногда нужно настроить мониторинг каких-либо объектов на серверах, которые могут изменятся, например IIS сайты\пулы, размеры файлов, размеры кластерных дисков, базы данных и прочее. Для получения самих значений можно использовать встроннее метрики, например Performance Monitor в Windows Server, либо же скрипты\запросы, которые их получают.

Трудности доставляют сами изменяющиеся объекты, которые могут добавлятся\убираться, и каждый раз ручками конфигурировать итемы на хостах как-то не хочется. Вот тут нам поможет Low-level discovery (LLD).


К примеру у вас есть сервер, на котором крутятся сайты, которые ваши разработчки с некой переодичностью добавляют\удаляют. Задача мониторить количество коннекций к сайту, количество get/head/post запросов, статус апликейшн пулов (запущен или нет).


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


И так для создания нового LLD нужен скрипт,а даже 2, которые будет получать список сайтов и список пулов, конвертировать его в JSON формат и предоставлять Заббиксу.


Выглядит готовый JSON так:

{

"data":[

{ "{#SITE}" : "site1" },

{ "{#SITE}" : "site2" },

{ "{#SITE}" : "site3" }

]

}


А потом уже заббикс для каждого из объектов будет получать данные параметров, для сайтов используя запоросы в Performance Monitor, для пулов - скрипт.


Получать список объектов можно любым скриптом, главное что бы заббикс агент его смог запустить.


И так создаём фаил с названием get-sites.ps1

Получаем список сайтов на сервере:

Import-Module WebAdministration

$sites = Get-ChildItem -Path IIS:\Sites -Name


Если вы тестите то для вывода результата введите $sites

Теперь весь список нужно представить в JSON формате, особенностью является то что в конце последнего значения объекта, не должна стоять запятая.

По этому вводим переменную $idx по которой мы будем проверять последний это объект или нет.

$idx = 1


Далее делаем шапку JSON:

write-host "{"

write-host " `"data`":[`n"


Далее будем каждый объект полученный ранее проверят последний он или нет.

Сверку будем проводить путем увеличения переменной $idx на 1, после создания каждого JSON объекта.

Если нет, то создаём JSON объект с запятой, если да, то создаём без запятой.

foreach ($currentsite in $sites) #каждый сайт из списка будет получать переменную $currentsite

{

if ($idx -lt $sites.count) #сравниваем $idx с количеством сайтов. -lt - меньше чем. Если получаем True то создаём строчку с запятой, если нет то двигаемся дальше.

{

$line= "{ `"{#SITE}`" : `"" + $currentsite + "`" }," # создание строчки с запятой

write-host $line

}

elseif ($idx -ge $site.count) # здесь опять сравниваем $idx с количеством с сайтов. -ge - больше или равно чем. Если True то создаём строчку без запятой

{

$line= "{ `"{#SITE}`" : `"" + $currentsite + "`" }" #строчка без запятой

write-host $line

}

$idx++; #В конце каждого прохода увеличиваем $idx на 1.

}

Ну и закрываем JSON.

write-host

write-host " ]"

write-host "}"


Логика проста: Получаем список сайтов, например 3 сайта. Значит нужно 3 прохода для создания 3 строчек для JSON.

Первый проход первый сайт. $idx=1. 1<3? Да. Создаём с запятой. Увеличиваем $idx на 1.

Второй проход второй сайт. $idx=2 . 2<3? Да. Создаём с запятой. Увеличиваем $idx на 1.

Третий проход третий сайт. $idx=3. 3<3? Нет. Идем дальше. 3>=3? Да. Создаём без запятой.


Таким же образом создаём скрипт get-apppool.ps1 для получения списка пулов:

Import-Module WebAdministration

$apppool = Get-ChildItem -Path IIS:\Apppools -Name

$idx = 1

write-host "{"

write-host " `"data`":[`n"

foreach ($currentapppool in $apppool)

{

if ($idx -lt $apppool.count)

{

$line= "{ `"{#APPPOOL}`" : `"" + $currentapppool + "`" },"

write-host $line

}

elseif ($idx -ge $apppool.count)

{

$line= "{ `"{#APPPOOL}`" : `"" + $currentapppool + "`" }"

write-host $line

}

$idx++;

}

write-host

write-host " ]"

write-host "}"


Далее оба скрипта кладем на сервер, например туда где стоит заббикс агент и в конфиг агента добавляем 2 юзер параметра:

UserParameter=apppool.discovery,powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix_agent\scripts\get-apppool.ps1"

UserParameter=site.discovery,powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix_agent\scripts\get_sites.ps1"


(Если честно, то не помню, нужно ли включать ActiveChecks и EnableRemoteCommands в конфиге. У меня везде включено.)


apppool.discovery и site.discovery - будут использиваться как ключи при создании LLD для запуска соответсвующих скриптов.


Далее в Заббиксе нашего сервера создаём новый дискавери:

Name: IIS Site #Название дискавери

Type: Zabbix agent #то чем будем делать дискавери

Key: site.discovery #ключ для вызова скрипта с получем списка сайтов. Мы его указали в UserParameter в конфиге агента на сервере

Host interface: айпишка и порт агент на сервере

Update interval (in sec): 3600 #как часто будем вызывать скрипт и получать список сайтов

Keep lost resources period (in days):3 #через сколько удалять сайтов, которых больше нет.


В фильтрах можно указать какие сайты исключить из списка.

Label Macro {#SITE} Regular expression @IIS

Сам список IIS создаётся в Administration > general > Regular Expresssions.

Например можно исключить Default Web Site для этого создаём список IIS и добавляем Expression type: Result is False; Expression: Default Web Site


Далее создаём прототипы айтемов в дискавери. Они практически ничем не будут отличаться от создания обычных айтемов. Только для объявления сайта используем {#SITE}


Например количество коннекций к IIS сайту. Данные получаем с Performance monitor:

Name: {#SITE}: Current connections

Type: Zabbix agent

Key: perf_counter[\Web Service({#SITE})\Current Connections]

Type of information: Numeric (unsigned)


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


Создаём PowerShell скрипт get-apppoolstate.ps1

param ([string] $name = 0)

Import-Module WebAdministration

$apppoolState = Get-WebAppPoolState -name "$name"

Write-Output ($apppoolState.value)


Сохраняем и кладем к агенту, туда куда и прошлые скрипты. Добавляем UserParameter в конфиг:


UserParameter=apppool.state[*],powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix_agent\scripts\get_apppoolstate.ps1" "$1"


apppool.state - ключ для вызова скрипта.

[*] - параметр который мы будем передавать вместе с ключем, в нашем случае имя пула

$1 означает что мы будем передавать имя пула в скрипт, внутри скрипта имя пула пойдет в параметр $name


Теперь создаём дискавери для мониторинга апликейшн пулов создаём новый дискавери.

Name: IIS AppPool

Type: Zabbix agent

Key: apppool.discovery

Остальное как для сайта.


Создаём прототип айтема:

Name:IIS AppPool {#APPPOOL} state

Type:Zabbix agent

Key:apppool.state[{#APPPOOL}]

Type of information: Text


Ну и все, дальше можно настроить триггеры для обоих дискавери.

Например что пул не запущен:

Name: IIS AppPool {#APPPOOL} is down

Severity: Disaster

Expression: {MyWebServer:apppool.state[{#APPPOOL}].str(Stopped)}<>0

Показать полностью

Ноутбук HP перестал видеть Wifi сети

Обращаюсь к пикабушникам , т.к Google не дал ответа на данный вопрос.

Проблема в том , что ноутбук HP перестал видеть Wifi сети. Сеть домашнего роутера просто не видна в списке сетей , изредка она там проскакивает , но подключение не возможно . Постоянно пишет (Ограничено , подключено без доступа к сети, слишком слабый сигнал сети). Также не видны соседские Wifi сети, сеть раздаваемая с мобильного телефона видна , но только на расстоянии 50 см от ноутбука. Такая ситуация происходит под Windows ( Драйвера последние с сайта HP для Qualcomm QCA 95000 Series) Если перезагрузиться в Ubuntu 16.04 c оболочкой Elementary , то домашняя сеть Wifi видна , а соседские и раздаваемые с телефона нет. Но там также выдается ошибка соединение с роутером разорвано. В чем может быть проблема ? Роутер TP-Link WR740N , OC Windows 8.1 и Ubuntu Based 16.04

3966

Замена жесткого диска от производителя

По счастливой случайности оказался на руках жесткий диск небезызвестной марки WD, размером в 1TB;

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


Имеем:

- Жесткий диск 1ТБ Green - срок гарантии 2 года;

- Отсутствие каких либо чеков о его покупке ¯\_(ツ)_/¯;


Краткая инструкция:

- Регаемся на westerndigital.secure.force.com;

- Подаем заявку на RMA(присваивают номер);

- Упаковываем хард, распечатываем на листе код RMA и несем в транспортную компанию;

- Отдаем ТК 500р. за доставку по адресу, указанному в заявке RMA(Оренбург - Москва);


Через 3 недели получаем звонок от курьера, который приносит совершенно новый жесткий диск свежей серии.

Вывод: программа замены жестких дисков в России от WD работает!

Показать полностью

Синий экран смерти 8 винды

Прошу поднять в топ, камменты для минусов оставлю
Суть - синий экран с ошибкой по файлу ehstorclass.sys и кодом 0xc0000185
Отсутствие нормального покрытия, да и давно не бегал к девченкам винду чинить, не дали на месте решить проблему.
Винт биосом определяется, при загрузке лампочка на корпусе ноута не горит, при изменении параметра "какой то там проверки" в биосе моргнула.
Жесткий отцеплял - прицеплял.
Соответственно ни 8ки на диске ни лайв cd всяких не имею.
За сим прошу конкретную последовательность действий, дабы оживить эту железяку.
Я понимаю, что вопрос "нубский" и вполне можно разобраться самому, но...
Хозяин пациента 12 летний мальчишка, вероятнее всего с отклонениями в развитии, ибо поведение гиперактивное, недостаток любви и тд и тп.
Помочь попросил его отец, как оказалось в браке N-ный раз, матери нет. Воспитывают парня дедушка и бабушка, которых частенько умельцы нагревали на килорубли по пустякам. Отец 10 лет с сыном не общался... В общем жалко мне стало его. А сам я 31го декабря второй раз папкой стал, за сим времени крайне мало на "сидеть ковыряться", а помочь бы хотелось.

Я в тупике. Прошу совета более опытных компьютерных "извращенцев".

Пишу с телефона, поэтому буду краток.

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

Система оказалась битая, вика была в .exe варианте, обращаться к "умельцам- добровольцам" я не хочу, если только меня не пустит за комп.

В общем я имею:

1.Возможность запустить с компа практически любой линуксоид как liveCd,  с телефона с помощью DriveDroid.

2. Живой винт, с горем пополам смонтированный и отформатированный в чуждом для меня ubuntu.

3. Возможность скачать любой файл на телефон, и запихать его на винт путём хитрых манипуляций ( флешка телефона > планшет> usbшная флешка> винт.

Задача: установить win7 на комп.

Задача была бы проста как 5 копеек, если бы не одно НО: на livecd не ставится unebootin, соответственно сделать из под лайф убунты загрузочную флешку я не могу.

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

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

Показать полностью

Прошу Вас помогите с выбором ноутбука.

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

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

https://www.computeruniverse.ru/products/90660014/hp-pavilio... вариант 1


https://www.computeruniverse.ru/products/90674738/asus-x556u... Вариант 2


1) Какой из этих двух на ваш взгляд более оптимальный и кто из них проживет дольше (дольше будет актуальным)?

2) какова разница мощи (производительности) будет у этих моделей? В чем это будет появляться? Стоит ли это того?

3) стоит ли переплачивать в варианте 2 за экран fhd около 1,5к рублей?

4) В связи с проводимой СЕS ожидается ли снижение цен на ноутбуки ближайший месяц?


Цена вопроса 35к рублей (плюс минус пару тыщ). В России за такую цену ничего адекватного не купить.


Огромная благодарность заранее за помощь

Показать полностью
Отличная работа, все прочитано!