{
    "archiver": "http",
    "data": {
        "schema": 2,
        "_url": "https://{% scheduled_by_address %}/logstash",
        "op": "put",
        "_headers": {
            "x-ps-observer": "{% scheduled_by_address %}",
            "content-type": "application/json", "Authorization":"Basic cGVy...."
        }
    }
}
    ProxyPass /logstash http://localhost:11283 status=+I
    ProxyPassReverse /logstash http://localhost:11283 status=+I
    ProxyPreserveHost On
    <Location /logstash>
        Authtype Basic
        AuthUserFile /etc/perfsonar/opensearch/logstash_login
perfsonar:$apr1....
# curl https://localhost/logstash \
   -H "Authorization: Basic cGVy...."
ok
- path.config: /etc/logstash/conf.d/*.conf
  pipeline.id: main
- path.config: /usr/lib/perfsonar/logstash/pipeline/*.conf
  pipeline.id: pscheduler
# ls /usr/lib/perfsonar/logstash/pipeline
01-inputs.conf               04-iso8601-duration.conf  06-result_rtt.conf         99-outputs.conf
02-pscheduler_common.conf    05-geoip.conf             06-result_throughput.conf
03-normalize_endpoints.conf  06-result_latency.conf    06-result_trace.conf
input {
  http {
    host => "localhost"
    port => "11283" # ACII 112=p, 83=S
  }
}
output {
    #If has [test][type] create index using that in name.
    if [test][type] {
        opensearch {
            hosts => ["${opensearch_output_host}"]
            ssl_certificate_verification => false
            user => "${opensearch_output_user}"
            password => "${opensearch_output_password}"
            index => "pscheduler_%{[test][type]}-%{+YYYY.MM.dd}"
        }
    }
}
## Logstash environment variables.
log_level=info
opensearch_output_host=https://localhost:9200
opensearch_output_user=pscheduler_logstash
opensearch_output_password=pscheduler_logstash
XPACK_MONITORING_ENABLED=False
LOGSTASH_ELASTIC_USER=pscheduler_logstash
admin mE......
anomalyadmin vv......
kibanaserver qg......
kibanaro fc......
logstash Nm......
readall E4......
snapshotrestore MK......
pscheduler_logstash Ji......
pscheduler_reader YR......
pscheduler_writer IX......
# curl -X GET -u admin:mE...... 'https://127.0.0.1:9200/_cluster/health?pretty'
{
  "cluster_name" : "opensearch",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "discovered_master" : true,
  "discovered_cluster_manager" : true,
  "active_primary_shards" : 501,
  "active_shards" : 501,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 499,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 50.1
}
# curl -X GET -u admin:mE...... 'https://127.0.0.1:9200/_cat/indices?v'
health status index                            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   pscheduler_latencybg-2023.05.10  LlDBhY_ES1-nuONvTHdhSg   1   1      29536            0     38.5mb         38.5mb
...
yellow open   pscheduler_latencybg-2023.09.04  eKlsY1_cRTqfnBxgkekChg   1   1      20246            0     24.4mb         24.4mb
yellow open   pscheduler_throughput-2023.05.10 pKT63gJAR2aoMDaLREm3GQ   1   1         94            0    880.3kb        880.3kb
...
yellow open   pscheduler_throughput-2023.09.03 vijnOOjITk67a7mAZzX2IA   1   1         42            0    391.1kb        391.1kb
yellow open   pscheduler_trace-2023.05.11      NwXrbs5fRBqhUbIgZsgvNw   1   1       1589            0      2.4mb          2.4mb
...
yellow open   pscheduler_trace-2023.09.03      VnBhB_bkTjmpL_oYuXhyBw   1   1       4171            0      6.5mb          6.5mb