DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

X5 43 маркази дистрибьюторй ва 4 мошини боркаши худро идора карда, 029 магазинро бо мадсулот бефосила таъмин менамояд. Дар ин мақола ман таҷрибаи худро дар бораи эҷоди системаи интерактивии мониторинги рӯйдодҳои анбор аз сифр мубодила мекунам. Маълумот барои логистикҳои ширкатҳои савдо бо якчанд марказҳои дистрибюторӣ, ки доираи васеи маҳсулотро идора мекунанд, муфид хоҳад буд.

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Одатан, сохтани системаҳои мониторинг ва идоракунии равандҳои бизнес аз коркарди паёмҳо ва ҳодисаҳо оғоз меёбад. Дар баробари ин як нуктаи муҳими технологии марбут ба имкони автоматикунонии худи факти рӯй додани ҳодисаҳои тиҷоратӣ ва ба қайд гирифтани ҳодисаҳо аз даст рафтааст. Аксари системаҳои тиҷоратӣ, аз қабили WMS, TMS ва ғайра, асбобҳои дарунсохтро барои мониторинги равандҳои худ доранд. Аммо, агар инҳо системаҳои истеҳсолкунандагони гуногун бошанд ё функсияи мониторинг ба қадри кофӣ таҳия нашуда бошад, шумо бояд тағиротҳои гаронбаҳоро фармоиш диҳед ё барои танзимоти иловагӣ мушовирони махсусро ҷалб кунед.

Биёед як равишро дида бароем, ки дар он мо барои гирифтани нишондиҳандаҳо аз система танҳо як қисми ками машварати марбут ба муайян кардани манбаъҳо (ҷадвалҳо) лозим аст.

Хусусияти анборҳои мо дар он аст, ки дар як комплекси логистикӣ якчанд системаҳои идоракунии анборҳо (WMS Exceed) кор мекунанд. Анборхо аз руи категорияхои нигахдории молхо (хушк, спирт, яхкардашуда ва гайра) на танхо аз руи мантик чудо карда мешаванд. Дар як комплекси логистика якчанд бинохои алохидаи анбор мавчуданд, ки хар кадоми онхоро WMS-и худ идора мекунад.

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Барои ташаккул додани тасвири умумии равандҳое, ки дар анбор ба амал меоянд, роҳбарон дар як рӯз якчанд маротиба ҳисоботи ҳар як WMS-ро таҳлил мекунанд, паёмҳои операторони анборро (қабулкунандагон, чинакчиён, стакерҳо) коркард мекунанд ва нишондиҳандаҳои воқеии амалиётиро барои инъикос дар лавҳаи иттилоот ҷамъбаст мекунанд.

Барои сарфаи вақти роҳбарон мо тасмим гирифтем, ки системаи арзони назорати оперативии ҳодисаҳои анборро таҳия кунем. Системам нав ба гайр аз нишон додани нишондихандахои «гарм»-и фаъолияти оперативии процессхои анбор, инчунин бояд ба рохбарон дар ба кайд гирифтани ходисахо ва назорати ичрои супоришхо оид ба бартараф намудани сабабхое, ки ба нишондихандахо таъсир мерасонанд, ёрй расонад. Пас аз гузаронидани аудити умумии меъмории IT ширкат, мо фаҳмидем, ки қисмҳои алоҳидаи системаи зарурӣ аллакай дар ин ё он роҳ дар манзараи мо мавҷуданд ва барои онҳо ҳам санҷиши танзимот ва ҳам хидматҳои зарурии дастгирӣ мавҷуд аст. Танҳо он аст, ки тамоми консепсия ба як ҳалли ягонаи меъморӣ оварда шавад ва доираи рушд ҳисоб карда шавад.

Пас аз арзёбии ҳаҷми корҳое, ки барои сохтани системаи нав бояд анҷом дода шаванд, қарор дода шуд, ки лоиҳа ба якчанд марҳила тақсим карда шавад:

  1. Ҷамъоварии нишондиҳандаҳо барои равандҳои анбор, визуализатсия ва назорати нишондиҳандаҳо ва инҳирофҳо
  2. Автоматикунонии стандартҳои равандҳо ва бақайдгирии дархостҳо дар хидматрасонии тиҷоратӣ барои инҳироф
  3. Мониторинги фаъол бо пешгӯии сарборӣ ва таҳияи тавсияҳо барои роҳбарон.

Дар марҳилаи аввал, система бояд қисмҳои омодашудаи маълумоти амалиётиро аз тамоми WMS комплекс ҷамъ оварад. Хондан тақрибан дар вақти воқеӣ сурат мегирад (фосилаи камтар аз 5 дақиқа). Ҳилла дар он аст, ки ҳангоми ҷойгиркунии система дар тамоми шабака маълумот бояд аз DBMS-и якчанд даҳҳо анборҳо гирифта шавад. Маълумоти оперативии гирифташуда бо мантиқи ядрои система барои ҳисоб кардани инҳироф аз нишондиҳандаҳои нақшавӣ ва ҳисоб кардани омор коркард карда мешавад. Маълумоте, ки бо ин роҳ коркард шудааст, бояд дар планшети мудир ё дар лавҳаи иттилоотии анбор дар шакли графикҳо ва диаграммаҳои фаҳмо нишон дода шавад.

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Ҳангоми интихоби системаи мувофиқ барои татбиқи озмоишии марҳилаи аввал, мо Zabbix-ро интихоб кардем. Ин система аллакай барои назорати иҷрои IT системаҳои анбор истифода мешавад. Бо илова кардани насби алоҳида барои ҷамъоварии нишондиҳандаҳои тиҷоратии амалиёти анбор, шумо метавонед тасвири умумии саломатии анборро ба даст оред.

Архитектураи умумии система чун дар расм пайдо шуд.

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Ҳар як мисоли WMS ҳамчун мизбон барои системаи мониторинг муайян карда мешавад. Метрикҳо аз ҷониби сервери марказӣ дар шабакаи маркази додаҳо тавассути иҷро кардани скрипт бо дархости омодашудаи SQL ҷамъоварӣ карда мешаванд. Агар шумо бояд системаеро назорат кунед, ки дастрасии мустақим ба пойгоҳи додаҳоро тавсия намедиҳад (масалан, SAP EWM), шумо метавонед зангҳои скриптро ба функсияҳои ҳуҷҷатшудаи API истифода баред, то нишондиҳандаҳоро ба даст оред ё барномаи оддӣ дар python/vbascript нависед.

Як намунаи прокси Zabbix дар шабакаи анбор ҷойгир карда шудааст, то сарборӣ аз сервери асосӣ тақсим карда шавад. Тавассути Proxy кор бо ҳама мисолҳои WMS-и маҳаллӣ таъмин карда мешавад. Дафъаи дигар сервери Zabbix параметрҳоро дархост мекунад, скрипт дар ҳост бо прокси Zabbix иҷро карда мешавад, то метрикаро аз пойгоҳи додаҳои WMS дархост кунад.

Барои намоиш додани графикҳо ва нишондиҳандаҳои анбор дар сервери марказии Zabbix, мо Grafana-ро ҷойгир мекунем. Илова ба намоиши панелҳои омодашуда бо инфографикаи амалиёти анбор, Grafana барои назорат кардани инҳироф дар нишондиҳандаҳо ва ирсоли огоҳиҳои автоматӣ ба системаи хидматрасонии анбор барои кор бо ҳодисаҳои тиҷоратӣ истифода мешавад.

Ба сифати мисол, дар участкаи кабули анбор чорй намудани назорати борро дида мебароем. Нишондиҳандаҳои асосии ҷараёни раванд дар ин минтақаи анбор инҳо интихоб карда шуданд:

  • шумораи воситаҳои нақлиёт дар минтақаи қабул бо дарназардошти вазъ (ба нақша гирифташуда, омадан, ҳуҷҷатҳо, борфарорӣ, рафтан;
  • сарбории кори майдончахои чойгиркунй ва пурракунй (мувофики шароити нигох доштан).

Танзимотҳо

Насб ва конфигуратсияи ҷузъҳои асосии система (SQLcl, Zabbix, Grafana) дар сарчашмаҳои гуногун тавсиф шудаанд ва дар ин ҷо такрор карда намешаванд. Истифодаи SQLcl ба ҷои SQLplus аз он сабаб аст, ки SQLcl (интерфейси сатри фармони DBMS Oracle, ки дар java навишта шудааст) насби иловагии Client Oracle-ро талаб намекунад ва аз қуттӣ кор мекунад.

Ман нуктаҳои асосиро тавсиф мекунам, ки ҳангоми истифодаи Zabbix барои мониторинги нишондиҳандаҳои равандҳои тиҷорати анборҳо ва яке аз роҳҳои имконпазири татбиқи онҳо бояд ба онҳо диққат диҳед. Инчунин, ин мақола дар бораи амният нест. Амнияти пайвастҳо ва истифодаи усулҳои пешниҳодшуда омӯзиши иловагиро дар раванди интиқоли ҳалли озмоишӣ ба кори самаранок талаб мекунад.

Чизи асосй он аст, ки хангоми татбики чунин система бе барномасозй бо истифода аз танзимоти аз тарафи система пешбинишуда кор кардан мумкин аст.

Системаи мониторинги Zabbix якчанд вариантҳоро барои ҷамъоварии ченакҳо аз системаи назоратшаванда таъмин мекунад. Инро метавон ё тавассути пурсишҳои мустақими ҳостҳои назоратшаванда ё бо усули пешрафтаи ирсоли маълумот ба сервер тавассути zabbix_sender ҳост, аз ҷумла усулҳои конфигуратсияи параметрҳои кашфи сатҳи паст анҷом дод. Барои ҳалли мушкилоти мо, усули пурсиши мустақими ҳостҳо аз ҷониби сервери марказӣ хеле мувофиқ аст, зеро ин ба шумо имкон медиҳад, ки назорати пурраи пайдарпайии гирифтани ченакҳоро ба даст оред ва кафолат медиҳад, ки шумо як маҷмӯи танзимот/скриптҳоро бидуни тақсими онҳо ба ҳар як ҳости назоратшаванда истифода баред.

Ҳамчун “субъектҳои санҷишӣ” барои ислоҳ ва танзими система, мо варақаи кории WMS-ро барои идоракунии қабул истифода мебарем:

  1. Мошинҳо дар қабулгоҳ, ҳама чизҳое, ки омадаанд: Ҳама воситаҳои нақлиёт бо ҳолати дар давраи “- 72 соат аз вақти ҷорӣ” - Идентификатори дархости SQL: даст мошинҳо.
  2. Таърихи ҳама ҳолати воситаҳои нақлиёт: Ҳолати ҳамаи мошинҳое, ки дар давоми 72 соат меоянд - муайянкунандаи дархости SQL: Таърихи мошинҳо.
  3. Мошинҳои ба нақша гирифташуда барои қабул: Ҳолати ҳамаи воситаҳои нақлиёте, ки дар ҳолати "Нақшаи нақшавӣ" омадаанд, фосилаи вақт "- 24 соат" ва "+24 соат" аз вақти ҷорӣ - идентификатори дархости SQL: мошинҳоДар.

Ҳамин тавр, пас аз он ки мо дар бораи маҷмӯи ченакҳои иҷрои анбор тасмим гирифтем, мо дархостҳои SQL-ро барои пойгоҳи додаҳои WMS омода мекунем. Барои иҷрои дархостҳо тавсия дода мешавад, ки на базаи базаи асосӣ, балки нусхаи "гарм" -и интизорӣ истифода шавад.

Мо барои гирифтани маълумот ба ҳолати интизории Oracle DBMS пайваст мешавем. Суроғаи IP барои пайвастшавӣ ба базаи санҷишӣ 192.168.1.106. Мо параметрҳои пайвастшавиро дар сервери Zabbix дар TNSNames.ORA папкаи кории SQLcl захира мекунем:

# cat  /opt/sqlcl/bin/TNSNames.ORA
WH1_1=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.106)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =  WH1_1)
    )
  )

Ин ба мо имкон медиҳад, ки дархостҳои SQL-ро ба ҳар як мизбон тавассути EZconnect иҷро кунем ва танҳо логин/парол ва номи пойгоҳи додаҳоро нишон диҳем:

# sql znew/Zabmon1@WH1_1

Мо дархостҳои омодашудаи SQL-ро дар папкаи корӣ дар сервери Zabbix захира мекунем:

/etc/zabbix/sql

ва дастрасӣ ба корбари zabbix-и сервери моро иҷозат диҳед:

# chown zabbix:zabbix -R /etc/zabbix/sql

Файлҳои дорои дархостҳо барои дастрасӣ аз сервери Zabbix номи беназири мушаххасро мегиранд. Ҳар як дархости пойгоҳи додаҳо тавассути SQLcl ба мо якчанд параметрҳоро бармегардонад. Бо назардошти хусусиятҳои Zabbix, ки метавонад танҳо як метрикаи як дархостро коркард кунад, мо скриптҳои иловагиро барои таҳлили натиҷаҳои дархост ба метрикаи инфиродӣ истифода хоҳем кард.

Биёед скрипти асосиро омода кунем, биёед онро wh_Metrics.sh меномем, то дархости SQL-ро ба пойгоҳи додаҳо даъват кунем, натиҷаҳоро захира кунем ва метрикаи техникӣ бо нишондиҳандаҳои муваффақияти ҷустуҷӯи маълумот баргардонем:

#!/bin/sh 
## настройка окружения</i>
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:/usr/lib:$ORACLE_HOME/bin
export TNS_ADMIN=$ORACLE_HOME/network/admin
export JAVA_HOME=/
alias sql="opt/sqlcl/bin/sql"
## задаём путь к файлу с sql-запросом и параметризованное имя файла
scriptLocation=/etc/zabbix/sql
sqlFile=$scriptLocation/sqlScript_"$2".sql
## задаём путь к файлу для хранения результатов
resultFile=/etc/zabbix/sql/mon_"$1"_main.log
## настраиваем строку подключения к БД
username="$3"
password="$4"
tnsname="$1"
## запрашиваем результат из БД
var=$(sql -s $username/$password@$tnsname < $sqlFile)
## форматируем результат запроса и записываем в файл
echo $var | cut -f5-18 -d " " > $resultFile
## проверяем наличие ошибок
if grep -q ora "$resultFile"; then
    echo null > $resultFile
    echo 0
else
    echo 1
fi

Мо файли тайёрро бо скрипт дар папка барои нигоҳ доштани скриптҳои беруна мувофиқи танзимоти конфигуратсияи Zabbix-proxy ҷойгир мекунем (бо нобаёнӣ - /usr/local/share/zabbix/externalscripts).

Муайянкунии пойгоҳи додаҳо, ки скрипт аз он натиҷаҳоро мегирад, ҳамчун параметри скрипт интиқол дода мешавад. ID-и базаи маълумот бояд ба сатри танзимот дар файли TNSNames.ORA мувофиқ бошад.

Натиҷаи занги дархости SQL дар файли монанди mon_base_id_main.log дар куҷо base_id = Идентификатори пойгоҳи додаҳо ҳамчун параметри скрипт гирифта шудааст. Тақсимоти файли натиҷаҳо аз рӯи идентификаторҳои пойгоҳи додаҳо ҳангоми дархост аз сервер ба якчанд пойгоҳи додаҳо дар як вақт таъмин карда мешавад. Дархост массиви ду андозабандии арзишҳоро бар мегардонад.

Скрипти зерин, биёед онро getMetrica.sh меномем, барои ба даст овардани метрикаи муайян аз файл бо натиҷаи дархост лозим аст:

#!/bin/sh 
## определяем имя файла с результатом запроса
resultFile=/etc/zabbix/sql/mon_”$1”_main.log
## разбираем массив значений результата средствами скрипта:
## при работе со статусами, запрос возвращает нам двумерный массив (RSLT) в виде 
## {статус1 значение1 статус2 значение2…} разделённых пробелами (значение IFS)
## параметром запроса передаём код статуса и скрипт вернёт значение
IFS=’ ‘
str=$(cat $resultFile)
status_id=null
read –ra RSLT <<< “$str”
for i in “${RSLT[@]}”; do
if [[ “$status_id” == null ]]; then
status_id=”$I"
elif [[ “$status_id” == “$2” ]]; then
echo “$i”
break
else
status_id=null
fi
done

Ҳоло мо омодаем Zabbix-ро танзим кунем ва нишондиҳандаҳои мониторинги равандҳои қабули анборҳоро оғоз кунем.

Дар ҳар як гиреҳи пойгоҳи додаҳо агенти Zabbix насб ва танзим карда шудааст.

Дар сервери асосӣ мо ҳама серверҳоро бо прокси Zabbix муайян мекунем. Барои танзимот, ба роҳи зерин гузаред:

Маъмурият → Прокси → Эҷоди прокси

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Мо ҳостҳои назоратшавандаро муайян мекунем:

Танзимотҳо → Хостҳо → Хост эҷод кунед

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Номи мизбон бояд ба номи мизбон, ки дар файли конфигуратсияи агент нишон дода шудааст, мувофиқат кунад.

Мо гурӯҳро барои гиреҳ, инчунин суроғаи IP ё номи DNS-и гиреҳ бо пойгоҳи додаҳо муайян мекунем.

Мо ченакҳоро эҷод мекунем ва хосиятҳои онҳоро муайян мекунем:

Танзимотҳо → гиреҳҳо → 'номи гиреҳ' → Ададҳои маълумот> Эҷоди ашёи додаҳо

1) Барои пурсиши ҳамаи параметрҳо аз пойгоҳи додаҳо метрикаи асосӣ эҷод кунед

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Мо номи элементи маълумотро муқаррар карда, навъи "Тасдиқи беруна" -ро нишон медиҳем. Дар майдони "Калид" мо скриптро муайян мекунем, ки ба он ҳамчун параметр номи пойгоҳи додаҳои Oracle, номи дархости sql, логин ва парол барои пайвастшавӣ ба пойгоҳи додаҳо мегузорем. Фосилаи навсозии дархостро ба 5 дақиқа (300 сония) таъин кунед.

2) Барои ҳар як ҳолати автомобил ченакҳои боқимонда эҷод кунед. Қиматҳои ин нишондиҳандаҳо дар асоси натиҷаи санҷиши метрикаи асосӣ тавлид мешаванд.

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Мо номи элементи маълумотро муқаррар карда, навъи "Тасдиқи беруна" -ро нишон медиҳем. Дар майдони "Калид" мо скриптро муайян мекунем, ки ба он ҳамчун параметр номи пойгоҳи додаҳои Oracle ва коди вазъеро, ки мо мехоҳем арзиши онҳоро пайгирӣ кунем, мегузорем. Мо фосилаи навсозии дархостро то 10 сония дарозтар аз метрикаи асосӣ (310 сония) муқаррар кардем, то натиҷаҳо ба файл навишта шаванд.

Барои дуруст ба даст овардани нишондиҳандаҳо, тартиби фаъол кардани чекҳо муҳим аст. Барои пешгирӣ кардани ихтилофот ҳангоми қабули маълумот, пеш аз ҳама мо метрикаи асосии GetCarsByStatusро тавассути занги скрипт - wh_Metrics.sh фаъол месозем.

Танзимотҳо → Гиреҳҳо → 'Номи гиреҳ' → Унсурҳои маълумот → Зерфилтри "Тафтишоти беруна". Санҷиши лозимиро қайд кунед ва "Фаъолсозӣ" -ро клик кунед.

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Баъдан, мо ченакҳои боқимондаро дар як амалиёт фаъол месозем ва ҳамаи онҳоро якҷоя интихоб мекунем:

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Ҳоло Zabbix ба ҷамъоварии нишондиҳандаҳои тиҷорати анбор шурӯъ кардааст.

Дар мақолаҳои навбатӣ мо ба пайваст кардани Grafana ва сохтани панелҳои иттилоотии амалиёти анбор барои категорияҳои гуногуни корбарон бодиққат назар хоҳем кард. Grafana инчунин барои назорат кардани инҳироф дар амалиёти анбор истифода мешавад ва вобаста ба сарҳад ва басомади инҳирофҳо, ҳодисаҳоро дар системаи маркази хидматрасонии идоракунии анборҳо тавассути API сабт мекунад ё танҳо тавассути почтаи электронӣ ба мудир огоҳинома фиристад.

DIY: чӣ гуна мо мониторинги анборҳоро автоматӣ мекунем

Манбаъ: will.com

Илова Эзоҳ