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

четверг, 13 октября 2022 г.

ssl expiration checker - скрипт для проверки срока истечения действия SSL сертификата в днях

 Тут на медни мне понадобилось собирать информацию с кучи доменов об истечении срока действия их сертификатов, собственно я и сделал такую штуку...

Репозиторий на гитхабе:

 https://github.com/constantinekg/ssl_expiration_checker

Скрипт проверки срока окончания действия SSL сертификата

Данный скрипт предназначен для проверки срока истечения действия SSL сертификата в днях.

Использование:

./ssl_checker.py -d https://example.com:443

Вывод:

152

понедельник, 21 марта 2022 г.

Мониторинг за обновлениями серверов на базе Ubuntu

По просьбам трудящихся так и быть - выкладываю на всеобщее пользование своего скрипта за мониторингом обновлений на серверах, кои бегут под убунтой... Все красивости решать на своё усмотрение так сказать, у меня лично influxdb+grafana+telegram...

Собственно вся писанина лежит в общем доступе тут:

https://github.com/constantinekg/ubuntu-checksoftwareupdates

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

четверг, 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%



суббота, 5 декабря 2020 г.

Мониторим обновления в ubuntu с помощью python, influxdb, grafana

Заваливаешь бывает ты такой по ssh на какой нибудь сервер и если все актуальные обновления натянуты, то тебе рисуется в приветственном сообщении такая картинка:


 


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

Вообще в ubuntu информация об обновлениях в приветственное сообщение когда по ssh заваливаешь попадает из файла, который находится по пути /var/lib/update-notifier/updates-available. Вот его мы и будем использовать... 

У меня уже имеется в хозяйстве готовый стэк с influxdb в связке с grafana, которая рисует данные из него. Всё что мне необходимо - это послать http запросом данные метрик в influxdb, а об отрисовке данных и посылке их в telegram уже позаботится grafana. Для начала в influx я создаю новую базу с именем softwareupdates. Чтобы не долго заморачиваться - я написал скрипт на python:

#!/usr/bin/env python3

import time
import requests
import sys
import re
import os
import subprocess

hostname = os.uname()[1]
influxdbinitial = 'https://influxdb.host.tld/write?db=softwareupdates'


# функция для добавления в БД influxdb инфы о обновлениях
def puttoinfluxdb(totalupdates, securityupdates):
   # заправляем инфу о кол-ве общих обновлений
   data_binary = 'softwareupdates,host='+hostname+' totalupdates='+totalupdates
   try:
       response = requests.post(influxdbinitial, data=data_binary)
       print(response)
   except requests.exceptions.RequestException as e:  # This is the correct syntax
       print (e)
       sys.exit(1)
   # заправляем инфу о кол-ве обновлений на безопасность
   data_binary = 'softwareupdates,host='+hostname+' securityupdates='+securityupdates
   try:
       response = requests.post(influxdbinitial, data=data_binary)
       print(response)
   except requests.exceptions.RequestException as e:  # This is the correct syntax
       print (e)
       sys.exit(1)


def updatesnotifyget():
   #subprocess.run(["/usr/bin/apt", "update"])
   #time.sleep(3)
   f = open("/var/lib/update-notifier/updates-available", "r")
   lines = f.readlines()
   # print(lines[1])  
   totalupdates = re.sub("[^0-9^]", "", lines[1])
   securityupdates = re.sub("[^0-9^]", "", lines[2])
   puttoinfluxdb(totalupdates, securityupdates)

if __name__ == "__main__":
   updatesnotifyget()

Теперь сохраняю этот скрипт в /opt/scripts/checksoftwareupdates.py и даю права на выполнение оного с помощью chmod+x /opt/scripts/checksoftwareupdates.py. Далее пихаем скрипт в cron:

# check software updates
*/58,*/10,*/20 * * * *
/opt/scripts/checksoftwareupdates.py

# ^ буду запускать каждую 10, 20 и 58 минуту каждого часа

В графане создаю новый график, куда запихиваю данные и в итоге получаю:

Там же, в графане, делаем в этом графике алерт и в итоге в телегу при появлении каких то обновлений в системе начинает прилетать: