DIY: څنګه موږ د ګودام نظارت اتومات کوو

X5 د توزیع 43 مرکزونه او 4 خپل لارۍ چلوي، 029 پلورنځیو ته د محصولاتو بې بنسټه عرضه یقیني کوي. پدې مقاله کې به زه د سکریچ څخه د ګودام پیښو نظارت لپاره د متقابل سیسټم رامینځته کولو تجربه شریک کړم. معلومات به د سوداګریزو شرکتونو لوژستیک پوهانو لپاره ګټور وي چې د څو درجن توزیع مرکزونو سره د محصولاتو پراخه لړۍ اداره کوي.

DIY: څنګه موږ د ګودام نظارت اتومات کوو

د یوې قاعدې په توګه، د څارنې او سوداګرۍ پروسې مدیریت سیسټمونو جوړول د پیغامونو او پیښو پروسس کولو سره پیل کیږي. په ورته وخت کې، د سوداګریزو پیښو واقعیت او د پیښو ثبتولو واقعیت اتومات کولو امکان پورې اړوند یو مهم ټیکنالوژیک ټکی له لاسه ورکړ. ډیری سوداګریز سیسټمونه لکه WMS، TMS، او داسې نور، د خپلو پروسو د څارنې لپاره جوړ شوي وسایل لري. مګر، که دا د مختلف تولید کونکو سیسټمونه وي یا د څارنې فعالیت په کافي اندازه نه وي رامینځته شوی ، تاسو باید د قیمتي بدلونونو امر وکړئ یا د اضافي ترتیباتو لپاره ځانګړي مشاورین راجلب کړئ.

راځئ چې یوه داسې طریقه په پام کې ونیسو چې په هغه کې موږ یوازې د مشورې یوې کوچنۍ برخې ته اړتیا لرو چې د سیسټم څخه شاخصونه ترلاسه کولو لپاره د سرچینو پیژندلو (میزونو) سره تړاو لري.

زموږ د ګودامونو ځانګړتیا دا ده چې د ګودامونو ډیری مدیریت سیسټمونه (WMS Exceed) په یو لوژستیک کمپلیکس کې کار کوي. ګودامونه د توکو د ذخیره کولو کټګوریو (وچ، الکول، منجمد، او نور) له مخې نه یوازې په منطقي توګه ویشل شوي. په یوه لوژستیک کمپلیکس کې د ګودامونو څو جلا ودانۍ شتون لري، چې هر یو یې د خپل WMS لخوا اداره کیږي.

DIY: څنګه موږ د ګودام نظارت اتومات کوو

په ګودام کې د پروسو د عمومي انځور جوړولو لپاره، مدیران په ورځ کې څو ځله د هر WMS راپور تحلیل کوي، د ګودام چلونکي (رسیدونکي، راټولونکي، سټیکرز) پیغامونه پروسس کوي او د معلوماتو بورډ کې د انعکاس لپاره حقیقي عملیاتي شاخصونه لنډیز کوي.

د مدیرانو وخت خوندي کولو لپاره، موږ پریکړه وکړه چې د ګودام پیښو عملیاتي کنټرول لپاره ارزانه سیسټم رامینځته کړو. نوی سیسټم، د ګودام پروسو د عملیاتي فعالیت "ګرم" شاخصونو ښودلو سربیره، باید د پیښو ثبتولو او د دندو پلي کولو څارنه کې د مدیرانو سره مرسته وکړي ترڅو هغه لاملونه له منځه یوسي چې په ورکړل شوي شاخصونو اغیزه کوي. د شرکت د معلوماتي ټیکنالوژۍ عمومي پلټنې ترسره کولو وروسته، موږ پوهیږو چې د اړتیا وړ سیسټم انفرادي برخې لا دمخه زموږ په منظره کې په یو ډول یا بل ډول شتون لري او د دوی لپاره د ترتیباتو ازموینه او اړین مالتړ خدمتونه شتون لري. ټول هغه څه چې پاتې دي دا دي چې ټول مفهوم په یو واحد معماري حل کې راوړي او د پراختیا ساحه اټکل کړي.

د نوي سیسټم د جوړولو لپاره د کار مقدار ارزولو وروسته، پریکړه وشوه چې پروژه په څو مرحلو ویشل شي:

  1. د ګودام پروسو لپاره د شاخصونو راټولول، د شاخصونو او انحرافونو لید او کنټرول
  2. د پروسې معیارونو اتومات کول او د انحراف لپاره د سوداګرۍ خدماتو خدماتو کې غوښتنلیکونو ثبت کول
  3. د بار وړاندوینې او د مدیرانو لپاره د وړاندیزونو رامینځته کولو سره فعاله څارنه.

په لومړي پړاو کې، سیسټم باید د کمپلیکس د ټولو WMS څخه د عملیاتي معلوماتو چمتو شوي ټوټې راټول کړي. لوستل تقریبا په ریښتیني وخت کې پیښیږي (د 5 دقیقو څخه کم وقفې). چال دا دی چې ډاټا باید د څو درجن ګودامونو DBMS څخه ترلاسه شي کله چې سیسټم ټولې شبکې ته ځای په ځای کوي. ترلاسه شوي عملیاتي ډاټا د سیسټم اصلي منطق لخوا پروسس کیږي ترڅو د پلان شوي شاخصونو څخه انحراف محاسبه کړي او احصایې محاسبه کړي. په دې ډول پروسس شوي ډاټا باید د مدیر ټابلیټ یا د ګودام معلوماتو بورډ کې د پوهیدو وړ ګرافونو او ډیاګرامونو په بڼه ښودل شي.

DIY: څنګه موږ د ګودام نظارت اتومات کوو

کله چې د لومړي پړاو د پیلوټ پلي کولو لپاره مناسب سیسټم غوره کړئ، موږ زبیبکس غوره کړ. دا سیسټم دمخه د ګودام سیسټمونو د IT فعالیت نظارت کولو لپاره کارول کیږي. د ګودام عملیاتو سوداګرۍ میټریکونو راټولولو لپاره د جلا نصب کولو اضافه کولو سره ، تاسو کولی شئ د ګودام روغتیا عمومي عکس ترلاسه کړئ.

د سیسټم عمومي جوړښت د انځور په څیر وګرځید.

DIY: څنګه موږ د ګودام نظارت اتومات کوو

د WMS هر مثال د څارنې سیسټم لپاره د کوربه په توګه تعریف شوی. میټریکونه د ډیټا سنټر شبکې کې د مرکزي سرور لخوا د چمتو شوي SQL پوښتنې سره سکریپټ چلولو سره راټول شوي. که تاسو اړتیا لرئ د داسې سیسټم څارنه وکړئ چې ډیټابیس ته د مستقیم لاسرسي وړاندیز نه کوي (د مثال په توګه، SAP EWM)، تاسو کولی شئ د شاخصونو ترلاسه کولو لپاره مستند شوي API افعالونو ته سکریپټ کالونه وکاروئ یا په python/vbascript کې یو ساده برنامه ولیکئ.

د زبیبکس پراکسي مثال د ګودام شبکې کې ځای په ځای شوی ترڅو د اصلي سرور څخه بار توزیع کړي. د پراکسي له لارې، د ټولو محلي WMS مثالونو سره کار ډاډمن کیږي. بل ځل چې د زبکس سرور د پیرامیټونو غوښتنه کوي، یو سکریپټ په کوربه کې د زبیبکس پراکسي سره اجرا کیږي ترڅو د WMS ډیټابیس څخه د میټریک غوښتنه وکړي.

په مرکزي زبیبکس سرور کې د ګرافونو او ګودام شاخصونو ښودلو لپاره، موږ ګرافانا ځای په ځای کوو. د ګودام عملیاتو د انفرافیک سره د چمتو شوي ډشبورډونو ښودلو سربیره ، ګرافانا به په شاخصونو کې د انحرافاتو څارلو لپاره وکارول شي او د سوداګرۍ پیښو سره کار کولو لپاره د ګودام خدماتو سیسټم ته اتوماتیک خبرتیاوې واستوي.

د مثال په توګه، راځئ چې د ګودام ترلاسه کولو ساحه کې د بار کنټرول پلي کولو ته پام وکړو. لاندې د ګودام په دې سیمه کې د پروسې فعالیت اصلي شاخصونو په توګه غوره شوي:

  • د استوګنې په ساحه کې د موټرو شمیر، د حالتونو په پام کې نیولو سره (پلان شوي، رسیدلي، اسناد، کښته کول، روانیدل؛
  • د ځای پرځای کولو او بیا ځای پرځای کولو ساحو کاري بار (د ذخیره کولو شرایطو سره سم).

امستنې

د سیسټم د اصلي برخو نصب او ترتیب (SQLcl، Zabbix، Grafana) په مختلفو سرچینو کې تشریح شوي او دلته به تکرار نشي. د SQLplus پرځای د SQLcl کارول د دې حقیقت له امله دي چې SQLcl (د اوریکل DBMS کمانډ لاین انٹرفیس ، په جاوا کې لیکل شوی) د اوریکل پیرودونکي اضافي نصب ته اړتیا نلري او د بکس څخه بهر کار کوي.

زه به هغه اصلي ټکي تشریح کړم چې باید د ګودام سوداګرۍ پروسې شاخصونو نظارت کولو لپاره د زیبکس کارولو په وخت کې پاملرنه وشي، او د دوی د پلي کولو لپاره یو له ممکنه لارو څخه. همدارنګه، دا د امنیت په اړه پوسټ نه دی. د اتصال امنیت او د وړاندې شوي میتودونو کارول په تولیدي عملیاتو کې د ازمایښتي حل لیږد پروسې کې اضافي مطالعې ته اړتیا لري.

اصلي شی دا ده چې د داسې سیسټم پلي کولو په وخت کې، دا ممکنه ده چې پرته له پروګرام کولو پرته، د سیسټم لخوا چمتو شوي ترتیباتو کارولو سره.

د زبکس نظارت سیسټم د څارل شوي سیسټم څخه د میټریکونو راټولولو لپاره ډیری اختیارونه وړاندې کوي. دا یا هم د مستقیمې رایې ورکولو څارل شوي کوربه لخوا ترسره کیدی شي، یا سرور ته د کوربه د zabbix_sender له لارې د ډیرو پرمختللو میتودونو لیږلو له لارې ترسره کیدی شي، په شمول د ټیټ کچې کشف پیرامیټونو ترتیبولو میتودونه. زموږ د ستونزې د حل لپاره، د مرکزي سرور لخوا د کوربه مستقیم رای ورکولو طریقه خورا مناسبه ده، ځکه چې دا تاسو ته اجازه درکوي چې د میټریک استملاک په ترتیب بشپړ کنټرول ترلاسه کړئ او ډاډ ترلاسه کړئ چې تاسو د هر څارل شوي کوربه ته د ویشلو اړتیا پرته د ترتیباتو / سکریپټونو یوه سیټ کاروئ.

د سیسټم ډیبګ کولو او تنظیم کولو لپاره د "ازموینې مضامین" په توګه، موږ د منلو مدیریت لپاره د WMS کاري پاڼه کاروو:

  1. په استقبال کې موټرې، ټول هغه چې رسیدلي دي: ټول وسایط چې د مودې لپاره وضعیت لري "- د اوسني وخت څخه 72 ساعته" - د SQL پوښتنې پیژندونکی: موټر ترلاسه کړئ.
  2. د وسایطو د ټولو حالتونو تاریخ: د ټولو وسایطو وضعیت چې په 72 ساعتونو کې راځي - د SQL پوښتنې پیژندونکی: د موټرو تاریخ.
  3. د منلو لپاره مهالویش شوي وسایط: د ټولو وسایطو حالتونه چې د "تقسیم شوي" حالت کې راځي، د وخت وقفه "- 24 ساعته" او "+24 ساعته" د اوسني وخت څخه - د SQL پوښتنې پیژندونکی: موټروان.

نو، وروسته له دې چې موږ د ګودام فعالیت میټریکونو په اړه پریکړه وکړه، موږ به د WMS ډیټابیس لپاره د SQL پوښتنې چمتو کړو. د پوښتنو پلي کولو لپاره ، دا مشوره ورکول کیږي چې اصلي ډیټابیس ونه کاروئ ، مګر د هغې "ګرم" کاپي - سټینډ بای.

موږ د معلوماتو ترلاسه کولو لپاره سټینډ بای اوریکل DBMS سره وصل شو. د ازموینې ډیټابیس سره د نښلولو لپاره IP پته 192.168.1.106. موږ د SQLcl کاري فولډر TNSNames.ORA کې د زببکس سرور کې د پیوستون پیرامیټونه خوندي کوو:

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

دا به موږ ته اجازه راکړي چې د EZconnect له لارې هر کوربه ته د SQL پوښتنې پرمخ بوځو، یوازې د ننوتلو / پاسورډ او ډیټابیس نوم مشخص کول:

# sql znew/Zabmon1@WH1_1

موږ چمتو شوي SQL پوښتنې د زیبکس سرور په کاري فولډر کې خوندي کوو:

/etc/zabbix/sql

او زموږ د سرور زبیبکس کارونکي ته د لاسرسي اجازه ورکړئ:

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

د غوښتنو سره فایلونه د زبیبکس سرور څخه د لاسرسي لپاره یو ځانګړی پیژندونکی نوم ترلاسه کوي. د SQLcl له لارې هر ډیټابیس پوښتنه موږ ته ډیری پیرامیټونه راګرځوي. د زیبکس ځانګړتیاو ته په پام سره، کوم چې کولی شي په هره غوښتنه کې یوازې یو میټریک پروسس کړي، موږ به اضافي سکریپټونه وکاروو ترڅو د پوښتنې پایلې په انفرادي میټریکونو کې تجزیه کړو.

راځئ چې اصلي سکریپټ چمتو کړو، راځئ چې دا 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

موږ بشپړ شوی فایل د سکریپټ سره په فولډر کې د بهرني سکریپټونو ذخیره کولو لپاره د زبیبکس - پراکسي ترتیب ترتیباتو سره سم ځای په ځای کوو (د ډیفالټ - /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

اوس موږ چمتو یو چې زیبکس تنظیم کړو او د ګودام منلو پروسو شاخصونو څارنه پیل کړو.

د زبکس ایجنټ په هر ډیټابیس نوډ کې نصب او ترتیب شوی.

په اصلي سرور کې موږ ټول سرورونه د زبیبکس پراکسي سره تعریف کوو. د ترتیباتو لپاره، لاندې لار ته لاړ شئ:

اداره → پراکسي → پراکسي جوړ کړئ

DIY: څنګه موږ د ګودام نظارت اتومات کوو

موږ کنټرول شوي کوربه تعریف کوو:

ترتیبات → کوربه → کوربه جوړ کړئ

DIY: څنګه موږ د ګودام نظارت اتومات کوو

کوربه نوم باید د کوربه نوم سره سمون ولري چې د اجنټ ترتیب کولو فایل کې مشخص شوی.

موږ د نوډ لپاره ګروپ مشخص کوو، په بیله بیا د ډیټابیس سره د نوډ IP پته یا DNS نوم.

موږ میټریک جوړوو او د دوی ملکیتونه مشخص کوو:

ترتیبات → نوډونه → د نوډ نوم → د معلوماتو توکي> د معلوماتو توکي جوړ کړئ

1) د ډیټابیس څخه د ټولو پیرامیټونو پوښتنې لپاره اصلي میټریک جوړ کړئ

DIY: څنګه موږ د ګودام نظارت اتومات کوو

موږ د ډیټا عنصر نوم ټاکو، د "بهرني تایید" ډول په ګوته کوو. په "کیلي" ساحه کې، موږ یو سکریپټ تعریف کوو چې موږ یې د پیرامیټونو په توګه د اوریکل ډیټابیس نوم، د sql پوښتنې نوم، د ډیټابیس سره د نښلولو لپاره ننوت او پټنوم انتقالوو. د پوښتنې تازه کولو وقفه 5 دقیقو (300 ثانیو) ته وټاکئ.

2) د هر موټر حالت لپاره پاتې میټریکونه جوړ کړئ. د دې میټریکونو ارزښتونه به د اصلي میټریک چک کولو پایلې پراساس رامینځته شي.

DIY: څنګه موږ د ګودام نظارت اتومات کوو

موږ د ډیټا عنصر نوم ټاکو، د "بهرني تایید" ډول په ګوته کوو. په "کیلي" ساحه کې، موږ یو سکریپټ تعریف کوو چې موږ یې د پیرامیټونو په توګه د اوریکل ډیټابیس نوم او د حالت کوډ چې ارزښت یې موږ غواړو تعقیب کړو. موږ د پوښتنې تازه کولو وقفه د اصلي میټریک (10 ثانیو) څخه 310 ثانیو ته اوږده کړه ترڅو پایلې فایل ته د لیکلو وخت ولري.

د میټریکونو په سمه توګه ترلاسه کولو لپاره، هغه ترتیب چې چکونه فعال شوي مهم دي. د معلوماتو ترلاسه کولو پرمهال د شخړو مخنیوي لپاره ، لومړی موږ د سکریپټ - wh_Metrics.sh په زنګ وهلو سره اصلي میټریک GetCarsByStatus فعالوو.

ترتیبات → نوډز → 'نوډ نوم' → ډیټا عناصر → فرعي فلټر "بهرني چکونه". اړین چک په نښه کړئ او "فعال کړئ" کلیک وکړئ.

DIY: څنګه موږ د ګودام نظارت اتومات کوو

بیا، موږ پاتې میټریکونه په یوه عملیات کې فعالوو، دوی ټول یوځای غوره کوو:

DIY: څنګه موږ د ګودام نظارت اتومات کوو

اوس زیبکس د ګودام سوداګرۍ میټریکونو راټولول پیل کړي.

په لاندې مقالو کې ، موږ به د ګرافانا سره وصل کولو او د کاروونکو مختلف کټګوریو لپاره د ګودام عملیاتو معلوماتو ډشبورډونو رامینځته کولو ته نږدې کتنه وکړو. ګرافانا د ګودام په عملیاتو کې د انحرافاتو څارلو لپاره هم کارول کیږي او د انحرافاتو حدود او فریکونسۍ پورې اړه لري ، د API له لارې د ګودام مدیریت خدماتو مرکز سیسټم کې پیښې ثبت کړئ یا په ساده ډول د بریښنالیک له لارې مدیر ته خبرتیاوې واستوئ.

DIY: څنګه موږ د ګودام نظارت اتومات کوو

سرچینه: www.habr.com

Add a comment