2 years ago 2 views

Memoria de despliegue de Apache Tomcat

Llevamos trabajando con Tomcat aproximadamente 5 años.
Lo usamos principalmente para poner en línea estas aplicaciones:

Memoria de instalación de Apache Tomcat

Memoria de instalación de Geoserver

Versión actual: (2022-11-28)

Básicamente Geoserver es Plug and PLay. En versiones anteriores se tuvieron problemas como la dependencia de Java 8, lo cual ya está superado.

Agregar proyecciones a Geoserver

Guía usada:

Se necesitó agregar la proyección MAGNA SIRGAS Origen Nacional 9377.

Se siguió la guía

Memoria de instalación de Geonetwork

Versión actual: (2022-11-28)

Tiene múltiples pereques (problemitas de instalación)

Aquí algunos de los que hemos tenido que resolver:

Instalación y manejo de la base de datos:

Uso con Postgresql

De entrada hay una falla en la documentación pues no es clara y da por hecho varios pasos.

Problemas:

Las últimas versiones vienen con la dependencia de uso con ElasticSearch

Opciones
  1. Instrucciones para instalación: https://geonetwork-opensource.org/manuals/4.0.x/en/install-guide/installing-index.html

  2. Instalación de prueba (trial) creada en: https://9785fa361b4c4286bfb62f1346d7f709.us-central1.gcp.cloud.es.io:9243/app/integrations/detail/fleet_server-1.2.0/policies?addAgentToPolicyId=9663ee90-a15f-11ed-bc5c-4f012e02d99a

Datos de acceso:


id: 9663ee90-a15f-11ed-bc5c-4f012e02d99a
revision: 2
outputs:
  default:
    type: elasticsearch
    hosts:
      - 'https://629f0e1bd9984f889f0c9e3688915e81.us-central1.gcp.cloud.es.io:443'
    username: '${ES_USERNAME}'
    password: '${ES_PASSWORD}'
output_permissions:
  default:
    _elastic_agent_monitoring:
      indices:
        - names:
            - logs-elastic_agent.apm_server-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.apm_server-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.auditbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.auditbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.cloudbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.cloudbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.elastic_agent-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.endpoint_security-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.endpoint_security-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.filebeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.filebeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.fleet_server-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.fleet_server-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.heartbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.heartbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.metricbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.metricbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.osquerybeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.osquerybeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-elastic_agent.packetbeat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-elastic_agent.packetbeat-default
          privileges:
            - auto_configure
            - create_doc
    _elastic_agent_checks:
      cluster:
        - monitor
    47747b52-9485-4650-b6ec-a2945cda8805:
      indices:
        - names:
            - logs-system.auth-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-system.syslog-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-system.application-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-system.security-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - logs-system.system-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.cpu-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.diskio-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.filesystem-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.fsstat-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.load-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.memory-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.network-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.process-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.process.summary-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.socket_summary-default
          privileges:
            - auto_configure
            - create_doc
        - names:
            - metrics-system.uptime-default
          privileges:
            - auto_configure
            - create_doc
agent:
  download:
    sourceURI: 'https://artifacts.elastic.co/downloads/'
  monitoring:
    enabled: true
    use_output: default
    namespace: default
    logs: true
    metrics: true
inputs:
  - id: logfile-system-47747b52-9485-4650-b6ec-a2945cda8805
    name: system-1
    revision: 1
    type: logfile
    use_output: default
    meta:
      package:
        name: system
        version: 1.23.1
    data_stream:
      namespace: default
    package_policy_id: 47747b52-9485-4650-b6ec-a2945cda8805
    streams:
      - id: logfile-system.auth-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.auth
          type: logs
        ignore_older: 72h
        paths:
          - /var/log/auth.log*
          - /var/log/secure*
        exclude_files:
          - .gz$
        multiline:
          pattern: ^\s
          match: after
        tags:
          - system-auth
        processors:
          - add_locale: null
      - id: logfile-system.syslog-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.syslog
          type: logs
        paths:
          - /var/log/messages*
          - /var/log/syslog*
        exclude_files:
          - .gz$
        multiline:
          pattern: ^\s
          match: after
        processors:
          - add_locale: null
        ignore_older: 72h
  - id: winlog-system-47747b52-9485-4650-b6ec-a2945cda8805
    name: system-1
    revision: 1
    type: winlog
    use_output: default
    meta:
      package:
        name: system
        version: 1.23.1
    data_stream:
      namespace: default
    package_policy_id: 47747b52-9485-4650-b6ec-a2945cda8805
    streams:
      - id: winlog-system.application-47747b52-9485-4650-b6ec-a2945cda8805
        name: Application
        data_stream:
          dataset: system.application
          type: logs
        condition: '${host.platform} == ''windows'''
        ignore_older: 72h
      - id: winlog-system.security-47747b52-9485-4650-b6ec-a2945cda8805
        name: Security
        data_stream:
          dataset: system.security
          type: logs
        condition: '${host.platform} == ''windows'''
        ignore_older: 72h
      - id: winlog-system.system-47747b52-9485-4650-b6ec-a2945cda8805
        name: System
        data_stream:
          dataset: system.system
          type: logs
        condition: '${host.platform} == ''windows'''
        ignore_older: 72h
  - id: system/metrics-system-47747b52-9485-4650-b6ec-a2945cda8805
    name: system-1
    revision: 1
    type: system/metrics
    use_output: default
    meta:
      package:
        name: system
        version: 1.23.1
    data_stream:
      namespace: default
    package_policy_id: 47747b52-9485-4650-b6ec-a2945cda8805
    streams:
      - id: system/metrics-system.cpu-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.cpu
          type: metrics
        metricsets:
          - cpu
        cpu.metrics:
          - percentages
          - normalized_percentages
        period: 10s
      - id: system/metrics-system.diskio-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.diskio
          type: metrics
        metricsets:
          - diskio
        diskio.include_devices: null
        period: 10s
      - id: system/metrics-system.filesystem-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.filesystem
          type: metrics
        metricsets:
          - filesystem
        period: 1m
        processors:
          - drop_event.when.regexp:
              system.filesystem.mount_point: ^/(sys|cgroup|proc|dev|etc|host|lib|snap)($|/)
      - id: system/metrics-system.fsstat-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.fsstat
          type: metrics
        metricsets:
          - fsstat
        period: 1m
        processors:
          - drop_event.when.regexp:
              system.fsstat.mount_point: ^/(sys|cgroup|proc|dev|etc|host|lib|snap)($|/)
      - id: system/metrics-system.load-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.load
          type: metrics
        metricsets:
          - load
        condition: '${host.platform} != ''windows'''
        period: 10s
      - id: system/metrics-system.memory-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.memory
          type: metrics
        metricsets:
          - memory
        period: 10s
      - id: system/metrics-system.network-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.network
          type: metrics
        metricsets:
          - network
        period: 10s
        network.interfaces: null
      - id: system/metrics-system.process-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.process
          type: metrics
        metricsets:
          - process
        period: 10s
        process.include_top_n.by_cpu: 5
        process.include_top_n.by_memory: 5
        process.cmdline.cache.enabled: true
        process.cgroups.enabled: false
        process.include_cpu_ticks: false
        processes:
          - .*
      - id: >-
          system/metrics-system.process.summary-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.process.summary
          type: metrics
        metricsets:
          - process_summary
        period: 10s
      - id: >-
          system/metrics-system.socket_summary-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.socket_summary
          type: metrics
        metricsets:
          - socket_summary
        period: 10s
      - id: system/metrics-system.uptime-47747b52-9485-4650-b6ec-a2945cda8805
        data_stream:
          dataset: system.uptime
          type: metrics
        metricsets:
          - uptime
        period: 10s
  - id: fleet-server-fleet_server-c4408ff2-566f-47b8-bcd7-d18f459eaa0d
    name: fleet_server-1
    revision: 1
    type: fleet-server
    use_output: default
    meta:
      package:
        name: fleet_server
        version: 1.2.0
    data_stream:
      namespace: default
    package_policy_id: c4408ff2-566f-47b8-bcd7-d18f459eaa0d
    server:
      port: 8220
      host: 0.0.0.0

Elasticsearch

Guías:

Siguiendo estos pasos pudimos instalar elasticsearch. Al final fue facil, solo descargar el .deb y correrlo con:

sudo dpkg -i archivo.deb

Después ingresar los parámetros por Curl fue un poco más complicado: No aceptaba los certificados via Curl y luego los http headers.

Prueba

Conectarse con usuario

curl -XGET --user elastic:afz89V2Epjh1=rZA6EFO ‘http://127.0.0.1:9200/_cluster/state?pretty

error por no usar SSL. Se pone -k y se usa https://

Error porque la guía no indica que hay que decirle que es un json

curl -k -X PUT --user elastic:password https://localhost:9200/gn-features -H “Content-Type: application/json” -d @features.json

curl -k -X PUT --user elastic:password https://localhost:9200/gn-features -H “Content-Type: application/json” -d @features.json

error:

{“error”:{“root_cause”:[{“type”:“mapper_parsing_exception”,“reason”:“Root mapping definition has unsupported parameters: [default : {dynamic_templates=[{integerType={mapping={type=integer}, match=ft_ti}}, {doubleType={mapping={type=double}, match=ftd}}, {booleanType={mapping={type=boolean}, match=ftb}}, {dateType={mapping={format=, type=double}, match=ftd}}, {dateTimeType={mapping={format=yyyy-MM-dd||yyyy-MM||yyyy||yyyy-MM-dd’T’HH:mm:ss’Z’||yyyy-MM-dd’T’HH:mm:ss||yyyy-MM-dd HH:mm:ss.S, type=date}, match=ftdt}}, {stringType={mapping={fielddata=true, type=keyword}, match=fts}}, {stringPathType={mapping={search_analyzer=keyword, fielddata=true, analyzer=pathAnalyzer, type=string}, match=ft_s_tree}}, {operationType={mapping={fielddata=true, type=keyword}, match=_op}}], properties={parent={type=keyword}, docType={type=keyword}, resourceTitle={type=keyword}, location={type=geo_point}, id={type=keyword}, featureTypeId={type=keyword}, geom={precision=10km, tree=quadtree, type=geo_shape}, resourceType={type=keyword}}}]”}],“type”:“mapper_parsing_exception”,“reason”:“Failed to parse mapping: Root mapping definition has unsupported parameters: [default : {dynamic_templates=[{integerType={mapping={type=integer}, match=ft_ti}}, {doubleType={mapping={type=double}, match=ftd}}, {booleanType={mapping={type=boolean}, match=ftb}}, {dateType={mapping={format=, type=double}, match=ftd}}, {dateTimeType={mapping={format=yyyy-MM-dd||yyyy-MM||yyyy||yyyy-MM-dd’T’HH:mm:ss’Z’||yyyy-MM-dd’T’HH:mm:ss||yyyy-MM-dd HH:mm:ss.S, type=date}, match=ftdt}}, {stringType={mapping={fielddata=true, type=keyword}, match=fts}}, {stringPathType={mapping={search_analyzer=keyword, fielddata=true, analyzer=pathAnalyzer, type=string}, match=ft_s_tree}}, {operationType={mapping={fielddata=true, type=keyword}, match=_op}}], properties={parent={type=keyword}, docType={type=keyword}, resourceTitle={type=keyword}, location={type=geo_point}, id={type=keyword}, featureTypeId={type=keyword}, geom={precision=10km, tree=quadtree, type=geo_shape}, resourceType={type=keyword}}}]”,“caused_by”:{“type”:“mapper_parsing_exception”,“reason”:“Root mapping definition has unsupported parameters: [default : {dynamic_templates=[{integerType={mapping={type=integer}, match=ft_ti}}, {doubleType={mapping={type=double}, match=ftd}}, {booleanType={mapping={type=boolean}, match=ftb}}, {dateType={mapping={format=, type=double}, match=ftd}}, {dateTimeType={mapping={format=yyyy-MM-dd||yyyy-MM||yyyy||yyyy-MM-dd’T’HH:mm:ss’Z’||yyyy-MM-dd’T’HH:mm:ss||yyyy-MM-dd HH:mm:ss.S, type=date}, match=ftdt}}, {stringType={mapping={fielddata=true, type=keyword}, match=fts}}, {stringPathType={mapping={search_analyzer=keyword, fielddata=true, analyzer=pathAnalyzer, type=string}, match=ft_s_tree}}, {operationType={mapping={fielddata=true, type=keyword}, match=_op}}], properties={parent={type=keyword}, docType={type=keyword}, resourceTitle={type=keyword}, location={type=geo_point}, id={type=keyword}, featureTypeId={type=keyword}, geom={precision=10km, tree=quadtree, type=geo_shape}, resourceType={type=keyword}}}]”}},“status”:400}

no correspondía con la versión que estamos usando. Se vuelve a comenzar incluyendo la versión correcta en el json descargado:

curl -O https://raw.githubusercontent.com/geonetwork/core-geonetwork/4.0.x/es/config/features.json

y luego otra vez subimos:

curl -k -X PUT --user elastic:afz89V2Epjh1=rZA6EFO https://localhost:9200/gn-features -H “Content-Type: application/json” -d @features.json

Error:

{“error”:{“root_cause”:[{“type”:“not_x_content_exception”,“reason”:“Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes”}],“type”:“not_x_content_exception”,“reason”:“Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes”},“status”:500}

Se intenta agregand la opción -H para indicarle el tipo de contenido:

curl -k -X PUT --user elastic:afz89V2Epjh1=rZA6EFO https://localhost:9200/gn-features -H “Content-Type: application/json” --data-binary @features.json

Segundo archivo

curl -k -X PUT --user elastic:afz89V2Epjh1=rZA6EFO https://localhost:9200/gn-records -H “Content-Type: application/json” --data-binary -d @records.json

-H" para especificar el tipo de contenido en la solicitud de curl. Podrías intentar con lo siguiente

La opción “–data-binary” le indica a curl que no debe modificar los datos en el archivo y que deben enviarse exactamente tal como están en el archivo.

Error:

{“error”:{“root_cause”:[{“type”:“not_x_content_exception”,“reason”:“Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes”}],“type”:“not_x_content_exception”,“reason”:“Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes”},“status”:500}

Ahora, podría ser un problema de integridad del archivo json o que está comprimido. se le avisa que está comprimido a ver

curl -k -X PUT --user elastic:afz89V2Epjh1=rZA6EFO https://localhost:9200/gn-features -H “Content-Type: application/json” -H “Content-Encoding: gzip” -d @features.json.gz

Kibana

Guías: