DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Ang X5 nag-operate ug 43 ka distribution centers ug 4 ka kaugalingong mga trak, nga nagsiguro sa walay hunong nga suplay sa mga produkto ngadto sa 029 ka tindahan. Niini nga artikulo akong ipaambit ang akong kasinatian sa paghimo og interactive nga sistema alang sa pagmonitor sa mga panghitabo sa bodega gikan sa wala. Mapuslan ang kasayuran sa mga logisticians sa mga kompanya sa pamatigayon nga adunay daghang dosena nga mga sentro sa pag-apod-apod nga nagdumala sa daghang mga produkto.

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Ingon sa usa ka lagda, ang pagtukod sa pag-monitor ug mga sistema sa pagdumala sa proseso sa negosyo nagsugod sa pagproseso sa mga mensahe ug mga insidente. Sa samang higayon, usa ka importante nga teknolohikal nga punto nga may kalabutan sa posibilidad sa pag-automate sa mismong kamatuoran sa panghitabo sa mga panghitabo sa negosyo ug sa pagrekord sa mga insidente ang wala. Kadaghanan sa mga sistema sa negosyo sama sa WMS, TMS, ug uban pa, adunay built-in nga mga himan alang sa pagmonitor sa ilang kaugalingon nga mga proseso. Apan, kung kini mga sistema gikan sa lainlaing mga tiggama o ang pag-andar sa pag-monitor dili igo nga naugmad, kinahanglan nimo nga mag-order og mahal nga mga pagbag-o o pagdani sa mga espesyalista nga consultant alang sa dugang nga mga setting.

Atong tagdon ang usa ka pamaagi diin kita nagkinahanglan lamang og gamay nga bahin sa pagkonsulta nga may kalabutan sa pag-ila sa mga tinubdan (mga lamesa) aron makakuha og mga indicators gikan sa sistema.

Ang espesipiko sa among mga bodega mao nga daghang mga sistema sa pagdumala sa bodega (WMS Exceed) ang naglihok sa usa ka logistics complex. Ang mga bodega gibahin sumala sa mga kategorya sa pagtipig sa mga butang (uga, alkohol, frozen, ug uban pa) dili lamang lohikal. Sulod sa usa ka logistics complex adunay daghang bulag nga bodega nga mga bilding, ang matag usa gidumala sa kaugalingon nga WMS.

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Aron maporma ang usa ka kinatibuk-ang hulagway sa mga proseso nga nahitabo sa bodega, ang mga manedyer mag-analisar sa pagreport sa matag WMS sa makadaghang higayon sa usa ka adlaw, magproseso sa mga mensahe gikan sa mga operator sa bodega (mga tigdawat, tigpili, mga stacker) ug i-summarize ang aktuwal nga mga indikasyon sa operasyon alang sa pagpamalandong sa information board.

Aron makadaginot sa oras sa mga manedyer, nakahukom kami nga maghimo usa ka dili mahal nga sistema alang sa pagkontrol sa operasyon sa mga panghitabo sa bodega. Ang bag-ong sistema, agig dugang sa pagpakita sa "init" nga mga indicators sa operational performance sa mga proseso sa bodega, kinahanglan usab nga makatabang sa mga manedyer sa pagrekord sa mga insidente ug pagmonitor sa pagpatuman sa mga buluhaton aron mapapas ang mga hinungdan nga makaapekto sa gihatag nga mga indicators. Pagkahuman sa pagpahigayon sa usa ka kinatibuk-ang pag-audit sa arkitektura sa IT sa kompanya, nahibal-an namon nga ang mga indibidwal nga bahin sa gikinahanglan nga sistema naglungtad na sa usa ka paagi o lain sa among talan-awon ug alang kanila adunay usa ka pagsusi sa mga setting ug kinahanglan nga mga serbisyo sa suporta. Ang nahabilin mao ang pagdala sa tibuuk nga konsepto sa usa ka solusyon sa arkitektura ug pagbanabana sa kasangkaran sa pag-uswag.

Pagkahuman sa pagtimbang-timbang sa kantidad sa trabaho nga kinahanglan buhaton aron makatukod usa ka bag-ong sistema, nakahukom nga bahinon ang proyekto sa daghang mga yugto:

  1. Koleksyon sa mga timailhan alang sa mga proseso sa bodega, paghanduraw ug pagkontrol sa mga timailhan ug mga pagtipas
  2. Pag-automate sa mga sumbanan sa proseso ug pagrehistro sa mga aplikasyon sa serbisyo sa serbisyo sa negosyo alang sa mga pagtipas
  3. Ang aktibo nga pag-monitor nga adunay pagtagna sa pagkarga ug paghimo sa mga rekomendasyon alang sa mga managers.

Sa una nga yugto, ang sistema kinahanglan nga mangolekta giandam nga mga hiwa sa data sa operasyon gikan sa tanan nga WMS sa complex. Ang pagbasa mahitabo hapit sa tinuud nga oras (mga gilay-on nga wala’y 5 minuto). Ang lansis mao nga ang mga datos kinahanglan makuha gikan sa DBMS sa daghang dosena nga mga bodega kung i-deploy ang sistema sa tibuuk nga network. Ang nadawat nga datos sa operasyon giproseso sa lohika sa kinauyokan sa sistema aron makalkulo ang mga pagtipas gikan sa giplano nga mga indikasyon ug makalkula ang mga estadistika. Ang datos nga giproseso niining paagiha kinahanglang ipakita sa tableta sa manedyer o sa information board sa bodega sa porma sa masabtan nga mga graph ug mga diagram.

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Kung nagpili usa ka angay nga sistema alang sa pagpatuman sa piloto sa una nga yugto, gipili namon ang Zabbix. Kini nga sistema kay gigamit na sa pagmonitor sa IT performance sa mga sistema sa bodega. Pinaagi sa pagdugang sa usa ka bulag nga pag-install alang sa pagkolekta sa mga sukatan sa negosyo sa operasyon sa bodega, mahimo nimong makuha ang usa ka kinatibuk-ang litrato sa kahimsog sa bodega.

Ang kinatibuk-ang arkitektura sa sistema nahimo sama sa numero.

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Ang matag pananglitan sa WMS gihubit ingon usa ka host alang sa sistema sa pag-monitor. Ang mga sukatan gikolekta sa usa ka sentral nga server sa network sa data center pinaagi sa pagpadagan sa usa ka script nga adunay giandam nga pangutana sa SQL. Kung kinahanglan nimo nga bantayan ang usa ka sistema nga wala magrekomenda sa direktang pag-access sa database (pananglitan, SAP EWM), mahimo nimong gamiton ang mga tawag sa script sa mga dokumentado nga function sa API aron makakuha mga timailhan o pagsulat usa ka yano nga programa sa python/vbascript.

Ang usa ka pananglitan sa proxy sa Zabbix gi-deploy sa network sa bodega aron ipang-apod-apod ang load gikan sa main server. Pinaagi sa Proxy, ang pagtrabaho uban sa tanang lokal nga mga panghitabo sa WMS masiguro. Sa sunod higayon nga ang server sa Zabbix mangayo ug mga parametro, usa ka script ang ipatuman sa host nga adunay Zabbix proxy aron mangayo ug metrics gikan sa WMS database.

Aron ipakita ang mga graph ug mga indikasyon sa bodega sa sentral nga server sa Zabbix, among gi-deploy ang Grafana. Dugang sa pagpakita sa giandam nga mga dashboard nga adunay mga infographics sa mga operasyon sa bodega, ang Grafana gamiton sa pagmonitor sa mga pagtipas sa mga indicators ug pagpadala sa mga awtomatikong alerto sa sistema sa serbisyo sa bodega alang sa pagtrabaho sa mga insidente sa negosyo.

Isip pananglitan, atong tagdon ang pagpatuman sa load control sa bodega sa pagdawat nga lugar. Ang mga mosunud gipili ingon mga nag-unang timailhan sa pasundayag sa proseso sa kini nga lugar sa bodega:

  • gidaghanon sa mga sakyanan sa reception area, nga gikonsiderar ang mga status (giplanohan, miabot, mga dokumento, pagdiskarga, pagbiya;
  • workload sa placement ug replenishment nga mga dapit (sumala sa mga kondisyon sa pagtipig).

Mga Setting

Ang pag-instalar ug pag-configure sa mga nag-unang sangkap sa sistema (SQLcl, Zabbix, Grafana) gihulagway sa lainlaing mga gigikanan ug dili na masubli dinhi. Ang paggamit sa SQLcl imbes sa SQLplus tungod sa kamatuoran nga ang SQLcl (ang command line interface sa Oracle DBMS, gisulat sa java) wala magkinahanglan og dugang nga pag-instalar sa Oracle Client ug nagtrabaho sa gawas sa kahon.

Akong ihulagway ang mga nag-unang punto nga kinahanglan hatagan pagtagad kung gigamit ang Zabbix aron ma-monitor ang mga indikasyon sa proseso sa negosyo sa bodega, ug usa sa posible nga mga paagi sa pagpatuman niini. Usab, kini dili usa ka post bahin sa seguridad. Ang kasiguruhan sa mga koneksyon ug ang paggamit sa gipresentar nga mga pamaagi nanginahanglan dugang nga pagtuon sa proseso sa pagbalhin sa solusyon sa piloto sa produktibo nga operasyon.

Ang nag-unang butang mao nga kung ipatuman ang ingon nga sistema, posible nga buhaton nga wala ang pagprograma, gamit ang mga setting nga gihatag sa sistema.

Ang sistema sa pagmonitor sa Zabbix naghatag daghang mga kapilian sa pagkolekta sa mga sukatan gikan sa gibantayan nga sistema. Mahimo kini pinaagi sa direkta nga pag-monitor sa mga panon sa botohan, o pinaagi sa usa ka mas abante nga pamaagi sa pagpadala sa datos sa server pinaagi sa zabbix_sender sa host, lakip ang mga pamaagi sa pag-configure sa ubos nga lebel nga mga parameter sa pagkadiskobre. Aron masulbad ang among problema, ang pamaagi sa direkta nga pagboto sa mga host pinaagi sa usa ka sentral nga server angayan, tungod kay kini nagtugot kanimo sa pagbaton og bug-os nga kontrol sa han-ay sa metrics acquisition ug pagsiguro nga mogamit ka og usa ka set sa mga setting/scripts nga dili kinahanglan nga iapud-apod kini ngadto sa matag monitored host.

Isip "mga suheto sa pagsulay" alang sa pag-debug ug pag-set up sa sistema, among gigamit ang WMS worksheet alang sa pagdumala sa pagdawat:

  1. Mga sakyanan sa reception, tanan nga naabot: Tanan nga mga sakyanan nga adunay mga status sa panahon nga "- 72 ka oras gikan sa kasamtangan nga oras" - SQL query identifier: getCars.
  2. Kasaysayan sa tanang status sa sakyanan: Mga status sa tanang sakyanan nga moabot sulod sa 72 ka oras - SQL query identifier: kasaysayan sa mga sakyanan.
  3. Naka-iskedyul nga mga salakyanan nga dawaton: Mga kahimtang sa tanan nga mga salakyanan nga adunay pag-abut sa "Naka-iskedyul" nga kahimtang, agwat sa oras "- 24 ka oras" ug "+24 ka oras" gikan sa karon nga oras - SQL query identifier: mga sakyananSa.

Busa, human kami makahukom sa usa ka set sa bodega sa performance metrics, kami mag-andam sa SQL nga mga pangutana alang sa WMS database. Aron mapatuman ang mga pangutana, maayo nga gamiton dili ang panguna nga database, apan ang "init" nga kopya niini - standby.

Nagkonektar kami sa standby Oracle DBMS aron makadawat og datos. IP address alang sa pagkonektar sa database sa pagsulay 192.168.1.106. Gitipigan namo ang mga parameter sa koneksyon sa server sa Zabbix sa TNSNames.ORA sa SQLcl working folder:

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

Magtugot kini kanamo sa pagpadagan sa mga pangutana sa SQL sa matag host pinaagi sa EZconnect, nga nagtino lamang sa login/password ug ngalan sa database:

# sql znew/Zabmon1@WH1_1

Gitipigan namo ang giandam nga mga pangutana sa SQL sa nagtrabaho nga folder sa Zabbix server:

/etc/zabbix/sql

ug tugoti ang access sa zabbix user sa among server:

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

Ang mga file nga adunay mga hangyo makadawat usa ka talagsaon nga identifier-ngalan alang sa pag-access gikan sa server sa Zabbix. Ang matag pangutana sa database pinaagi sa SQLcl nagbalik kanamo daghang mga parameter. Sa pagkonsiderar sa mga detalye sa Zabbix, nga makaproseso lang og usa ka metric matag hangyo, mogamit kami og dugang nga mga script aron ma-parse ang mga resulta sa pangutana ngadto sa tagsa-tagsa nga metrics.

Atong andamon ang nag-unang script, tawgon nato kini nga wh_Metrics.sh, aron tawagan ang SQL query sa database, i-save ang mga resulta ug ibalik ang teknikal nga metric nga adunay mga timailhan sa kalampusan sa pagkuha sa datos:

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

Gibutang namon ang nahuman nga file nga adunay script sa folder alang sa pagtipig sa mga eksternal nga script uyon sa mga setting sa pagsumpo sa Zabbix-proxy (sa default - /usr/local/share/zabbix/externalscripts).

Ang pag-ila sa database diin ang script makadawat sa mga resulta ipasa isip parameter sa script. Ang database ID kinahanglang mohaum sa linya sa mga setting sa TNSNames.ORA file.

Ang resulta sa SQL query nga tawag gitipigan sa usa ka file sama sa mon_base_id_main.log diin base_id = Ang database identifier nadawat isip parameter sa script. Ang pagbahin sa resulta nga file pinaagi sa database identifiers gihatag sa kaso sa mga hangyo gikan sa server ngadto sa daghang mga database nga dungan. Ang pangutana nagbalik sa usa ka gihan-ay nga duha-ka-dimensional nga han-ay sa mga kantidad.

Ang mosunud nga script, tawgon nato kini nga getMetrica.sh, gikinahanglan aron makakuha usa ka piho nga sukatan gikan sa usa ka file nga adunay sangputanan sa usa ka hangyo:

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

Karon andam na kami nga i-configure ang Zabbix ug magsugod sa pag-monitor sa mga timailhan sa mga proseso sa pagdawat sa bodega.

Usa ka ahente sa Zabbix ang gi-install ug gi-configure sa matag database node.

Sa panguna nga server among gihubit ang tanan nga mga server nga adunay proxy nga Zabbix. Para sa mga setting, adto sa mosunod nga dalan:

Administrasyon → Proxy → Paghimo proxy

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Atong gihubit ang kontroladong mga panon:

Mga setting → Mga host → Paghimo host

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Ang hostname kinahanglan nga motakdo sa hostname nga gipiho sa agent configuration file.

Gitino namo ang grupo alang sa node, ingon man ang IP address o DNS nga ngalan sa node nga adunay database.

Naghimo kami mga sukatan ug gipiho ang ilang mga kabtangan:

Mga setting → Nodes → 'ngalan sa node' → Mga Butang sa Data> Paghimog Butang sa Data

1) Paghimo usa ka panguna nga sukatan aron mapangutana ang tanan nga mga parameter gikan sa database

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Gibutang namon ang ngalan sa elemento sa datos, gipakita ang tipo nga "External verification". Sa field nga "Key", among gihubit ang usa ka script diin among gipasa isip mga parameter ang ngalan sa Oracle database, ang ngalan sa sql query, ang login ug password alang sa pagkonektar sa database. Ibutang ang agwat sa pag-update sa pangutana sa 5 minuto (300 segundos).

2) Paghimo sa nahabilin nga mga sukatan alang sa matag kahimtang sa awto. Ang mga kantidad sa kini nga mga sukatan mabuhat base sa resulta sa pagsusi sa panguna nga sukatan.

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Gibutang namon ang ngalan sa elemento sa datos, gipakita ang tipo nga "External verification". Diha sa field nga "Key", among gihubit ang usa ka script diin among gipasa isip mga parameter ang ngalan sa Oracle database ug ang status code kansang bili gusto namong sundan. Gibutang namo ang agwat sa pag-update sa pangutana ngadto sa 10 segundos nga mas taas kay sa nag-unang sukatan (310 segundos) aron ang mga resulta adunay panahon nga isulat sa file.

Aron makuha ang mga sukatan sa husto, ang han-ay kung diin ang mga tseke gi-aktibo hinungdanon. Aron malikayan ang mga panagbangi kung makadawat mga datos, una sa tanan among gi-aktibo ang panguna nga sukatan nga GetCarsByStatus pinaagi sa pagtawag sa script - wh_Metrics.sh.

Mga setting → Mga node → 'ngalan sa node' → Mga elemento sa datos → Subfilter "Mga pagsusi sa gawas". Markahi ang gikinahanglan nga tseke ug i-klik ang "Activate".

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Sunod, gi-aktibo namon ang nahabilin nga mga sukatan sa usa ka operasyon, gipili silang tanan nga magkauban:

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Karon gisugdan na ni Zabbix ang pagkolekta sa mga sukatan sa negosyo sa bodega.

Sa mosunod nga mga artikulo, atong tan-awon pag-ayo ang pagkonektar sa Grafana ug paghimo og mga dashboard sa impormasyon sa mga operasyon sa bodega alang sa lainlaing mga kategorya sa mga tiggamit. Gigamit usab ang Grafana sa pagmonitor sa mga pagtipas sa mga operasyon sa bodega ug, depende sa mga utlanan ug kasubsob sa mga pagtipas, pagrehistro sa mga insidente sa sistema sa sentro sa serbisyo sa pagdumala sa bodega pinaagi sa API o ipadala lang ang mga pahibalo ngadto sa manedyer pinaagi sa email.

DIY: giunsa namo pag-automate ang pag-monitor sa bodega

Source: www.habr.com

Idugang sa usa ka comment