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

Kurulumdan sonra Edge'i yapılandırmak için .properties dosyaları 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 .properties dosyalarını gerekli özellikleri ayarlamak üzere düzenlersiniz. .properties dosyalarında yapılan değişiklikler, etkilenen Edge bileşenini yeniden başlatmanızı gerektirir.

Apigee, .properties dosyalarını config ile kod (bazen CwC olarak kısaltılır) olarak düzenleme tekniğini ifade eder. Temelde config içeren kod, .properties dosyalarındaki ayarlara dayalı bir anahtar/değer arama aracıdır. Config ile kodda anahtarlara jeton adı verilir. Bu nedenle, Edge'i yapılandırmak için .properties dosyalarında jetonlar ayarlarsınız.

Yapılandırmalı kod, Edge bileşenlerinin ürünle birlikte gönderilen varsayılan değerleri belirlemesine olanak tanır. Ayrıca yükleme ekibi, yükleme topolojisine göre bu ayarları geçersiz kılabilir ve ardından müşterilerin seçtikleri özellikleri geçersiz kılmasına olanak tanır.

Bunu bir hiyerarşi olarak düşünürseniz ayarlar aşağıdaki gibi düzenlenir ve müşteri ayarları, yükleyici ekibinden veya Apigee'den gelen tüm ayarları geçersiz kılmak için en yüksek önceliğe sahip olur:

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

Bir jetonun mevcut değerini belirleyin

.properties dosyasındaki bir 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ı ve token incelenecek jetondur.

Bu komut, jetonun mevcut değerini belirlemek için bileşenin .properties dosyalarının hiyerarşisinde arama yapar.

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

Şuna benzer bir çıkış alırsınız:

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

Jetonun değeri # ile başlıyorsa jetonun açıklaması yazılmıştır ve bunu değiştirmek için özel söz dizimi kullanmanız gerekir. Daha fazla bilgi için Şu anda yorumlanmamış bir jeton ayarlama bölümüne bakın.

Jetonun tam adını 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 bölümünü inceleyin.

Özellik dosyaları

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

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

Aşağıdaki tabloda Apigee bileşenleri ve bu bileşenleri yapılandırmak için düzenleyebileceğiniz ö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 Yok (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 bir özellik ayarlamak istiyorsanız ancak özellik yoksa özelliği yukarıda listelenen konumda oluşturabilirsiniz.

Ayrıca, özellikler dosyasının "Apigee" kullanıcısına ait 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ının yanı sıra düzenleyemeyeceğiniz yapılandırma dosyaları da vardır.

Bilgi amaçlı (düzenlenemez) dosyalar şunları içerir:

Sahip Dosya Adı veya Dizin
Döşeme
/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

.properties dosyalarını yalnızca /opt/apigee/customer/application dizininde değiştirebilirsiniz. Her bileşenin bu dizinde kendi .properties dosyası vardır. Örneğin, router.properties ve management-server.properties. Özellik dosyalarının tam listesi için .properties dosyalarının konumu konusuna bakın.

.properties dosyası oluşturmak için:

  1. Bir düzenleyicide yeni metin dosyası oluşturun. Dosya adı, müşteri dosyaları için yukarıdaki tabloda gösterilen listeyle eşleşmelidir.
  2. Aşağıdaki örnekte gösterildiği gibi dosyanın sahibini "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ı olarak değiştirmek için chown kullanın.

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

Bir jetonun değerini belirlemek 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 ayarlanmaktadı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/*

    Bir listeye bunun gibi 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 şunlardan biridir:

    • 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 talimatını 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 ayarlanıp ayarlanmadığını kontrol edin. Ö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 Jetonun mevcut değerini belirleme bölümüne bakın.

Jetonu bulma

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

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

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

Aşağıdaki biçimde bir sonuç görmeniz gerekir:

/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 yorumlanmamış durumdaki bir jeton ayarlayın

Bazı jetonlar, Edge yapılandırma dosyalarında yorum olarak görünür. Bir yükleme veya bileşen yapılandırma dosyasında yorum olarak işaretlenmiş bir jeton ayarlamaya çalışırsanız ayarınız yok sayılır.

Edge yapılandırma dosyasında yorumlanan bir jetonun değerini ayarlamak için aşağıdaki formda özel söz dizimi kullanın:

conf/filename+propertyName=propertyValue

Örneğin, Mesaj İşleyici'de HTTPClient.proxy.host adlı özelliği ayarlamak amacıyla özelliğin jetonunu belirleyecek öncelikle grep:

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

grep komutu, jeton adını içeren sonuçları döndürür. Özellik adının # önekiyle belirtildiği gibi nasıl yorumlandığı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+ getirmeniz gerekir. Bu, "+" işaretinden sonra gelen özelliği içeren yapılandırma dosyasının konumu ve adıdır.

Mesaj İşleyici'yi 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 grubunu şu biçimde görürsünüz:

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

İzleme kullanıcı arayüzünün İstek Gönderme bölümünden istekler için yönlendirme proxy'sini yapılandır

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

  1. /opt/apigee/customer/application/ui.properties öğesini düzenleyin ve dosyanın apigee:apigee adlı kuruluşa ait olduğundan emin olun.
  2. Aşağıdaki geçersiz kılmaları ekleyin (değerleri belirli proxy yapılandırmanıza göre değiştirerek):
    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 ekleyin

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

  1. router.properties dosyası yoksa aşağıdaki yolu kullanarak oluşturun:
    /opt/apigee/customer/application/router.properties
  2. router_new adıyla 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 komutlarda değişkenleri gereken ş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österilmektedir.

  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. 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