DIY: em çawa çavdêriya wargehê otomatîk dikin

X5 43 navendên belavkirinê û 4 kamyonên xwe dixebitîne, dabînkirina bênavber a hilberan ji 029 firotgehan re misoger dike. Di vê gotarê de ez ê ezmûna xwe ya afirandina pergalek înteraktîf ji bo şopandina bûyerên wargehê ji sifirê ve parve bikim. Agahdarî dê ji lojîstîstên pargîdaniyên bazirganiyê re ku bi dehan navendên belavkirinê yên ku cûrbecûr hilberan birêve dibin re kêrhatî be.

DIY: em çawa çavdêriya wargehê otomatîk dikin

Wekî qaîdeyek, avakirina pergalên birêvebirina çavdêrî û pêvajoya karsaziyê bi pêvajoyên peyam û bûyeran re dest pê dike. Di heman demê de, xalek teknolojîk a girîng a ku bi îhtîmala otomatîkkirina rastiya bûyera karsaziyê û tomarkirina bûyeran ve girêdayî ye, ji dest tê. Piraniya pergalên karsaziyê yên wekî WMS, TMS, û hwd., ji bo şopandina pêvajoyên xwe amûrên çêkirî hene. Lê, heke ev pergalên ji hilberînerên cihêreng in an fonksiyona çavdêriyê bi têra xwe pêşneketiye, pêdivî ye ku hûn guheztinên biha ferman bidin an ji bo mîhengên zêde şêwirmendên pispor bikişînin.

Ka em nêzîkatiyek binirxînin ku tê de em tenê hewceyê beşek piçûk a şêwirmendiya ku bi tespîtkirina çavkaniyan (tabloyan) ve girêdayî ye ji bo wergirtina nîşanan ji pergalê re hewce dike.

Taybetmendiya depoyên me ev e ku gelek pergalên rêveberiya wargehê (WMS Exceed) li yek kompleksa lojîstîkê dixebitin. Depo li gorî kategoriyên hilanîna tiştan (hişk, alkol, cemidî, hwd.) ne tenê bi mantiqî têne dabeş kirin. Di nav yek kompleksek lojîstîkê de gelek avahiyên depoyên cihê hene, ku her yek ji wan ji hêla WMS-ya xwe ve têne rêve kirin.

DIY: em çawa çavdêriya wargehê otomatîk dikin

Ji bo ku wêneyek giştî ya pêvajoyên ku di depoyê de diqewimin çêbikin, rêvebir rojek çend caran raporkirina her WMS-ê analîz dikin, peyamên ji operatorên depoyê (wergir, hilbijarker, staker) pêvajoyê dikin û nîşaneyên xebitandinê yên rastîn ji bo ronîkirina li ser tabloya agahdariyê kurt dikin.

Ji bo ku dema rêvebiran xilas bikin, me biryar da ku em pergalek erzan ji bo kontrolkirina xebitandinê ya bûyerên depoyê pêş bixin. Pergala nû, ji bilî nîşandana nîşaneyên "germ" ên performansa xebitandinê yên pêvajoyên ambaran, divê di tomarkirina bûyeran û şopandina pêkanîna karan de jî ji rêvebiran re bibe alîkar da ku sedemên ku bandorê li ser nîşaneyên diyar dikin ji holê rakin. Piştî lêkolînek giştî ya mîmariya IT ya pargîdaniyê, me fêm kir ku beşên ferdî yên pergala pêdivî jixwe bi rengekî an din di dîmena me de hene û ji bo wan hem muayeneya mîhengan û hem jî karûbarên piştevaniya pêwîst hene. Tiştê ku dimîne ev e ku meriv tevahî têgînê bike yek çareseriyek mîmarî û qada pêşkeftinê texmîn bike.

Piştî nirxandina qasê xebata ku ji bo avakirina pergalek nû divê were kirin, biryar hate girtin ku proje li çend qonaxan were dabeş kirin:

  1. Berhevkirina nîşanan ji bo pêvajoyên ambaran, dîtbarî û kontrolkirina nîşanker û deviyan
  2. Xweseriya standardên pêvajoyê û tomarkirina serîlêdanan di karûbarê karûbarên karsaziyê de ji bo devjêran
  3. Çavdêriya proaktîf bi pêşbînkirina barkirinê û çêkirina pêşniyaran ji bo rêveberan.

Di qonaxa yekem de, pêdivî ye ku pergal perçeyên amadekirî yên daneyên xebitandinê ji hemî WMS-ya kompleksê berhev bike. Xwendin hema di wextê rast de pêk tê (navberên ji 5 hûrdeman kêmtir). Xefet ev e ku dema ku pergalê li tevaya torê tête danîn divê dane ji DBMS-ya çend deh depoyan were wergirtin. Daneyên xebitandinê yên wergirtî ji hêla mantiqa bingehîn a pergalê ve têne hilberandin da ku dev ji nîşangirên plansazkirî bihesibînin û statîstîkan hesab bikin. Daneyên ku bi vî rengî têne hilberandin divê li ser tabletê rêveberê an li ser tabloya agahdariya depoyê di forma grafîk û diagramên têgihîştî de bêne xuyang kirin.

DIY: em çawa çavdêriya wargehê otomatîk dikin

Dema ku ji bo pêkanîna pîlotê qonaxa yekem pergalek maqûl hilbijêrin, me Zabbix hilbijart. Ev pergal jixwe ji bo şopandina performansa IT-ya pergalên wargehê tê bikar anîn. Bi lêzêdekirina sazkirinek veqetandî ji bo berhevkirina metrîkên karsaziyê yên xebata depoyê, hûn dikarin wêneyek giştî ya tenduristiya depoyê bistînin.

Mîmariya giştî ya pergalê wekî di wêneyê de derket holê.

DIY: em çawa çavdêriya wargehê otomatîk dikin

Her mînakek WMS ji bo pergala çavdêriyê wekî mêvandarek tête diyar kirin. Metrîk ji hêla serverek navendî ve di tora navenda daneyê de bi xebitandina skrîptek bi pirsek SQL ya amadekirî têne berhev kirin. Heke hûn hewce ne ku pergalek ku gihandina rasterast a databasê pêşniyar nake (mînak, SAP EWM) bişopînin, hûn dikarin bangên skrîptê ji fonksiyonên API-ya belgekirî re bikar bînin da ku nîşanan bistînin an bernameyek hêsan di python/vbascript de binivîsin.

Mînakek proxy Zabbix di tora wargehê de tê bicîh kirin da ku barê ji servera sereke belav bike. Bi Proxy re, xebata bi hemî mînakên WMS-ê yên herêmî re tê misoger kirin. Cara din ku servera Zabbix parametreyan daxwaz dike, skrîptek li ser mêvandarê bi proxy Zabbix tê darve kirin ku ji databasa WMS metrîkan bixwaze.

Ji bo nîşandana grafîkan û nîşangirên wargehê li ser servera navendî ya Zabbix, em Grafana bicîh dikin. Digel nîşandana tabloyên amadekirî yên bi infografîkên karûbarên depoyê, Grafana dê ji bo şopandina devjêdanên di nîşanderan de were bikar anîn û ji bo xebata bi bûyerên karsaziyê re hişyariyên otomatîkî ji pergala karûbarê wargehê re bişîne.

Weke mînak, ka em pêkanîna kontrolkirina barkirinê li qada wergirtina ambaran bifikirin. Ya jêrîn wekî nîşaneyên sereke yên performansa pêvajoyê li vê qada depoyê hatin hilbijartin:

  • hejmara wesayîtên li qada pêşwaziyê, li gorî statûyan (plankirî, gihîştî, belge, barkirin, derketin;
  • bargiraniya kar a qadên danîn û dagirtinê (li gorî şert û mercên hilanînê).

Mîhengên

Sazkirin û veavakirina hêmanên sereke yên pergalê (SQLcl, Zabbix, Grafana) di çavkaniyên cihêreng de têne vegotin û dê li vir dubare nebe. Bikaranîna SQLcl li şûna SQLplus ji ber vê yekê ye ku SQLcl (navbera rêza fermanê ya Oracle DBMS, ku bi java hatî nivîsandin) hewcedariya sazkirina zêde ya Oracle Client nake û ji qutîkê dixebite.

Ez ê xalên sereke yên ku divê balê bikişîne ser dema karanîna Zabbix ji bo şopandina nîşaneyên pêvajoya karsaziya wargehê, û yek ji awayên gengaz ên pêkanîna wan vebêjim. Di heman demê de, ev ne postek li ser ewlehiyê ye. Ewlekariya pêwendiyan û karanîna rêbazên pêşkêşkirî di pêvajoya veguheztina çareseriya pilot di xebata hilberîner de lêkolînek zêde hewce dike.

Ya sereke ev e ku dema pêkanîna pergalek wusa, gengaz e ku meriv bêyî bernamekirinê, bi karanîna mîhengên ku ji hêla pergalê ve hatî peyda kirin, bike.

Pergala çavdêriya Zabbix ji bo berhevkirina metrîkên ji pergala çavdêrîkirî gelek vebijarkan peyda dike. Ev dikare bi rasterast anketkirina mêvandarên çavdêrîkirî, an jî bi rêbazek pêşkeftî ya şandina daneyan ji serverê re bi riya zabbix_sender-a mêvandar, di nav de rêbazên mîhengkirina pîvanên vedîtinê yên asta nizm, were kirin. Ji bo çareserkirina pirsgirêka me, rêbaza dengdana rasterast a mêvandaran ji hêla serverek navendî ve pir maqûl e, ji ber ku ev rê dide we ku hûn kontrola tam li ser rêza wergirtina metrîkan bi dest bixin û piştrast dike ku hûn yek komek mîhengan/skrîptan bikar tînin bêyî ku hûn hewce ne ku wan li her mêvandarê çavdêrîkirî belav bikin.

Wekî "mijarên ceribandinê" ji bo verastkirin û sazkirina pergalê, em ji bo rêveberiya pejirandinê pelgeya xebata WMS bikar tînin:

  1. Wesayîtên li resepsiyonê, hemî yên ku hatine: Hemî wesayîtên bi statûyên heyama "- 72 demjimêran ji dema niha ve" - ​​Nasnameya lêpirsîna SQL: getCars.
  2. Dîroka hemî statûyên wesayîtê: Rewşên hemî wesayîtên ku di nav 72 demjimêran de têne - Nasnameya lêpirsîna SQL: carsHistory.
  3. Wesayîtên pejirandî yên ji bo pejirandinê: Rewşên hemî wesayîtên ku gihîştine rewşa "Pêvesazkirî", navberê dema "- 24 demjimêran" û "+24 demjimêran" ji dema niha - Nasnameya lêpirsîna SQL: carsIn.

Ji ber vê yekê, piştî ku me li ser komek pîvanên performansa wargehê biryar da, em ê ji bo databasa WMS pirsên SQL amade bikin. Ji bo pêkanîna pirsan, tê pêşniyar kirin ku ne databasa sereke, lê kopiya wê ya "germ" - standby bikar bînin.

Em bi standby Oracle DBMS ve girêdidin da ku daneyan bistînin. Navnîşana IP-ê ji bo girêdana bi databasa testê 192.168.1.106. Em pîvanên pêwendiyê li ser servera Zabbix di TNSNames.ORA ya peldanka xebatê ya SQLcl de hilînin:

# 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)
    )
  )

Ev ê bihêle ku em bi EZconnect ve pirsên SQL-ê ji her mêvandar re bimeşînin, tenê têketin / şîfre û navê databasê diyar bikin:

# sql znew/Zabmon1@WH1_1

Em pirsên SQL yên amadekirî di peldanka xebatê ya li ser servera Zabbix de hilînin:

/etc/zabbix/sql

û destûr bidin ku bigihîje bikarhênerê zabbix ya servera me:

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

Pelên bi daxwazan ji bo gihîştina ji servera Zabbix navek nasnameyek yekta distînin. Her pirsek databasê bi rêya SQLcl çend parametreyan ji me re vedigerîne. Li ber çavan taybetiyên Zabbix, ku dikare her daxwazek tenê yek metrîkê bişopîne, em ê skrîptên din bikar bînin da ku encamên lêpirsînê li metrîkên kesane parve bikin.

Ka em skrîpta sereke amade bikin, em jê re bibêjin wh_Metrics.sh, da ku bangek SQL li databasê bike, encaman hilîne û metrîkek teknîkî bi nîşaneyên serkeftina vegerandina daneyê vegerîne:

#!/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

Em pelê qediyayî bi nivîsarê re di peldankê de ji bo hilanîna nivîsarên derveyî li gorî mîhengên veavakirina Zabbix-proxy (bi xwerû - /usr/local/share/zabbix/externalscripts).

Nasnameya databasa ku dê skrîpt jê encam bigire dê wekî pîvanek skrîptê were derbas kirin. Nasnameya databasê divê bi rêzika mîhengan a di pelê TNSNames.ORA de li hev bike.

Encama banga lêpirsîna SQL di pelek mîna de tê tomar kirin mon_base_id_main.log ku base_id = Nasnameya databasê wekî pîvanek skrîptê wergirt. Dabeşkirina pelê encamê ji hêla nasnavên databasê ve di doza daxwazên ji serverê ji çend databasan re hevdem tê peyda kirin. Lêpirsîn rêzek du-alî ya rêzkirî ya nirxan vedigerîne.

Skrîpta jêrîn, em jê re dibêjin getMetrica.sh, pêdivî ye ku ji pelek bi encama daxwazek metrîkek diyarkirî bistînin:

#!/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

Naha em amade ne ku Zabbix mîheng bikin û dest bi şopandina nîşanên pêvajoyên pejirandina wargehê bikin.

Ajanek Zabbix li ser her girêk databasê tê saz kirin û mîheng kirin.

Li ser servera sereke em hemî pêşkêşkerên bi proxy Zabbix diyar dikin. Ji bo mîhengan, biçin riya jêrîn:

Rêveberî → Proxy → Proxy biafirîne

DIY: em çawa çavdêriya wargehê otomatîk dikin

Em mêvandarên kontrolkirî diyar dikin:

Settings → Hosts → Create host

DIY: em çawa çavdêriya wargehê otomatîk dikin

Navê mêvandar divê bi navê mêvandar re ku di pelê veavakirina agentê de hatî destnîşan kirin re têkildar be.

Em komê ji bo nodê, û her weha navnîşana IP-ê an navê DNS-ê ya bi databasê diyar dikin.

Em metrîkan diafirînin û taybetmendiyên wan diyar dikin:

Mîheng → Nod → 'navê nodê' → Tiştên Daneyên>Daneyên Daneyê Biafirînin

1) Metrîka sereke biafirînin ku hemî parametreyên ji databasê bipirsin

DIY: em çawa çavdêriya wargehê otomatîk dikin

Em navê hêmana daneyê destnîşan dikin, celebê "Rastkirina derveyî" destnîşan dikin. Di qada "Key" de, em skrîptek destnîşan dikin ku em wekî parametre navê databasa Oracle, navê lêpirsîna sql, têketin û şîfreya ji bo girêdana bi databasê re derbas dikin. Navbera nûvekirina pirsê 5 hûrdem (300 çirke) saz bikin.

2) Ji bo her statûya wesayîtê metrîkên mayî biafirînin. Nirxên van metrîkan dê li ser bingeha encama kontrolkirina metrîka sereke bêne çêkirin.

DIY: em çawa çavdêriya wargehê otomatîk dikin

Em navê hêmana daneyê destnîşan dikin, celebê "Rastkirina derveyî" destnîşan dikin. Di qada "Key" de, em skrîptek destnîşan dikin ku em wekî parametre navê databasa Oracle û koda statûya ku em dixwazin nirxa wê bişopînin derbas dikin. Me navbera nûvekirina pirsê 10 saniyeyan ji metrîka sereke (310 çirke) dirêjtir destnîşan kir da ku wext hebe ku encam li pelê bêne nivîsandin.

Ji bo bidestxistina metrîkan rast, rêza ku lê tê aktîfkirin girîng e. Ji bo ku di dema wergirtina daneyan de ji pevçûnan dûr nekevin, berî her tiştî em metrîka sereke GetCarsByStatus bi gazîkirina skrîptê çalak dikin - wh_Metrics.sh.

Mîheng → Nod → 'navê girêk' → Hêmanên daneyê → Binfilter "Kontrolên derve". Kontrola pêwîst nîşan bikin û "Çalak bike" bikirtînin.

DIY: em çawa çavdêriya wargehê otomatîk dikin

Dûv re, em metrîkên mayî di yek operasyonê de çalak dikin, wan hemî bi hev re hilbijêrin:

DIY: em çawa çavdêriya wargehê otomatîk dikin

Naha Zabbix dest bi berhevkirina pîvanên karsaziya wargehê kiriye.

Di gotarên jêrîn de, em ê ji nêz ve li girêdana Grafana û çêkirina tabloyên agahdarî yên karûbarên wargehê ji bo kategoriyên cûda yên bikarhêneran binihêrin. Grafana di heman demê de ji bo şopandina devjêberdanên di karûbarên wargehê de tê bikar anîn û, li gorî sînor û berbelavbûna devjêran, bûyeran di pergala navenda karûbarê rêveberiya depoyê de bi navgîniya API-yê tomar dike an jî tenê bi e-nameyê agahdariya ji rêveberê re bişîne.

DIY: em çawa çavdêriya wargehê otomatîk dikin

Source: www.habr.com

Add a comment