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

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

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

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

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

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

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

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

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

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

суббота, 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 минуту каждого часа

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

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


четверг, 30 апреля 2020 г.

Мониторинг интерфейсов mikrotik с помощью mikrotik api, telegraf и grafana

 С чего началось... Меня попросили запилить мониторинг за народом, коий подключается по vpn к офису с использованием pptp (кто когда подключался, кто сколько прокачивал...). Самый первый и очевидный способ - полезть в snmp, да и запилить на нём, НО... Это же тебе надо знать заранее oid каждого интерфейса, а если мы говорим про vpn, то интерфейсы динамические... Вот заводишь ты новый vpn для кого то и потом его в мониторинге прописывать, нафиг... Гемор одним словом... А что если сделать так, чтобы в мониторинг всё попадало автоматом...