Edge को कॉन्फ़िगर करने का तरीका

इंस्टॉल करने के बाद Edge को कॉन्फ़िगर करने के लिए, .properties फ़ाइलों और Edge यूटिलिटी का इस्तेमाल किया जाता है. उदाहरण के लिए, New Edge यूज़र इंटरफ़ेस (यूआई) पर टीएलएस/एसएसएल को कॉन्फ़िगर करने के लिए, ज़रूरी प्रॉपर्टी सेट करने के लिए .properties फ़ाइलों में बदलाव किया जाता है. .properties फ़ाइलों में किए गए बदलावों को लागू करने के लिए, आपको Edge के उस कॉम्पोनेंट को रीस्टार्ट करना होगा जिसमें बदलाव किए गए हैं.

Apigee, .properties फ़ाइलों में बदलाव करने की तकनीक को कॉन्फ़िगरेशन के साथ कोड (कभी-कभी इसे CwC भी कहा जाता है) के तौर पर दिखाता है. कॉन्फ़िगरेशन वाला कोड, मुख्य रूप से .properties फ़ाइलों में मौजूद सेटिंग के आधार पर, की/वैल्यू लुकअप टूल होता है. कॉन्फ़िगरेशन वाले कोड में, कुंजियों को टोकन कहा जाता है. इसलिए, Edge को कॉन्फ़िगर करने के लिए, .properties फ़ाइलों में टोकन सेट किए जाते हैं.

कॉन्फ़िगरेशन वाले कोड की मदद से, Edge कॉम्पोनेंट डिफ़ॉल्ट वैल्यू सेट कर सकते हैं. ये वैल्यू, प्रॉडक्ट के साथ शिप की जाती हैं. साथ ही, इंस्टॉलेशन टीम को इंस्टॉलेशन टोपोलॉजी के आधार पर उन सेटिंग को बदलने की अनुमति मिलती है. इसके बाद, ग्राहक अपनी पसंद के मुताबिक किसी भी प्रॉपर्टी को बदल सकते हैं.

अगर इसे हैरारकी के तौर पर देखा जाए, तो सेटिंग को इस तरह से व्यवस्थित किया जाता है. इसमें ग्राहक की सेटिंग को सबसे ज़्यादा प्राथमिकता दी जाती है, ताकि इंस्टॉलर टीम या Apigee की किसी भी सेटिंग को बदला जा सके:

  1. ग्राहक
  2. इंस्टॉलर
  3. कॉम्पोनेंट

किसी टोकन की मौजूदा वैल्यू का पता लगाना

.properties फ़ाइल में किसी टोकन के लिए नई वैल्यू सेट करने से पहले, आपको इस निर्देश का इस्तेमाल करके उसकी मौजूदा वैल्यू का पता लगाना चाहिए:

/opt/apigee/apigee-service/bin/apigee-service component_name configure -search token

जहां component_name कॉम्पोनेंट का नाम है और token वह टोकन है जिसकी जांच करनी है.

यह कमांड, कॉम्पोनेंट की .properties फ़ाइलों की हैरारकी में खोज करता है, ताकि टोकन की मौजूदा वैल्यू का पता लगाया जा सके.

नीचे दिए गए उदाहरण में, राऊटर के लिए conf_http_HTTPRequest.line.limit टोकन की मौजूदा वैल्यू की जांच की गई है:

/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

आपको ऐसा आउटपुट दिखेगा:

Found key conf_http_HTTPRequest.line.limit, with value, 4k, in /opt/apigee/edge-router/token/default.properties

अगर टोकन की वैल्यू # से शुरू होती है, तो इसका मतलब है कि उसे टिप्पणी के तौर पर मार्क किया गया है. इसे बदलने के लिए, आपको खास सिंटैक्स का इस्तेमाल करना होगा. ज़्यादा जानकारी के लिए, टिप्पणी के तौर पर मार्क किए गए टोकन को सेट करना देखें.

अगर आपको टोकन का पूरा नाम नहीं पता है, तो प्रॉपर्टी के नाम या कीवर्ड के हिसाब से खोजने के लिए, grep जैसे टूल का इस्तेमाल करें. ज़्यादा जानकारी के लिए, टोकन ढूंढना लेख पढ़ें.

प्रॉपर्टी फ़ाइलें

कॉन्फ़िगरेशन फ़ाइलों के कॉम्पोनेंट में बदलाव किया जा सकता है और नहीं भी. इस सेक्शन में, इन फ़ाइलों के बारे में बताया गया है.

कॉम्पोनेंट की ऐसी कॉन्फ़िगरेशन फ़ाइलें जिनमें बदलाव किया जा सकता है

यहां दी गई टेबल में, Apigee के कॉम्पोनेंट और प्रॉपर्टी फ़ाइलों की सूची दी गई है. इन कॉम्पोनेंट को कॉन्फ़िगर करने के लिए, प्रॉपर्टी फ़ाइलों में बदलाव किया जा सकता है:

कॉम्पोनेंट कॉम्पोनेंट का नाम कॉन्फ़िगरेशन फ़ाइल में बदलाव करना
कैसंड्रा apigee-cassandra /opt/apigee/customer/application/cassandra.properties
मैनेजमेंट सर्वर edge-management-server /opt/apigee/customer/application/management-server.properties
मैसेज प्रोसेसर edge-message-processor /opt/apigee/customer/application/message-processor.properties
apigee-monit apigee-monit /opt/apigee/customer/application/monit.properties
Edge का नया यूज़र इंटरफ़ेस (यूआई) edge-management-ui /opt/apigee/customer/application/management-ui.properties
OpenLDAP apigee-openldap /opt/apigee/customer/application/openldap.properties
Postgres सर्वर edge-postgres-server /opt/apigee/customer/application/postgres-server.properties
PostgreSQL डेटाबेस apigee-postgresql /opt/apigee/customer/application/postgresql.properties
Qpid Server edge-qpid-server /opt/apigee/customer/application/qpid-server.properties
Qpidd apigee-qpidd /opt/apigee/customer/application/qpidd.properties
राऊटर edge-router /opt/apigee/customer/application/router.properties
ज़ूकीपर apigee-zookeeper /opt/apigee/customer/application/zookeeper.properties

अगर आपको इनमें से किसी कॉम्पोनेंट की कॉन्फ़िगरेशन फ़ाइल में कोई प्रॉपर्टी सेट करनी है, लेकिन वह मौजूद नहीं है, तो उसे ऊपर दी गई जगह पर बनाया जा सकता है.

इसके अलावा, आपको यह पक्का करना होगा कि प्रॉपर्टी फ़ाइल का मालिकाना हक "apigee" उपयोगकर्ता के पास हो:

chown apigee:apigee /opt/apigee/customer/application/configuration_file.properties

कॉम्पोनेंट की ऐसी कॉन्फ़िगरेशन फ़ाइलें जिनमें बदलाव नहीं किया जा सकता

कॉन्फ़िगरेशन की ऐसी फ़ाइलें भी होती हैं जिनमें बदलाव नहीं किया जा सकता.

जानकारी देने वाली (जिनमें बदलाव नहीं किया जा सकता) फ़ाइलों में ये शामिल हैं:

मालिक फ़ाइल का नाम या डायरेक्ट्री
इंस्टॉल करना
/opt/apigee/token
कॉम्पोनेंट
/opt/apigee/component_name/conf

यहां component_name कॉम्पोनेंट की पहचान करता है. इन वैल्यू का इस्तेमाल किया जा सकता है:

  • apigee-cassandra (कैसेंड्रा)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (PostgreSQL डेटाबेस)
  • apigee-qpidd (Qpidd)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (मैनेजमेंट सर्वर)
  • edge-management-ui (New Edge UI)
  • edge-message-processor (मैसेज प्रोसेसर)
  • edge-postgres-server (Postgres Server)
  • edge-qpid-server (Qpid Server)
  • edge-router (Edge Router)

टोकन की वैल्यू सेट करना

सिर्फ़ /opt/apigee/customer/application डायरेक्ट्री में मौजूद .properties फ़ाइलों में बदलाव किया जा सकता है. हर कॉम्पोनेंट की अपनी .properties फ़ाइल होती है. उदाहरण के लिए, router.properties और management-server.properties. प्रॉपर्टी फ़ाइलों की पूरी सूची के लिए, .properties फ़ाइलों की जगह देखें.

.properties फ़ाइल बनाने के लिए:

  1. किसी एडिटर में नई टेक्स्ट फ़ाइल बनाएं. फ़ाइल का नाम, ग्राहक की फ़ाइलों के लिए ऊपर दी गई टेबल में दिखाई गई सूची से मेल खाना चाहिए.
  2. फ़ाइल के मालिक को "apigee:apigee" में बदलें, जैसा कि इस उदाहरण में दिखाया गया है:
    chown apigee:apigee /opt/apigee/customer/application/router.properties

    अगर आपने Edge सेवा को चलाने वाले उपयोगकर्ता को "apigee" उपयोगकर्ता से बदल दिया है, तो Edge सेवा को चलाने वाले उपयोगकर्ता को मालिकाना हक देने के लिए, chown का इस्तेमाल करें.

Edge को अपग्रेड करने पर, /opt/apigee/customer/application डायरेक्ट्री में मौजूद .properties फ़ाइलें पढ़ी जाती हैं. इसका मतलब है कि अपग्रेड करने पर, कॉम्पोनेंट पर सेट की गई सभी प्रॉपर्टी बनी रहेंगी.

किसी टोकन की वैल्यू सेट करने के लिए:

  1. कॉम्पोनेंट की .properties फ़ाइल में बदलाव करें.
  2. टोकन की वैल्यू जोड़ें या बदलें. यहां दिए गए उदाहरण में, conf_http_HTTPRequest.line.limit प्रॉपर्टी की वैल्यू को "10k" पर सेट किया गया है:
    conf_http_HTTPRequest.line.limit=10k

    अगर टोकन की वैल्यू एक से ज़्यादा हैं, तो हर वैल्यू को कॉमा लगाकर अलग करें. उदाहरण के लिए:

    conf_security_rbac.restricted.resources=/environments,/environments/*,/environments/*/virtualhosts,/environments/*/virtualhosts/*,/pods,/environments/*/servers,/rebuildindex,/users/*/status,/myuri/*

    इस तरह की सूची में नई वैल्यू जोड़ने के लिए, आम तौर पर नई वैल्यू को सूची के आखिर में जोड़ा जाता है.

  3. कॉम्पोनेंट को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service component_name restart

    जहां component_name इनमें से कोई एक है:

    • apigee-cassandra (कैसेंड्रा)
    • apigee-openldap (OpenLDAP)
    • apigee-postgresql (PostgreSQL डेटाबेस)
    • apigee-qpidd (Qpidd)
    • apigee-zookeeper (ZooKeeper)
    • edge-management-server (मैनेजमेंट सर्वर)
    • edge-management-ui (New Edge UI)
    • edge-message-processor (मैसेज प्रोसेसर)
    • edge-postgres-server (Postgres Server)
    • edge-qpid-server (Qpid Server)
    • edge-router (Edge Router)

    उदाहरण के लिए, router.properties में बदलाव करने के बाद, राऊटर को रीस्टार्ट करें:

    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. (ज़रूरी नहीं) configure -search विकल्प का इस्तेमाल करके, देखें कि टोकन की वैल्यू आपकी नई वैल्यू पर सेट है या नहीं. उदाहरण के लिए:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

    configure -search के बारे में ज़्यादा जानकारी के लिए, टोकन की मौजूदा वैल्यू तय करना लेख पढ़ें.

किसी टोकन का पता लगाना

ज़्यादातर मामलों में, इस गाइड में उन टोकन की पहचान की जाती है जिन्हें आपको सेट करना है. हालांकि, अगर आपको किसी ऐसे मौजूदा टोकन की वैल्यू को बदलना है जिसके पूरे नाम या जगह की जानकारी आपको नहीं है, तो कॉम्पोनेंट की source डायरेक्ट्री खोजने के लिए grep का इस्तेमाल करें.

उदाहरण के लिए, अगर आपको HTTPRequest.line.limit प्रॉपर्टी सेट करनी है और आपको इसे सेट करने के लिए इस्तेमाल की जाने वाली टोकन वैल्यू जाननी है, तो /opt/apigee/edge-management-server/source डायरेक्ट्री में प्रॉपर्टी के लिए grep:

grep -ri "HTTPRequest.line.limit" /opt/apigee/edge-management-server/source

आपको इस तरह का नतीजा दिखेगा:

/opt/apigee/component_name/source/conf/http.properties:property_name={T}token_name{/T}

यहां दिए गए उदाहरण में, मैनेजमेंट सर्वर के HTTPRequest.line.limit टोकन की वैल्यू दिखाई गई है:

/opt/apigee/edge-management-server/source/conf/http.properties:HTTPRequest.line.limit={T}conf_http_HTTPRequest.line.limit{/T}

{T}{/T} टैग के बीच मौजूद स्ट्रिंग, टोकन का नाम है. इसे कॉम्पोनेंट की .properties फ़ाइल में सेट किया जा सकता है.

ऐसा टोकन सेट करना जिसे फ़िलहाल टिप्पणी के तौर पर मार्क किया गया है

Edge कॉन्फ़िगरेशन फ़ाइलों में कुछ टोकन पर टिप्पणी की गई है. अगर आपने किसी इंस्टॉल या कॉम्पोनेंट कॉन्फ़िगरेशन फ़ाइल में, टिप्पणी के तौर पर मार्क किए गए टोकन को सेट करने की कोशिश की, तो आपकी सेटिंग को अनदेखा कर दिया जाएगा.

Edge कॉन्फ़िगरेशन फ़ाइल में जिस टोकन पर टिप्पणी की गई है उसकी वैल्यू सेट करने के लिए, इस फ़ॉर्म में खास सिंटैक्स का इस्तेमाल करें:

conf/filename+propertyName=propertyValue

उदाहरण के लिए, मैसेज प्रोसेसर पर HTTPClient.proxy.host नाम की प्रॉपर्टी सेट करने के लिए, पहले प्रॉपर्टी के लिए grep करें, ताकि उसका टोकन तय किया जा सके:

grep -ri /opt/apigee/edge-message-processor/ -e "HTTPClient.proxy.host"

grep कमांड से ऐसे नतीजे मिलते हैं जिनमें टोकन का नाम शामिल होता है. ध्यान दें कि प्रॉपर्टी के नाम को कैसे टिप्पणी के तौर पर दिखाया गया है. इसे # प्रीफ़िक्स से दिखाया गया है:

source/conf/http.properties:#HTTPClient.proxy.host={T}conf_http_HTTPClient.proxy.host{/T}
token/default.properties:conf_http_HTTPClient.proxy.host=
conf/http.properties:#HTTPClient.proxy.host=

इस प्रॉपर्टी की वैल्यू सेट करने के लिए, /opt/apigee/customer/application/message-processor.properties में बदलाव करें. हालांकि, इसके लिए खास सिंटैक्स का इस्तेमाल करें. उदाहरण के लिए:

conf/http.properties+HTTPClient.proxy.host=myhost.name.com

ऐसे में, आपको प्रॉपर्टी के नाम से पहले conf/http.properties+ जोड़ना होगा. यह "+" के बाद, प्रॉपर्टी वाली कॉन्फ़िगरेशन फ़ाइल की जगह और नाम है.

मैसेज प्रोसेसर को रीस्टार्ट करने के बाद, फ़ाइल /opt/apigee/edge-message-processor/conf/http.properties की जांच करें:

cat /opt/apigee/edge-message-processor/conf/http.properties

फ़ाइल के आखिर में, आपको प्रॉपर्टी सेट इस फ़ॉर्म में दिखेगा:

conf/http.properties:HTTPClient.proxy.host=myhost.name.com

New Edge UI में HTTP/2 प्रोटोकॉल को चालू या बंद करना

इस सेक्शन में, Edge के नए यूज़र इंटरफ़ेस (edge-management-ui) में एचटीटीपी/2 प्रोटोकॉल को चालू या बंद करने का तरीका बताया गया है.

  1. /opt/apigee/customer/application/management-ui.properties बनाएं या उसमें बदलाव करें. साथ ही, पक्का करें कि फ़ाइल का मालिकाना हक apigee:apigee के पास हो.
  2. एचटीटीपी/2 प्रोटोकॉल को चालू या बंद करने के लिए, यह ओवरराइड जोड़ें:
    conf_uebe_disable_http2={true or false}
  3. New Edge के यूज़र इंटरफ़ेस (edge-management-ui) को सेव करें और रीस्टार्ट करें.

Apigee Router/Nginx में कस्टम लॉग फ़ॉर्मैट जोड़ना

कुछ मामलों में, आपको डिफ़ॉल्ट Apigee राऊटर/Nginx लॉग फ़ॉर्मैट को बदलना पड़ सकता है या वैरिएबल जोड़ने पड़ सकते हैं. Apigee राऊटर/Nginx लॉग फ़ॉर्मैट के डिफ़ॉल्ट कॉन्फ़िगरेशन को अपडेट करने के लिए:

  1. अगर router.properties फ़ाइल मौजूद नहीं है, तो यहां दिए गए पाथ का इस्तेमाल करके उसे बनाएं:
    /opt/apigee/customer/application/router.properties
  2. router_new नाम का नया log_format कॉन्फ़िगरेशन बनाने के लिए, router.properties फ़ाइल में यह कॉन्टेंट जोड़ें: :
    conf_load_balancing_load.balancing.driver.nginx.global.http.parameters.template.extra=log_format router_new 'time_iso8601\\\\thostname\\\\tremote_addr:remote_port\\\\t'\\\\n\\n 'upstream_addr\\\\trequest_time\\\\t-\\\\t-\\\\t'\\\\n\\n 'status\\\\tupstream_status\\\\trequest_length\\\\t'\\\\n\\n 'body_bytes_sent\\\\t'\\\\n\\n 'request\\\\tupstream_http_x_apigee_message_id\\\\t'\\\\n\\n 'http_user_agent\\\\thost\\thostname-pid-connection-connection_requests\\\\tmy_nginx_var_xff\\t'\\\\n\\n 'upstream_http_x_apigee_fault_flag\\\\tupstream_http_x_apigee_fault_source\\\\tupstream_http_x_apigee_fault_code\\\\t'\\\\n\\n 'upstream_http_x_apigee_fault_policy\\tupstream_http_x_apigee_fault_flow\\tupstream_http_x_apigee_fault_revision\\t'\\\\n\\n 'upstream_http_x_apigee_dp_color\\\\tmy_x_apigee_target_latency\\\\t'\\\\n\\n 'upstream_http_x_apigee_proxy\\\\tupstream_http_x_apigee_proxy_basepath\\\\t'\\\\n\\n 'self_region\\\\tself_pod\\\\tself_color\\\\tssl_protocol\\\\tssl_client_verify\\\\tssl_session_id\\\\tssl_session_reused\\\\tupstream_pod\\\\tupstream_region';\\\\n\\n\n
    conf_load_balancing_load.balancing.driver.nginx.access.log={conf_load_balancing_load.balancing.driver.nginx.log.dir}/{org}~{env}.{port}_access_log router_new

    ऊपर दिए गए निर्देशों में वैरिएबल को अपनी ज़रूरत के हिसाब से अपडेट करें. नीचे दी गई फ़ाइल में, log_format के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन वैल्यू दी गई हैं:

    /opt/apigee/edge-router/conf/load_balancing.properties

    Nginx वैरिएबल की सूची http://nginx.org/en/docs/varindex.html पर दिखती है.

  3. नया कॉन्फ़िगरेशन लागू करने के लिए, राऊटर को रीस्टार्ट करें:
    apigee-service edge-router restart
  4. देखें कि नया log_format कॉन्फ़िगरेशन (router_new), /opt/nginx/conf.d/0-default.conf फ़ाइल में जोड़ा गया है या नहीं:
        
    cat /opt/nginx/conf.d/0-default.conf | grep router_new -A 10
  5. एपीआई प्रॉक्सी को कुछ एपीआई अनुरोध भेजें और फ़ाइल में नए लॉग फ़ॉर्मैट की पुष्टि करें
    /opt/apigee/var/log/edge-router/nginx/${org}~${env}.${port}_access_log file