Показаны сообщения с ярлыком Windows. Показать все сообщения
Показаны сообщения с ярлыком Windows. Показать все сообщения

четверг, 22 июля 2021 г.

PCPO - Pc park observer


 PC park observer - система учёта комплектующих компьютеров парка, базирующегося на MS Windows

 Для чего эта система

Данная система предназначена для учёта комплектующих в компьютерном парке, базирующемся на Windows. Я выложил систему под GNU/GPL v. 3 лицензией, так что денег не прошу, можете использовать как угодно... Все пожелания и т.п. обсуждаются отдельно...

Особенности и возможности

Система работает под управлением ОС GNU Linux (на данный момент успешно обкатана на ubuntu 20.04).  Система собирает информацию и создаёт оповещения в случае изменений в необходимых хостах (в частности информацию об:

- мак адрес сетевого адаптера
- ip адрес
- имя хоста
- информацию о мат. плате (по возможности и её серийный номер)
- информацию о процессоре (по возможности и её серийный номер)
- информацию об оперативной памяти (по возможности серийный номер, тип памяти - ECC или не ECC, объём)
- видеоадаптер (с указанием PNP Device id)
- жёсткие диски (можно опционально включить проверку тех, что подключены по USB или iSCSI) - серийный номер, модель, объём

).

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

Доступ к системе регулируется на основе двух ролей - администраторов (могут менять системные настройки и менять перечень проверяемых сетей/хостов); менеджеров - могут просматривать статистику и аналитику по проверяемым хостам.

четверг, 24 июня 2021 г.

Мониторинг состояния здоровья и температуры жёстких дисков в Windows с помощью smartmontools + telegraf

 У меня уже развёрнута связка influxdb + grafana и тут в сетке появился хост с блядской виндой... Под линуксами всякими снимать инфу о состоянии жёстких дисков оказалось прилично легко, но с виндой пришлось покрутиться... Попытка прикрутить smartmontools в конфиг телеграфа в плагин [[inputs.smart]] провалилась успешно высыпанием кучей ошибок и прочего... Придётся ставить костыли и сегодняшний костыль будет писан на powershell (дабы не усложнять ничего в окружении и т.п.).

понедельник, 11 января 2021 г.

Быстро отправить в windows (где есть curl) сообщение в telegram

 В общем в виндах надо отправить в скрипте быренько сообщение в телеграм... Проще простого... Для начала заводим бота в телеграме (получаем botID), узнаём id чата, куда отправлять сообщения и после этого там где необходимо пишем собственно в самом скрипте (bat файле допустим):

set chatID=424324534
set botToken=JILA3j4i23r53409tit0k:2353464573cdksdserw432
set message="Something going on %computername%"

curl https://api.telegram.org/bot%botToken%/sendMessage?chat_id=%chatID%^^^&text=%message%



суббота, 21 ноября 2020 г.

Бэкап базы mssql с остановкой 1с

 Тут попросили меня накатать сценарий для копирования всего каталога с содержимым БД mssql, но перед тем как его паковать - надо прибить все определённые процессы у пользователей, за исключением тех, что принадлежат администратору, потом остановить сам сервер mssql, запаковать содержимое директории БД в архив, который разместить в бэкапах и в конце удалить все архивы, которые старше 7 дней... Итак скрипт:


@echo off
taskkill /f /fi "USERNAME ne administrator" /im 1cv7s.exe
net stop MSSQLSERVER
"C:\scripts\x64\7za.exe" a D:\backup\backupshare_%date:~-10,2%%date:~-7,2%%date:~-4,4%.7z D:\Bases\
net start MSSQLSERVER
forfiles -p "D:\backup" -s -m *.7z -d -7 -c "cmd /c del @PATH"

среда, 19 февраля 2020 г.

Мониторинг за процессами в Windows, согласно их путей выполнения с помощью telegraf, influxdb и grafana

Мне понадобилось следить за процессами в Windows и рисовать по ним графики, а также создавать оповещения о их различных статусах. Для этого я написал отдельное приложение на c# и сделал следующую связку:

1. На windows машинке работает служба telegraf, которая коллекционирует различные метрики, среди которых в ней включен плагин exec.
2. Плагин exec вызывает моё приложение, который отдаёт перечень процессов и их состояние в виде аргумента в telegraf.
3. Telegraf посылает метрики в БД influxdb.
4. Grafana берёт метрики из influxdb и далее рисуются графики и прикручиваются алерты...

Подробнее о используемых технологиях можно почитать тут:



Пример графика

Как работает моё приложение... 

Приложение вызывается с передачей к нему в качестве аргумента пути к CSV файлу, который внутри себя представляет примерно следующее:

C:\Program Files (x86)\ZKTime.Net\ZKTimeNet.exe,$ZKTimeNet
C:\OhmGraphite-0.10.0\OhmGraphite.exe,OhmGraphite
C:\Windows\system32\dns.exe,$DNS_server

Первый столбец указывает на путь выполнения к файлу (регистр букв соблюдается, так что предварительно необходимо посмотреть в таск менеджере корректный путь к выполняемому процессу). Разделителем выступает символ , после которого указывается наименование выполняемого процесса. Для чего это нужно? Представим что в системе есть 2 браузера firefox, но они установленны в разные директории. Таким образом в описании можно указать для разных путей разные наименования. Например firefox1 и firefox2. 

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

Качаем отсюда (https://github.com/constantinekg/getprocesses) 2 файла:


Файл getprocs.7z распаковываем, получаем getprocs.exe. Эти 2 файла (getprocs.exe и procs.csv) перемещаем в директорию с установленным telegraf'ом (C:\Program Files\telegraf).

Правим по образу и подобию CSV файл. Указываем необходимые для мониторинга процессы и т.д. 

В конфиг telegraf добавляем следующее:

# Читает метрики в stdout
[[inputs.exec]]

commands = [
"C:/\"Program Files\"/telegraf/getprocs.exe C:/\"Program Files\"/telegraf/procs.csv",
]
 
# Интервал сбора метрик
interval = "60s"

## Таймаут для ожидания выполнения процесса
timeout = "10s"

# Оставляем как есть
data_format = "influx"
data_type = "string"
[inputs.exec.tags]
# Возможные теги для полученных метрик процессов (в моём случае мне достаточно знать что это метрики из офиса, но можно добавить что то своё дополнительно
location = "office"

После добавления необходимо перезапустить сервис telegraf в системе ну или перезагрузить компик...

Далее в графане необходимо будет создать какие угодно графики, а лерты и т.д. и т.п. Но об этом лучше почитать в мануалах по графане...

вторник, 28 мая 2013 г.

Копирасты наступают

Недавно одному моему кенту пришло письмо, из которого следует что у нас в стране начинается эпоха шествия копирастов. Кто что думает по этому поводу? Вот текст:




пятница, 29 марта 2013 г.

Как я делал систему ip телефонии своему хорошему кенту...


Немного теории и калькуляции...

Люди которые содержат небольшие компании зачастую либо не знают, либо вообще не подозревают о наличии таких систем в природе как скажем тот же asterisk и обычно при построении офиса ломятся бежать покупать какие нибудь АТС от попсовой Panasonic или других вендоров как правило за кучку бабла... Но это как бы пол беды... Потом начинается после покупки этой АТСки покупка стационарных аппаратов, затем протяжка телефонной линии по офису, настройка и прочие возможные с этим связанные геморрои... А бывает и того хуже - к примеру в 2010 году я побывал на одной конференции, куда приехали представители сотовых операторов чуть ли не со всего СНГ. Не буду говорить что за компания презентовала свой продукт (система кол центра), но выглядел он примерно так: есть какой то сервер, в который воткнута их плата, в которую подходит куча транков по E1 или EuroISDN сигнализации, на сервере весь софт базируется на всём майкрософтовском софте и фактически саппортится только этой самой компанией. 

И я накосячил...

И как то вечером после банкета я умудрился этим самым ребятам закосячить контракт на продажу их кол центра одному региональному оператору наземной связи... Между словом, попивая пиво я сказал что сделать кол центр - как 2 пальца обоссать и мол мы у себя давным давно всё это дело реализовали и даже не за 2 ляма рублей (а за столько они пытались слить свой кол центр этому оператору), а за вполне скромные 3 штуки баксов... В итоге чувак, которому они собирались впарить свою поделку резко оживился и переключился с них на меня с вопросом мол а как. Сейчас поясню почему 3 штуки... Купили 1-юнитовый сервер, в который воткнули плату на 4 порта от компании Sangoma и всё - это были единственные наши затраты по деньгам. Теперь что касается софта - поставили Ubuntu server 10.04 на эту машинку и воткнули туда asterisk, затем мы его настроили (он чисто управлял маршрутизацией звонков). В своей системе виртуализации подняли виртуальную машинку на которую поставили дистрибутив Elastix (www.elastix.org) - это специальная такая сборка, содержащая в себе службы почтового сервера, системой коротких сообщений, системой ip-телефонии и ещё массу других полезных плюшек... Почитайте про него, довольно интересная сборка на основе Centos. Дальше мы наладили транк между этой виртуалкой и нашим сервером на котором стояла Ubuntu и та самая плата на 4 порта и произвели необходимые настройки. Где то за неделю у нас был вполне отличный кол центр с ivr меню и прочими прелестями...

И тут получилось...

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

В итоге имеем...

  • не надо тратиться на покупку дорогостоящего софта
  • не надо тратиться на монтажные работы 
  • у абонентов имеется офигенная маневренность (можно хоть где находиться со своим номером) 
  • у компании теперь есть система с ivr меню, которое после рабочего времени скажет вызывающему абоненту что рабочий день уже закончен и если он хочет оставить сообщение, то пусть что нибудь пролялякает после сигнала
  • можно врубить поддержку видео
  • помимо ip телефонии elastix в себе несёт - чат + почта + jabber + crm система и всё это из коробки НАХАЛЯВУ.

И я в очередной раз говорю RIP  MS и все твои приспешники, да здравствует opensource!

среда, 17 октября 2012 г.

Настройка резервного копирования почти штатными средствами в Windows 2008 R2 server

Бэкапы Бэкапы Бэкапы...

На просторах Интернета есть масса всякого софта, предназначенного для резервного копирования. Проблема в том, что львиная часть этого добра либо стоит денег, либо пашет как то не так как тебе охота. Что у меня есть: Windows server 2008 R2 standart edition, на нём поднят контроллер домена и на нём же имеется расшаренная для всех директория - аля файловая помойка. Необходимо производить ежедневное полное резервное копирование этой директории. Сразу оговорюсь, что простое копирование я не хотел рассматривать, ибо не сжатые файлы занимают кучу пространства, так что будем рассматривать вариант с использованием какого либо архиватора.

Стратегия

Итак, необходимо иметь полные резервные копии файловой свалки за последние 7 дней. Каждая копия должна быть зажата каким либо архиватором. Резервная коипя не должна храниться на том же компьютере, на котором работает сама файловая свалка, так что будем бэкапить на одну из машинок, находящейся в локалке (машинка пашет на Windows 7 Professional).

Выбор архиватора

Немало важный вопрос... Почитав различную инфу по тем или иным архиваторам я нашёл вполне убедительные аргументы в пользу открытого кода (который раз... :)). Я остановил свой выбор на 7zip, т.к. он имеет более высокую скорость и степень сжатия (по этим ссылкам факты: http://habrahabr.ru/post/49343/ http://kikizas.net/en/apps.7z.html http://yes.km.ua/index.php?option=com_content&view=article&id=107:testing-the-archives-winrar-vs-7zip-vs-hao-zip&catid=37:computers-soft&Itemid=61 ).

Как будет работать?

Немного почитав за все возможности консольной версии 7zip и вооружившись относительным знанием написания обычных скриптов для Windows в стиле *.bat файлов я накатал необходимые скрипты и аккуратно их разместил в планировщиках заданий. Итак, для начала скачаем сам архиватор 7zip для своей платформы (судя по разрядности) с сайта http://www.7-zip.org/download.html , далее его установим. В директории с установленным архиватором есть груда файлов, я взял оттуда только 3 файла - 7z.dll, 7z.exe, 7-zip.dll и скопировал их в заранее созданую директорию c:\scripts. В этой же директории создадим BAT файл (в моём случае это backupshare.bat) с следующим содержимым:


@echo off
"C:\scripts\7z.exe" a \\PCPC\officesharebackup\backupshare_%date:~-10,2%%date:~-7,2%%date:~-4,4%.7z c:\share\

где - \\PCPC\ - машинка на которую будет складироваться создаваемый архив;
\\PCPC\officesharebackup - расшареная директория на удаленной машинке куда складируется архив;
c:\share\ - директория на сервере которую нужно нам бэкапить;

Далее открываем планировщик заданий на сервере (он же Task Scheduler, который можно успешно разыскать в панели управления) и создаём в нём обычное задание, в качестве исполняемого приложения подсовываем c:\scripts\backupshare.bat и назначаем его на выполнение скажем в полночь. После сохранения задания, откроем его свойства и укажем чтобы оно выполнялось вне зависимости от того залогинен пользователь или нет. Прям как тут:


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

Тест

Запустим задание на выполнение и убедимся что на удаленой машинке начал создаваться необходимый нам бэкап в формате backupshare_деньмесяцгод.7z.
Создался? Отлично!

Зачистка

Но мы теперь имеем проблему с тем, что архивы будут копиться на удаленом хранилище каждый день и их объём будет все расти и расти. Необходимо сделать зачистку старых копий (которые старше 7 дней). Для этого на удаленой машинке (как я выше сказал она стоит на Windows 7 professional) нам также надо будет накать скрипт и также разместить его в планировщике заданий удаленной машины. Для этого создадим в произвольном месте BAT (скажем c:\dataclear.bat) файл с следующим содержанием:

forfiles -p "D:\officesharebackup" -s -m *.7z -d -7 -c "cmd /c del @PATH"

Я буду производить зачистку старых копий скажем в 8 утра (это дело остается на усмотрение творца и дирижера системы). Также как и на сервере так и на удаленой машинке в планировщик заданий толкаем на выполнение этот скрипт по тому же принципу что и на сервере. Проверяем... И у нас в действительности остаётся лишь 7 резервных копий за последние 7 дней как мы и заказывали.

Итог

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