Edge nasıl yapılandırılır?

Edge'i yükleme işleminden sonra yapılandırmak için .properties dosyalarının ve Edge yardımcı programlarının bir kombinasyonunu kullanırsınız. Örneğin, Edge kullanıcı arayüzünde TLS/SSL'yi yapılandırmak için gerekli özellikleri ayarlamak üzere .properties dosyalarını düzenlersiniz. .properties dosyalarında yapılan değişiklikler için etkilenen Edge bileşenini yeniden başlatmanız gerekir.

Apigee, .properties dosyalarını config ile kod (bazen CwC olarak da adlandırılır) olarak düzenleme tekniğidir. Yapılandırma içeren kod, temel olarak .properties dosyalarındaki ayarlara dayalı bir anahtar/değer arama aracıdır. Yapılandırma kodunda, anahtarlar jetonlar olarak adlandırılır. Bu nedenle, Edge'i yapılandırmak için .properties dosyalarında jetonları ayarlarsınız.

Yapılandırma içeren kod, Edge bileşenlerinin ürünle birlikte gönderilen varsayılan değerleri belirlemesine, kurulum ekibinin kurulum topolojisine göre bu ayarları geçersiz kılmasına ve ardından müşterilerin seçtikleri tüm özellikleri geçersiz kılmasına olanak tanır.

Bunu bir hiyerarşi olarak düşünürseniz ayarlar aşağıdaki gibi düzenlenir. Müşteri ayarları, yükleyici ekibi veya Apigee'deki tüm ayarları geçersiz kılmak için en yüksek önceliğe sahiptir:

  1. Müşteri
  2. Yükleyici
  3. Bileşen

Bir jetonun mevcut değerini belirleme

Bir .properties dosyasındaki jeton için yeni bir değer ayarlamadan önce, aşağıdaki komutu kullanarak jetonun geçerli değerini belirlemeniz gerekir:

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

Burada component_name bileşenin adı, token ise incelenecek jetondur.

Bu komut, jetonun geçerli değerini belirlemek için bileşenin .properties dosyalarının hiyerarşisini arar.

Aşağıdaki örnekte, Yönlendirici için conf_http_HTTPRequest.line.limit jetonunun geçerli değeri kontrol edilmektedir:

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

Aşağıdaki gibi bir çıkış görürsünüz:

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

Jetonun değeri bir # ile başlıyorsa açıklama eklenmiştir ve değeri değiştirmek için özel bir söz dizimi kullanmanız gerekir. Daha fazla bilgi için Şu anda yoruma alınmış bir jeton ayarlama başlıklı makaleyi inceleyin.

Jetonun adını tam olarak bilmiyorsanız mülk adına veya anahtar kelimeye göre arama yapmak için grep gibi bir araç kullanın. Daha fazla bilgi için Jeton bulma başlıklı makaleyi inceleyin.

Mülk dosyaları

Düzenlenebilir ve düzenlenemeyen bileşen yapılandırma dosyaları vardır. Bu bölümde bu dosyalar açıklanmaktadır.

Düzenlenebilir bileşen yapılandırma dosyaları

Aşağıdaki tabloda, bu bileşenleri yapılandırmak için düzenleyebileceğiniz Apigee bileşenleri ve özellik dosyaları listelenmiştir:

Bileşen Bileşen Adı Düzenlenebilir Yapılandırma Dosyası
Cassandra apigee-cassandra /opt/apigee/customer/application/cassandra.properties
Apigee TOA apigee-sso /opt/apigee/customer/application/sso.properties
Yönetim Sunucusu edge-management-server /opt/apigee/customer/application/management-server.properties
Mesaj İşleyici edge-message-processor /opt/apigee/customer/application/message-processor.properties
apigee-monit apigee-monit /opt/apigee/customer/application/monit.properties
Klasik kullanıcı arayüzü (yeni Edge kullanıcı arayüzünü etkilemez) edge-ui /opt/apigee/customer/application/ui.properties
Edge kullanıcı arayüzü (yalnızca yeni Edge kullanıcı arayüzü; Klasik kullanıcı arayüzünü etkilemez) apigee-management-ui geçersiz (yükleme yapılandırma dosyasını kullanın)
OpenLDAP apigee-openldap /opt/apigee/customer/application/openldap.properties
Postgres Sunucusu edge-postgres-server /opt/apigee/customer/application/postgres-server.properties
PostgreSQL Veritabanı apigee-postgresql /opt/apigee/customer/application/postgresql.properties
Qpid sunucusu edge-qpid-server /opt/apigee/customer/application/qpid-server.properties
Qpidd apigee-qpidd /opt/apigee/customer/application/qpidd.properties
Yönlendirici edge-router /opt/apigee/customer/application/router.properties
Zookeeper apigee-zookeeper /opt/apigee/customer/application/zookeeper.properties

Bu bileşen yapılandırma dosyalarından birinde ayarlamak istediğiniz bir mülk yoksa yukarıda listelenen konumda bu mülkü oluşturabilirsiniz.

Ayrıca, properties dosyasının sahibinin "apigee" kullanıcısı olduğundan emin olmanız gerekir:

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

Düzenlenemeyen bileşen yapılandırma dosyaları

Düzenlenebilir bileşen yapılandırma dosyalarına ek olarak, düzenleyemeyeceğiniz yapılandırma dosyaları da vardır.

Bilgilendirici (düzenlenemeyen) dosyalar şunları içerir:

Sahip Dosya adı veya dizin
Kurulum
/opt/apigee/token
Bileşen
/opt/apigee/component_name/conf

Burada component_name, bileşeni tanımlar. Olası değerler şunları içerir:

  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (PostgreSQL veritabanı)
  • apigee-qpidd (Qpidd)
  • apigee-sso (Edge TOA)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (Yönetim Sunucusu)
  • edge-management-ui (yeni Edge kullanıcı arayüzü)
  • edge-message-processor (Mesaj İşleyici)
  • edge-postgres-server (Postgres Sunucusu)
  • edge-qpid-server (Qpid Sunucusu)
  • edge-router (Edge Yönlendirici)
  • edge-ui (Klasik kullanıcı arayüzü)

Jeton değeri belirleyin

Yalnızca /opt/apigee/customer/application dizinindeki .properties dosyalarını değiştirebilirsiniz. Her bileşenin bu dizinde kendi .properties dosyası vardır. Örneğin, router.properties ve management-server.properties. .properties dosyalarının tam listesi için .properties dosyalarının konumu başlıklı makaleyi inceleyin.

.properties dosyası oluşturmak için:

  1. Bir düzenleyicide yeni bir metin dosyası oluşturun. Dosya adı, müşteri dosyaları için yukarıdaki tabloda gösterilen listede yer alan adlarla eşleşmelidir.
  2. Dosyanın sahibini aşağıdaki örnekte gösterildiği gibi "apigee:apigee" olarak değiştirin:
    chown apigee:apigee /opt/apigee/customer/application/router.properties

    Edge hizmetini çalıştıran kullanıcıyı "apigee" kullanıcısından değiştirdiyseniz sahipliği Edge hizmetini çalıştıran kullanıcıya değiştirmek için chown simgesini kullanın.

Edge'i yükselttiğinizde /opt/apigee/customer/application dizinindeki .properties dosyaları okunur. Bu, yükseltmenin bileşende ayarladığınız tüm özellikleri koruyacağı anlamına gelir.

Bir jetonun değerini ayarlamak için:

  1. Bileşenin .properties dosyasını düzenleyin.
  2. Jetonun değerini ekleyin veya değiştirin. Aşağıdaki örnekte conf_http_HTTPRequest.line.limit özelliğinin değeri "10k" olarak ayarlanmıştır:
    conf_http_HTTPRequest.line.limit=10k

    Jeton birden fazla değer alıyorsa aşağıdaki örnekte gösterildiği gibi her bir değeri virgülle ayırın:

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

    Bunun gibi bir listeye yeni bir değer eklemek için genellikle yeni değeri listenin sonuna eklersiniz.

  3. Bileşeni yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service component_name restart

    Burada component_name aşağıdakilerden biri olmalıdır:

    • apigee-cassandra (Cassandra)
    • apigee-openldap (OpenLDAP)
    • apigee-postgresql (PostgreSQL veritabanı)
    • apigee-qpidd (Qpidd)
    • apigee-sso (Edge TOA)
    • apigee-zookeeper (ZooKeeper)
    • edge-management-server (Yönetim Sunucusu)
    • edge-management-ui (yeni Edge kullanıcı arayüzü)
    • edge-message-processor (Mesaj İşleyici)
    • edge-postgres-server (Postgres Sunucusu)
    • edge-qpid-server (Qpid Sunucusu)
    • edge-router (Edge Yönlendirici)
    • edge-ui (Klasik kullanıcı arayüzü)

    Örneğin, router.properties değerini düzenledikten sonra yönlendiriciyi yeniden başlatın:

    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. (İsteğe bağlı) configure -search seçeneğini kullanarak jeton değerinin yeni değerinize ayarlandığından emin olun. Örneğin:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

    configure -search hakkında daha fazla bilgi için Bir jetonun mevcut değerini belirleme bölümüne bakın.

Jetonu bulma

Çoğu durumda, ayarlamanız gereken jetonlar bu kılavuzda açıklanmıştır. Ancak tam adını veya konumunu emin olmadığınız mevcut bir jetonun değerini geçersiz kılmanız gerekirse bileşenin source dizininde arama yapmak için grep komutunu kullanın.

Örneğin, Edge'in önceki bir sürümünde session.maxAge özelliğini ayarladığınızı ve bunu ayarlamak için kullanılan jeton değerini öğrenmek istediğinizi biliyorsanız /opt/apigee/edge-ui/source dizinindeki mülk için grep değerini öğrenin:

grep -ri "session.maxAge" /opt/apigee/edge-ui/source

Aşağıdaki biçimde bir sonuç görürsünüz:

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

Aşağıdaki örnekte kullanıcı arayüzünün session.maxAge jetonunun değeri gösterilmektedir:

/opt/apigee/edge-ui/source/conf/application.conf:session.maxAge={T}conf_application_session.maxage{/T}

{T}{/T} etiketleri arasındaki dize, kullanıcı arayüzünün .properties dosyasında ayarlayabileceğiniz jetonun adıdır.

Şu anda yoruma alınmış bir jeton ayarlama

Bazı jetonlar Edge yapılandırma dosyalarında yorumlanmıştır. Yükleme veya bileşen yapılandırma dosyasında yorumu kaldırılmış bir jeton ayarlamaya çalışırsanız ayarınız yok sayılır.

Edge yapılandırma dosyasında açıklama eklenen bir jetonun değerini ayarlamak için aşağıdaki formdaki özel söz dizimini kullanın:

conf/filename+propertyName=propertyValue

Örneğin, Mesaj İşleyici'de HTTPClient.proxy.host adlı özelliği ayarlamak için jetonun jetonunu belirlemek üzere ilk grep işlemi yapın:

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

grep komutu, jeton adını içeren sonuçları döndürür. Mülk adının # ön ekiyle nasıl yoruma alındığına dikkat edin:

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=

Bu özelliğin değerini ayarlamak için /opt/apigee/customer/application/message-processor.properties öğesini düzenleyin ancak aşağıdaki örnekte gösterildiği gibi özel bir söz dizimi kullanın:

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

Bu durumda, mülk adının önüne conf/http.properties+ eklemeniz gerekir. Özelliği ve "+" işaretini içeren yapılandırma dosyasının konumu ve adıdır.

İleti İşleyen'i yeniden başlattıktan sonra /opt/apigee/edge-message-processor/conf/http.properties dosyasını inceleyin:

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

Dosyanın sonunda, özellik ayarlandığını şu biçimde görürsünüz:

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

Trace kullanıcı arayüzünün İstekler Gönder bölümünden gelen istekler için yönlendirme proxy'sini yapılandırma

Bu bölümde, istekler için Trace kullanıcı arayüzünün Gönder İstekler bölümünden isteğe bağlı proxy kimlik bilgileriyle yönlendirme proxy'sinin nasıl yapılandırılacağı açıklanmaktadır. Yönlendiren proxy'yi yapılandırmak için:

  1. /opt/apigee/customer/application/ui.properties dosyasını düzenleyin ve dosyanın apigee:apigee'a ait olduğundan emin olun.
  2. Aşağıdaki geçersiz kılma işlemlerini ekleyin (değerleri kendi proxy yapılandırmanıza göre değiştirin):
    conf_application_http.proxyhost=proxy.example.com
    conf_application_http.proxyport=8080
    conf_application_http.proxyuser=apigee
    conf_application_http.proxypassword=Apigee123!
  3. Klasik kullanıcı arayüzünü kaydedip yeniden başlatın.

Apigee Router/Nginx'e özel günlük biçimi ekleme

Bazı durumlarda varsayılan Apigee Router/Nginx günlük biçimini değiştirmeniz veya değişken eklemeniz gerekebilir. Varsayılan Apigee Router/Nginx günlük biçimi yapılandırmasını güncellemek için:

  1. Henüz yoksa aşağıdaki yolu kullanarak bir router.properties dosyası oluşturun:
    /opt/apigee/customer/application/router.properties
  2. router_new adında yeni bir log_format yapılandırması oluşturmak için router.properties dosyasına aşağıdaki içeriği ekleyin:
    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

    Yukarıdaki komutlardaki değişkenleri uygun şekilde güncelleyin. log_format için varsayılan yapılandırma değerlerini aşağıdaki dosyada bulabilirsiniz:

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

    Nginx değişkenlerinin listesi http://nginx.org/en/docs/varindex.html adresinde gösterilir.

  3. Yeni yapılandırmayı uygulamak için Yönlendiriciyi yeniden başlatın:
    apigee-service edge-router restart
  4. Yeni log_format yapılandırmasının (router_new) /opt/nginx/conf.d/0-default.conf dosyasına eklenip eklenmediğini kontrol edin:
        
    cat /opt/nginx/conf.d/0-default.conf | grep router_new -A 10
  5. Bir API proxy'sine bazı API istekleri gönderin ve dosyadaki yeni günlük biçimini doğrulayın
    /opt/apigee/var/log/edge-router/nginx/${org}~${env}.${port}_access_log file