Үндсэн агуулга руу алгасах

Cookie

Сайтаа сайжруулж, танд тохирох хямдрал, санал харуулахад тусална. Дэлгэрэнгүй

BD Systems AsiaАлбан ёсны түншBitdefender Country Partner (шинэ цонхонд)

Pipelines (дамжуулах шугам) — 2-р хэсэг: Managing pipelines

Bitdefender-ийн албан ёсны баримтаас орчуулавАнгли эх (EN) · Орчуулсан: 2026.11.10

Энэ хуудсыг AI-аар орчуулж, автоматаар шалгасан. Нарийн тохиргоо хийхээсээ өмнө англи эхтэй тулгаж болно.

← Үндсэн хуудас

Pipelines-ийг удирдах

Дүрмүүдээ үүсгэсний дараа тэдгээрийг pipeline болгон нэгтгэж, мессежийг боловсруулж, баяжуулж болно. System (Систем) > Pipelines > Manage Pipelines хэсэгт очиж pipeline үүсгэх, засах, устгана.

Pipeline бүр нэг буюу хэд хэдэн stage (шат)-аас бүрдэх бөгөөд эдгээр нь гүйцэтгэх дараалал, логикийг тодорхойлно.

Pipeline үүсгэх

Шинэ pipeline үүсгэхийн тулд дараах алхмыг гүйцэтгэнэ.

  1. System > Pipelines > Manage Pipelines хэсэгт очно.
  1. Дэлгэцийн баруун дээд талд байгаа Add new pipeline товчийг дарна.
  1. Pipeline-д тохирох нэр, тайлбар оруулна. (Эх баримтад энэ алхмын төгсгөлд дарах товчийн нэр тодорхойгүй «???» гэж бичигдсэн тул шалгах.)
  1. Pipeline connections хэсгийн Edit connections-ийг сонгоно.

Edit connections цонх нээгдэнэ.

  1. Streams талбараас холбохыг хүссэн stream-үүдээ сонгоно.

> Тэмдэглэл: Pipeline нь зөвхөн өөрт холбогдсон stream доторх мессежүүд дээр ажиллана. Нэг stream-ийг хэд хэдэн pipeline боловсруулж болох бөгөөд тэдгээрийн дүрмүүд stage-ийн тэргүүлэх зэрэглэлийн дагуу ажиллана.

> Зөвлөмж: All messages stream нь орж ирж буй бүх өгөгдлийн үндсэн орох цэг бөгөөд чиглүүлэлт, шүүлт, талбар баяжуулалт зэрэг ерөнхий pipeline-уудад тохиромжтой.

Сонгосон stream-үүд цэсийн доорх жагсаалтад нэмэгдэнэ. Жагсаалтаас хасахыг хүсвэл Remove-г сонгоно.

  1. Add a new stage-ийг сонгоод stage-ээ тохируулна.

1. Stage талбарт stage-ийн тэргүүлэх зэрэглэлийг оруулна. Энэ нь pipeline-ийг дарааллын аль цэгт хэрэглэхийг тодорхойлно. Тоо нь дурын бүхэл тоо байж болох бөгөөд бага тоотой stage эхэлж ажиллана.

2. Дараагийн stage-үүд дээр дүрмүүдийг хэрхэн үргэлжлүүлэн боловсруулахыг сонгоно.

- All rules in this stage match the message — бүх нөхцөл биелсэн тохиолдолд л дараагийн stage руу үргэлжилнэ.
- At least one of the rules in this stage matches the message — дор хаяж нэг нөхцөл биелсэн бол дараагийн stage руу үргэлжилнэ.
- None or more rules on this stage match — ямар ч нөхцөл биелээгүй тохиолдолд л дараагийн stage руу үргэлжилнэ.

3. Stage rules хэсгээс хэрэглэх дүрмүүдээ сонгоно.

4. Мэдээллээ хадгалахын тулд Add stage-ийг сонгоно.

  1. Шаардлагатай бол нэмэлт stage-үүдийг нэмнэ.

> Тэмдэглэл: Таны үүсгэсэн stage бүр Pipeline цэсийн доор шинэ хэсэг болон нэмэгдэнэ. Stage-ийн мэдээллийг өөрчлөх бол Edit, устгах бол Delete-г сонгоно.

Бүх stage нэмэгдсэний дараа pipeline бэлэн болж, Pipelines хуудсанд харагдана. Stream-д холбогдмогц таны тодорхойлсон дүрэм, логикийн дагуу орж ирж буй мессежүүдийг автоматаар боловсруулж эхэлнэ.

Stream турших ба pipeline-ийг симуляци хийх

Одоогийн pipeline-ийн тохиргоогоор мессеж хэрхэн боловсруулагдахыг урьдчилан харахын тулд Pipeline Simulator-ийг ашиглана. Stream-ийг турших алхам:

  1. System > Pipelines > Simulator хэсэгт очно.
  2. Stream хэсэгт турших stream-ээ сонгоно.
  3. Raw message хэсэгт орж ирэх лог-той ижил хэлбэртэй түүхий жишээ мессеж (жишээ нь GELF мессеж) оруулна.
  4. (Заавал биш) эх IP хаяг, input-ийн төрөл, codec (лог мессежийг задлан унших механизм)-ийг зааж өгч болно.

Гүйцэтгэсний дараа simulator дараах мэдээллийг харуулна.

  • Changes Summary – өөрчлөгдсөн, нэмэгдсэн, хасагдсан талбаруудын жагсаалт.
  • Results Preview – бүрэн боловсруулагдсан мессеж.
  • Simulation Trace – аль дүрэм, pipeline ажилласан, тус бүр нь хэр хугацаа зарцуулсан тухай дэлгэрэнгүй.

Pipeline болон stage-үүдийг засах

Бүх pipeline System > Pipelines > Manage Pipelines хуудсанд харагдана. Pipeline бүрийн хувьд устгахдаа Delete, тохиргоог нь өөрчлөхдөө Edit-ийг сонгоно.

Хэрэглээний жишээнүүд

Энэ хэсэгт Security Data Lake дахь pipeline дүрмийг үүсгэж хэрэглэх практик жишээг толилуулна. Тэдгээр нь шаардлагагүй лог шүүх, мессежийн өгөгдлийг баяжуулах, мессежийг тодорхой stream эсвэл сэрэмжлүүлгийн системд чиглүүлэх аргыг харуулна. Эдгээр жишээг лог өгөгдлөө боловсруулах, шинжлэх үйлдлийг үр дүнтэй болгох pipeline дүрмээ зохиох, хэрэгжүүлэхдээ лавлах болгон ашиглаарай.

  • Anonymization (нэрийг нуух) — Pipeline дүрэм нь мессежийг хадгалах, дамжуулахаас өмнө эмзэг өгөгдлийг далдлах эсвэл устгаж чадна. Ингэснээр IP хаяг, хэрэглэгчийн нэр, хувийн мэдээлэл зэргийг далдлан нууцлалын стандартыг хангана.

- Нөхцөл (When): source_ip талбар байгаа эсэхийг шалгана.
- Үйлдэл (Then): Эмзэг өгөгдлийг арилгахын тулд мессежээс source_ip талбарыг устгана.
- Дүрмийн синтакс: rule "Mask sensitive information" when has_field("source_ip") then remove_single_field("source_ip"); end

  • Breadcrumb (мөр хөөх тэмдэг) — Breadcrumb дүрэм нь мессежийн урсгалыг системүүд эсвэл stage-үүдийн хооронд мөрдөж болохоор мессежид метадата нэмнэ. Эдгээрийг ихэвчлэн алдаа засах, шошголох, мессежийн боловсруулалтыг мөрдөхөд хэрэглэнэ.

- Нөхцөл (When): Хоосон орхино. Ингэснээр дүрэм орж ирж буй мессеж бүр дээр хэрэгжинэ.
- Үйлдэл (Then): demo талбарыг тогтмол утгатайгаар нэмнэ эсвэл шинэчилнэ.
- Дүрмийн синтакс: rule "Set demo field" when true then set_field("rule_demo", "test"); end

  • Filter (шүүлт) — Filter дүрэм нь шаардлагагүй мессежийг хаяж, өгөгдөл хүлээн авах хэмжээ болон лицензийн хэрэглээг бууруулахад тусална.

- Нөхцөл (When): testing талбар байгаа эсэхийг шалгана.
- Үйлдэл (Then): Мессежийг хадгалах, цаашид боловсруулахаас сэргийлж бүр мөсөн хаяна.
- Дүрмийн синтакс: rule "Drop Test Messages" when has_field("testing") then drop_message(); end

  • Modification (өөрчлөлт) — Modification дүрэм нь мессежийн агуулгыг өөрчилнө, жишээ нь цагийн тэмдгийн форматыг өөрчлөх, талбарын утгыг шинэчлэх.

- Нөхцөл (When): Мессежид event_time талбар байгаа эсэхийг шалгана.
- Үйлдэл (Then): Цагийн тэмдгийг UTC-ээс Их Британийн цаг руу хөрвүүлж event_time_uk нэртэй шинэ талбарт бичнэ.
- Дүрмийн синтакс: rule "convert event_time to UK timezone" when has_field("event_time") then let event_time_date = parse_date( value: to_string($message.event_time), pattern: "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", // Adjust this pattern as needed timezone: "UTC" ); let event_time_uk = format_date( value: event_time_date, date_format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ", timezone: "Europe/London" ); set_field("event_time_uk", event_time_uk ); end

  • Enrichment (баяжуулалт) — Enrichment дүрэм нь мессежид нэмэлт мэдээлэл оруулж эсвэл байгаа өгөгдлийн утгыг шинэчилж баяжуулна.

- Нөхцөл (When): Src_ip_geo_country талбар байгаа бөгөөд US-тэй тэнцүү эсэхийг шалгана.
- Үйлдэл (Then): Талбарын утгыг UniSt болгож шинэчилнэ.
- Дүрмийн синтакс: rule "SrcCountryUnitedStates" when has_field("Src_ip_geo_country") && to_string($message.Src_ip_geo_country) == "US" then set_field( field: "Src_ip_geo_country", value: "UniSt", clean_field: false ); end

  • Routing (чиглүүлэлт) — Routing дүрэм нь тодорхой мессежүүдийг өөр stream рүү илгээж, хүсвэл одоогийн stream-ээс хасна.

- Зөвлөмж: Дүрэмдээ заахаасаа өмнө очих stream-ээ урьдчилан үүсгэсэн байх хэрэгтэй.
- Нөхцөл (When): gl2_remote_ip талбар байгаа бөгөөд тодорхой тэмдэгт мөртэй таарч байгаа эсэхийг шалгана.
- Үйлдэл (Then): Мессежийг очих stream (My First Stream) руу чиглүүлж, үндсэн (default) stream-ээс хасна.
- Дүрмийн синтакс: rule "Route Message to Stream" when has_field("gl2_remote_ip") && to_string($message.gl2_remote_ip) == "66914166ac1d1568bad817f3" then route_to_stream( name: "My First Stream", remove_from_default: true ); end

Pipeline функцүүд

Функц бол pipeline дүрмийн бүрдүүлэгч хэсэг юм. Функц бүр нь лог мессеж Security Data Lake-ийн боловсруулах pipeline-аар дамжих явцад тодорхой үйлдлийг гүйцэтгэдэг урьдчилан тодорхойлсон арга юм.

Функц нэг буюу хэд хэдэн параметр авч, мессежийг хэрхэн хувиргах, баяжуулах, чиглүүлэхийг тодорхойлох утга буцаадаг. Нөхцөл болон үйлдэлд функцүүдийг хослуулснаар байгууллагынхаа хэрэгцээнд тохирсон мессеж боловсруулах хүчирхэг логикийг тодорхойлж болно.

Security Data Lake-ийн дэмждэг бүх функц, тэдгээрийн тайлбар, жишээ синтаксийг Functions Reference-ээс үзнэ үү.

Синтакс

Security Data Lake дахь pipeline функцүүд Java хэл дээр хэрэгжсэн бөгөөд залгаж өргөтгөх боломжтой байхаар зохиогдсон тул платформын боловсруулах чадварыг хялбар өргөтгөнө.

Ерөнхийдөө функц нь параметр (жишээ нь одоогийн мессежийн контекст) хүлээн аваад утга буцаана. Параметр болон буцаах өгөгдлийн төрлүүд нь функцийг дүрмийн аль хэсэгт хэрэглэж болохыг тодорхойлно. Security Data Lake эдгээр төрлийг автоматаар шалгаж, бүх дүрэм логик болон синтаксийн хувьд зөв эсэхийг баталгаажуулна.

Функцийн параметрийг нэр=утга хэлбэрээр эсвэл байрлалаар нь дамжуулж болно. Гэхдээ заавал биш параметрүүдийг хамгийн сүүлд зарлаж, боловсруулсан байх ёстой.

rule "function howto"
when
    has_field("transaction_date")
then
    // The following date format assumes there's no time zone in the string
    let new_date = parse_date(to_string($message.transaction_date), "yyyy-MM-dd HH:mm:ss");
    set_field("transaction_year", new_date.year);
end

Энэ жишээнд дүрэм нь одоогийн мессежид transaction_date талбар байгаа эсэхийг шалгана. Байвал утгыг тэмдэгт мөр болгон хөрвүүлж, yyyy-MM-dd HH:mm:ss огнооны форматаар задлан уншина. Жишээ нь 2016-03-05 14:45:02 гэсэн мөр заасан форматтай таарна.

parse_date() функц нь Java-ийн Joda-Time сангийн DateTime объект буцаадаг тул огнооны бүрдэл хэсгийг, жишээ нь жилийг хялбар гаргаж авна. Энд жилийг transaction_year нэртэй шинэ талбар болгон нэмж байна.

Цагийн бүс заагаагүй бол Security Data Lake өгөгдмөлөөр UTC цагийн бүсийг ашиглана. Ингэснээр таны серверийн орон нутгийн цагийн бүсээс үл хамааран ижил үр дүн гарна.

parse_date() функц дотроо дөрвөн параметр авдаг.

  • value – задлан унших огнооны тэмдэгт мөр.
  • pattern – огнооны форматын загвар.
  • timezone (заавал биш) – хэрэглэх цагийн бүс (өгөгдмөл: UTC).
  • locale (заавал биш) – хэрэглэх хэлний тохиргоо (өгөгдмөл: системийн locale).

Одоо гүйлгээний цагийн бүсийг заасан transaction_timezone талбарыг нэмж жишээгээ өргөтгөе.

rule "function howto"
when
        has_field("transaction_date") && has_field("transaction_timezone")
then
        // The following date format assumes there's no time zone in the string
        let new_date = parse_date(
          to_string($message.transaction_date),
          "yyyy-MM-dd HH:mm:ss",
          to_string($message.transaction_timezone)
    );
        set_field("transaction_year", new_date.year);
end

Энэ жишээнд дүрэм мессежийн transaction_timezone талбарын утгыг авч, timezone параметр болгон parse_date() функцэд дамжуулна. Ингэснээр огноо нь гүйлгээний орон нутгийн зөв цагийн бүсээр задлагдана.

Функц олон заавал биш параметртэй үед, эсвэл уншигдахуйц байдал чухал үед нэрлэсэн параметр ашиглаж болно. Ингэснээр аргументуудыг дурын дарааллаар дамжуулахын зэрэгцээ ойлгомжтой байдлыг хадгална.

rule "function howto"
when
        has_field("transaction_date") && has_field("transaction_timezone")
then
        // The following date format assumes there's no time zone in the string
        let new_date = parse_date(
        value: to_string($message.transaction_date),
        pattern: "yyyy-MM-dd HH:mm:ss",
        timezone: to_string($message.transaction_timezone)
    );
        set_field("transaction_year", new_date.year);
end

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

Java өгөгдлийн төрлүүд

Pipeline дүрэм нь асуулга бичих, тооцоолол хийхдээ Java-ийн зарим өгөгдлийн төрлийг ашиглаж болно. Энэ нь зөвхөн GET функцээр асуугддаг төрлүүдэд хамаарна.

Жишээ нь DateTime болон Period объектын .millis шинж чанарыг ашиглан цагийн утгыг миллисекундээр авч болно.

Ингэснээр мессеж одоогийн цагаас хэр хуучирсныг хэмжих зэрэг цагт суурилсан нарийн тооцоолол хийх боломжтой.

rule "time diff calculator millis"
when
    true
then
    let time_diff =
        to_long(
            parse_date(
                value: to_string(now(timezone: "Europe/Berlin")),
                pattern: "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
                locale: "de_DE"
            ).millis
        )
        -
        to_long(
            parse_date(
                value: to_string($message.timestamp),
                pattern: "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
                locale: "de_DE"
            ).millis
        );

    set_field("scan_age_millis", time_diff);
end

Энэ жишээнд дүрэм одоогийн цаг («Europe/Berlin» цагийн бүсээр) болон мессежийн цагийн тэмдгийн зөрүүг тооцож, хоёр утгыг миллисекунд болгон хөрвүүлж байна.

Гарсан утга (scan_age_millis) нь үйл явдал миллисекундээр хэр хуучирсныг илэрхийлэх бөгөөд мессежийн шинэ талбар болж хадгалагдана.

Анхааруулга: Security Data Lake нь албан ёсоор баримтжуулаагүй ямар ч функцийг ашиглахыг дэмждэггүй. Дэмжигддэггүй функц, өгөгдлийн төрлийг туршихдаа болгоомжтой хандана уу.

Функцийн төрлүүд

Security Data Lake-ийн суурилуулсан функцүүдийг дараах төрлөөр ангилна. Бүх функц, тэдгээрийн тайлбарыг Functions Reference-ээс үзнэ үү.

Anonymization

Anonymization функцүүд нь өгөгдлийн багц эсвэл лог мессежийн эмзэг өгөгдлийг далдалдаг.

Asset Enrichment

Asset Enrichment функцүүд нь актив (asset)-тай холбоотой лог өгөгдлийг баяжуулах, авах, эсвэл устгахад ашиглагдана. Security Data Lake-ийн энэ аюулгүй байдлын боломжийн талаар дэлгэрэнгүйг Asset Enrichment-ээс үзнэ үү.

Асуулт байна уу?AI туслах GravityZone-ийн монгол баримтаас хайна. Нарийн асуудлыг таны гэрээт борлуулагч, Bitdefender Mongolia-ийн инженер шийднэ.