DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

X5 nṣiṣẹ awọn ile-iṣẹ pinpin 43 ati 4 ti awọn ọkọ nla tirẹ, ni idaniloju ipese awọn ọja ti ko ni idilọwọ si awọn ile itaja 029. Ninu nkan yii Emi yoo pin iriri mi ti ṣiṣẹda eto ibaraenisepo fun ibojuwo awọn iṣẹlẹ ile itaja lati ibere. Alaye naa yoo wulo fun awọn onimọ-jinlẹ ti awọn ile-iṣẹ iṣowo pẹlu ọpọlọpọ awọn ile-iṣẹ pinpin mejila ti n ṣakoso awọn ọja lọpọlọpọ.

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

Gẹgẹbi ofin, ikole ti ibojuwo ati awọn eto iṣakoso ilana iṣowo bẹrẹ pẹlu awọn ifiranṣẹ sisẹ ati awọn iṣẹlẹ. Ni akoko kanna, aaye imọ-ẹrọ pataki kan ti o ni ibatan si iṣeeṣe adaṣe adaṣe otitọ ti iṣẹlẹ ti awọn iṣẹlẹ iṣowo ati awọn iṣẹlẹ gbigbasilẹ padanu. Pupọ awọn ọna ṣiṣe iṣowo bii WMS, TMS, ati bẹbẹ lọ, ni awọn irinṣẹ ti a ṣe sinu rẹ fun abojuto awọn ilana tiwọn. Ṣugbọn, ti iwọnyi ba jẹ awọn eto lati ọdọ awọn olupese oriṣiriṣi tabi iṣẹ ṣiṣe ibojuwo ko ni idagbasoke to, o ni lati paṣẹ awọn iyipada gbowolori tabi fa awọn alamọran pataki fun awọn eto afikun.

Jẹ ki a gbero ọna kan ninu eyiti a nilo apakan kekere ti ijumọsọrọ ti o ni nkan ṣe pẹlu idamo awọn orisun (tabili) lati gba awọn afihan lati inu eto naa.

Ni pato ti awọn ile itaja wa ni pe ọpọlọpọ awọn eto iṣakoso ile itaja (WMS Tayọ) ṣiṣẹ ni eka eekaderi kan. Warehouses ti wa ni pin ni ibamu si awọn isori ti ipamọ ti awọn ọja (gbẹ, oti, tutunini, bbl) ko nikan logically. Laarin eka eekaderi kan ọpọlọpọ awọn ile ile itaja lọtọ lo wa, ọkọọkan wọn ni iṣakoso nipasẹ WMS tirẹ.

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

Lati ṣe agbekalẹ aworan gbogbogbo ti awọn ilana ti o waye ni ile-itaja, awọn alakoso ṣe itupalẹ ijabọ WMS kọọkan ni ọpọlọpọ igba ni ọjọ kan, awọn ifiranṣẹ ilana lati ọdọ awọn oniṣẹ ile-ipamọ (awọn olugba, awọn olupilẹṣẹ, awọn akopọ) ati ṣoki awọn itọkasi iṣiṣẹ gangan fun iṣaro lori igbimọ alaye.

Lati ṣafipamọ akoko awọn alakoso, a pinnu lati ṣe agbekalẹ eto ilamẹjọ fun iṣakoso iṣẹ ṣiṣe ti awọn iṣẹlẹ ile itaja. Eto tuntun, ni afikun si iṣafihan awọn ifihan “gbona” ti iṣẹ ṣiṣe ti awọn ilana ile itaja, yẹ ki o tun ṣe iranlọwọ fun awọn alakoso ni gbigbasilẹ awọn iṣẹlẹ ati ibojuwo imuse awọn iṣẹ ṣiṣe lati yọkuro awọn idi ti o ni ipa awọn itọkasi ti a fun. Lẹhin ṣiṣe iṣayẹwo gbogbogbo ti ile-iṣẹ IT ti ile-iṣẹ, a rii pe awọn apakan kọọkan ti eto ti o nilo tẹlẹ wa ni ọna kan tabi omiiran ni ala-ilẹ wa ati fun wọn mejeeji ni idanwo ti awọn eto ati awọn iṣẹ atilẹyin pataki. Gbogbo ohun ti o ku ni lati mu gbogbo imọran wa sinu ojutu ayaworan kan ṣoṣo ati ṣe iṣiro iwọn idagbasoke.

Lẹhin iṣiro iye iṣẹ ti o nilo lati ṣe lati kọ eto tuntun kan, o pinnu lati pin iṣẹ akanṣe si awọn ipele pupọ:

  1. Gbigba awọn itọkasi fun awọn ilana ile-ipamọ, iworan ati iṣakoso ti awọn olufihan ati awọn iyapa
  2. Adaṣiṣẹ ti awọn iṣedede ilana ati iforukọsilẹ awọn ohun elo ni iṣẹ iṣẹ iṣowo fun awọn iyapa
  3. Abojuto iṣakoso pẹlu asọtẹlẹ fifuye ati ṣiṣẹda awọn iṣeduro fun awọn alakoso.

Ni ipele akọkọ, eto naa gbọdọ gba awọn ege ti a pese silẹ ti data iṣiṣẹ lati gbogbo WMS ti eka naa. Kika waye fere ni akoko gidi (awọn aaye arin ti o kere ju iṣẹju 5). Ẹtan naa ni pe data gbọdọ gba lati DBMS ti ọpọlọpọ awọn ile itaja mejila nigbati o ba nfi eto si gbogbo nẹtiwọọki. Awọn data iṣẹ ṣiṣe ti o gba ti ni ilọsiwaju nipasẹ ọgbọn ti ipilẹ eto lati ṣe iṣiro awọn iyapa lati awọn afihan ti a gbero ati ṣe iṣiro awọn iṣiro. Awọn data ti a ṣe ni ọna yii gbọdọ wa ni afihan lori tabulẹti oluṣakoso tabi lori igbimọ alaye ile-ipamọ ni irisi awọn aworan ati awọn aworan atọka ti oye.

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

Nigbati o ba yan eto ti o dara fun imuse awakọ ti ipele akọkọ, a yan Zabbix. Eto yii ti lo tẹlẹ lati ṣe atẹle iṣẹ IT ti awọn eto ile itaja. Nipa fifi sori ẹrọ lọtọ fun gbigba awọn metiriki iṣowo ti iṣẹ ile-iṣọ, o le gba aworan gbogbogbo ti ilera ti ile-itaja naa.

Itumọ gbogbogbo ti eto naa ti jade bi ninu eeya naa.

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

Apeere WMS kọọkan jẹ asọye bi ogun fun eto ibojuwo. Awọn wiwọn jẹ gbigba nipasẹ olupin aarin kan ninu nẹtiwọọki aarin data nipa ṣiṣiṣẹ iwe afọwọkọ kan pẹlu ibeere SQL ti a murasilẹ. Ti o ba nilo lati ṣe atẹle eto ti ko ṣeduro iraye si taara si ibi ipamọ data (fun apẹẹrẹ, SAP EWM), o le lo awọn ipe iwe afọwọkọ si awọn iṣẹ API ti o gbasilẹ lati gba awọn afihan tabi kọ eto ti o rọrun ni Python/vbascript.

Apeere aṣoju Zabbix kan ti wa ni ransogun ni nẹtiwọọki ile-ipamọ lati pin kaakiri fifuye lati olupin akọkọ. Nipasẹ aṣoju, iṣẹ pẹlu gbogbo awọn iṣẹlẹ WMS agbegbe ni idaniloju. Nigbamii ti olupin Zabbix n beere awọn ayeraye, iwe afọwọkọ kan yoo ṣiṣẹ lori agbalejo pẹlu aṣoju Zabbix lati beere awọn metiriki lati ibi data WMS.

Lati ṣe afihan awọn aworan ati awọn afihan ile itaja lori olupin Zabbix aringbungbun, a ran Grafana lọ. Ni afikun si iṣafihan awọn dasibodu ti a pese silẹ pẹlu awọn alaye alaye ti awọn iṣẹ ile-iṣọ, Grafana yoo ṣee lo lati ṣe atẹle awọn iyapa ninu awọn olufihan ati firanṣẹ awọn itaniji laifọwọyi si eto iṣẹ ile-ipamọ fun ṣiṣẹ pẹlu awọn iṣẹlẹ iṣowo.

Gẹgẹbi apẹẹrẹ, jẹ ki a gbero imuse ti iṣakoso fifuye ni agbegbe gbigba ile itaja. Awọn atẹle ni a yan bi awọn itọkasi akọkọ ti iṣẹ ṣiṣe ni agbegbe ile-itaja yii:

  • nọmba ti awọn ọkọ ni agbegbe gbigba, mu sinu iroyin awọn ipo (ngbero, de, awọn iwe aṣẹ, unloading, ilọkuro;
  • iṣẹ ṣiṣe ti gbigbe ati awọn agbegbe atunṣe (gẹgẹbi awọn ipo ipamọ).

Eto

Fifi sori ẹrọ ati iṣeto ni awọn paati akọkọ ti eto (SQLcl, Zabbix, Grafana) jẹ apejuwe ni awọn orisun pupọ ati pe kii yoo tun ṣe nibi. Lilo SQLcl dipo SQLplus jẹ nitori otitọ pe SQLcl (ni wiwo laini aṣẹ ti Oracle DBMS, ti a kọ ni java) ko nilo afikun fifi sori ẹrọ ti Oracle Client ati ṣiṣẹ jade ninu apoti.

Emi yoo ṣe apejuwe awọn aaye akọkọ ti o yẹ ki o san ifojusi si nigba lilo Zabbix lati ṣe atẹle awọn itọkasi ilana iṣowo ile itaja, ati ọkan ninu awọn ọna ti o ṣeeṣe lati ṣe imuse wọn. Pẹlupẹlu, eyi kii ṣe ifiweranṣẹ nipa aabo. Aabo awọn asopọ ati lilo awọn ọna ti a gbekalẹ nilo ikẹkọ afikun ni ilana gbigbe ojutu awakọ sinu iṣẹ iṣelọpọ.

Ohun akọkọ ni pe nigba imuse iru eto kan, o ṣee ṣe lati ṣe laisi siseto, lilo awọn eto ti a pese nipasẹ eto naa.

Eto ibojuwo Zabbix n pese awọn aṣayan pupọ fun gbigba awọn metiriki lati eto abojuto. Eyi le ṣee ṣe boya nipasẹ yiyan awọn agbalejo abojuto taara, tabi nipasẹ ọna ilọsiwaju diẹ sii ti fifiranṣẹ data si olupin nipasẹ zabbix_sender agbalejo, pẹlu awọn ọna fun atunto awọn aye wiwa ipele kekere. Lati yanju iṣoro wa, ọna ti idibo taara ti awọn ọmọ-ogun nipasẹ olupin aringbungbun jẹ ohun ti o dara, nitori eyi n gba ọ laaye lati ni iṣakoso ni kikun lori ọkọọkan ti gbigba awọn metiriki ati rii daju pe o lo eto kan ti awọn eto / awọn iwe afọwọkọ laisi iwulo lati pin kaakiri wọn si olupin abojuto kọọkan.

Gẹgẹbi “awọn koko-ọrọ idanwo” fun ṣiṣatunṣe ati ṣeto eto naa, a lo iwe iṣẹ WMS fun iṣakoso gbigba:

  1. Awọn ọkọ ayọkẹlẹ ni gbigba, gbogbo awọn ti o ti de: Gbogbo awọn ọkọ ayọkẹlẹ pẹlu awọn ipo fun akoko “- awọn wakati 72 lati akoko lọwọlọwọ” - idanimọ ibeere SQL: gba Awọn ọkọ ayọkẹlẹ.
  2. Itan-akọọlẹ ti gbogbo awọn ipo ọkọ: Awọn ipo ti gbogbo awọn ọkọ ti o de laarin awọn wakati 72 - idanimọ ibeere SQL: awọn ọkọ ayọkẹlẹ History.
  3. Awọn ọkọ ayọkẹlẹ ti a ṣeto fun gbigba: Awọn ipo ti gbogbo awọn ọkọ ayọkẹlẹ pẹlu dide ni ipo “Ti a ṣe eto”, aarin akoko “- awọn wakati 24” ati “+24 wakati” lati akoko lọwọlọwọ - idanimọ ibeere SQL: awọn ọkọ ayọkẹlẹIn.

Nitorinaa, lẹhin ti a ti pinnu lori ṣeto awọn metiriki iṣẹ ile-itaja, a yoo mura awọn ibeere SQL fun data WMS. Lati ṣiṣẹ awọn ibeere, o ni imọran lati lo kii ṣe aaye data akọkọ, ṣugbọn ẹda “gbona” rẹ - imurasilẹ.

A sopọ si imurasilẹ Oracle DBMS lati gba data wọle. Adirẹsi IP fun sisopọ si aaye data idanwo 192.168.1.106. A fi awọn paramita asopọ pamọ sori olupin Zabbix ni TNSNames.ORA ti folda iṣẹ 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)
    )
  )

Eyi yoo gba wa laaye lati ṣiṣe awọn ibeere SQL si agbalejo kọọkan nipasẹ EZconnect, ti n ṣalaye iwọle / ọrọ igbaniwọle nikan ati orukọ data data:

# sql znew/Zabmon1@WH1_1

A ṣafipamọ awọn ibeere SQL ti a pese silẹ sinu folda iṣẹ lori olupin Zabbix:

/etc/zabbix/sql

ati gba iraye si olumulo zabbix ti olupin wa:

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

Awọn faili pẹlu awọn ibeere gba aami idamo-orukọ fun iraye si lati olupin Zabbix. Ibeere data kọọkan nipasẹ SQLcl da pada wa ọpọlọpọ awọn paramita. Ni akiyesi awọn pato ti Zabbix, eyiti o le ṣe ilana metiriki kan fun ibeere, a yoo lo awọn iwe afọwọkọ afikun lati ṣe itupalẹ awọn abajade ibeere sinu awọn metiriki kọọkan.

Jẹ ki a mura iwe afọwọkọ akọkọ, jẹ ki a pe wh_Metrics.sh, lati pe ibeere SQL kan si ibi ipamọ data, fi awọn abajade pamọ ki o da metiriki imọ-ẹrọ pada pẹlu awọn afihan aṣeyọri ti imupadabọ data:

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

A gbe faili ti o pari pẹlu iwe afọwọkọ ninu folda fun titoju awọn iwe afọwọkọ ita ni ibamu pẹlu awọn eto iṣeto aṣoju-aṣoju Zabbix (nipasẹ aiyipada - /usr/agbegbe/pin/zabbix/awọn iwe afọwọkọ ita).

Idanimọ ti data lati eyiti iwe afọwọkọ yoo gba awọn abajade yoo kọja bi paramita iwe afọwọkọ. ID data gbọdọ baramu laini eto inu faili TNSNames.ORA.

Abajade ipe ibeere SQL ti wa ni fipamọ sinu faili bi mon_base_id_main.log ibi ti base_id = Idanimọ data gba bi paramita iwe afọwọkọ. Pipin faili abajade nipasẹ awọn oludamọ data data ni a pese ni ọran ti awọn ibeere lati ọdọ olupin si awọn apoti isura data pupọ ni nigbakannaa. Ibeere naa da pada lẹsẹsẹ awọn iye onisẹpo meji.

Iwe afọwọkọ atẹle, jẹ ki a pe ni getMetrica.sh, ni a nilo lati gba metric kan pato lati faili kan pẹlu abajade ibeere kan:

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

Bayi a ti ṣetan lati tunto Zabbix ki o bẹrẹ awọn afihan ibojuwo ti awọn ilana gbigba ile-itaja.

A ti fi sori ẹrọ aṣoju Zabbix ati tunto lori oju ipade data kọọkan.

Lori olupin akọkọ a ṣalaye gbogbo awọn olupin pẹlu aṣoju Zabbix. Fun awọn eto, lọ si ọna atẹle:

Isakoso → Aṣoju → Ṣẹda aṣoju

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

A ṣalaye awọn agbalejo iṣakoso:

Eto → Awọn ogun → Ṣẹda ogun

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

Orukọ ogun gbọdọ baramu orukọ igbalejo ti o wa ni pato ninu faili iṣeto ni aṣoju.

A pato awọn ẹgbẹ fun awọn ipade, bi daradara bi awọn IP adirẹsi tabi DNS orukọ ti awọn ipade pẹlu awọn database.

A ṣẹda awọn metiriki ati pato awọn ohun-ini wọn:

Eto → Awọn apa → 'oruko node' → Awọn nkan data>Ṣẹda Nkan data

1) Ṣẹda metiriki akọkọ lati beere gbogbo awọn paramita lati ibi ipamọ data

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

A ṣeto awọn orukọ ti awọn data ano, tọkasi awọn iru "Ijeri ita". Ninu aaye “Kọtini”, a ṣalaye iwe afọwọkọ kan si eyiti a kọja bi awọn ayeraye orukọ data data Oracle, orukọ ibeere sql, iwọle ati ọrọ igbaniwọle fun sisopọ si data data. Ṣeto aarin imudojuiwọn ibeere si iṣẹju 5 (awọn aaya 300).

2) Ṣẹda awọn metiriki ti o ku fun ipo ọkọ kọọkan. Awọn iye ti awọn metiriki wọnyi yoo ṣe ipilẹṣẹ da lori abajade ti ṣayẹwo metiriki akọkọ.

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

A ṣeto awọn orukọ ti awọn data ano, tọkasi awọn iru "Ijeri ita". Ni aaye “Kọtini”, a ṣalaye iwe afọwọkọ kan si eyiti a kọja bi paramita orukọ data data Oracle ati koodu ipo ti iye rẹ fẹ lati tọpa. A ṣeto aarin imudojuiwọn ibeere si iṣẹju-aaya 10 to gun ju metiriki akọkọ (awọn aaya 310) ki awọn abajade ni akoko lati kọ si faili naa.

Lati gba awọn metiriki ni deede, aṣẹ ninu eyiti o ti mu awọn sọwedowo ṣiṣẹ jẹ pataki. Ni ibere lati yago fun awọn ija nigba gbigba data, akọkọ gbogbo a mu metric akọkọ GetCarsByStatus ṣiṣẹ nipa pipe awọn akosile - wh_Metrics.sh.

Eto → Awọn apa → 'orukọ node' → Awọn eroja data → Subfilter “Awọn sọwedowo ita”. Samisi ayẹwo ti o nilo ki o tẹ "Mu ṣiṣẹ".

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

Nigbamii, a mu awọn metiriki ti o ku ṣiṣẹ ni iṣẹ kan, yiyan gbogbo wọn papọ:

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

Bayi Zabbix ti bẹrẹ gbigba awọn metiriki iṣowo ile itaja.

Ninu awọn nkan atẹle, a yoo wo isunmọ ni sisopọ Grafana ati ṣiṣẹda awọn dasibodu alaye ti awọn iṣẹ ile itaja fun ọpọlọpọ awọn ẹka ti awọn olumulo. A tun lo Grafana lati ṣe atẹle awọn iyapa ninu awọn iṣẹ ile itaja ati, da lori awọn aala ati igbohunsafẹfẹ ti awọn iyapa, forukọsilẹ awọn iṣẹlẹ ninu eto ile-iṣẹ iṣakoso ile-ipamọ nipasẹ API tabi fi awọn iwifunni ranṣẹ si oluṣakoso nipasẹ imeeli.

DIY: bawo ni a ṣe n ṣe adaṣe ibojuwo ile itaja

orisun: www.habr.com

Fi ọrọìwòye kun