/etc/perfsonar/psconfig/archives.d/http_logstash.json
{
"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...."
}
}
}
/etc/httpd/conf.d/apache-logstash.conf
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
/etc/perfsonar/opensearch/logstash_login
perfsonar:$apr1....
# curl https://localhost/logstash \ -H "Authorization: Basic cGVy...." ok
/etc/logstash/pipelines.yml
- 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
/usr/lib/perfsonar/logstash/pipeline/01-inputs.conf
input {
http {
host => "localhost"
port => "11283" # ACII 112=p, 83=S
}
}
/usr/lib/perfsonar/logstash/pipeline/99-outputs.conf
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}"
}
}
}
/etc/perfsonar/logstash/logstash_sysconfig
## 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
/etc/perfsonar/opensearch/auth_setup.out
admin mE...... anomalyadmin vv...... kibanaserver qg...... kibanaro fc...... logstash Nm...... readall E4...... snapshotrestore MK...... pscheduler_logstash Ji...... pscheduler_reader YR...... pscheduler_writer IX......
# U=`cat /etc/perfsonar/opensearch/auth_setup.out | head -n 1 | sed -e 's/ /:/g'`
# alias CURL="curl -X GET -u $U"
# CURL '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 '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
# CURL 'https://localhost:9200/pscheduler_throughput-2023.09.03/_search' -H "Content-Type: application/json" -d '{ "size": 3 }'
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 139,
"relation": "eq"
},
"max_score": 1,
"hits": [
{ /*...*/ },
{ /*...*/ },
{ /*...*/ }
]
}
}
/etc/httpd/conf.d/apache-elmond.conf
SSLProxyEngine On
ProxyPass /esmond/perfsonar/archive http://localhost:5000 status=+I
ProxyPreserveHost On
Header always set Access-Control-Allow-Origin "*"
# netstat -anp | grep 5000 | grep LISTEN tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 2159/python3 # cat /proc/2159/cmdline /usr/bin/python3 /usr/lib/perfsonar/elmond/app.py
https://github.com/perfsonar/elmond
elmond/elmond/perfsonar-elmond/elmond/app.py
elmond/elmond/perfsonar-elmond/elmond/data.py
⭐ Only opensearch used
https://ps-daej.kreonet2.net/perfsonar-graphs/ ?source=134.75.207.2 &dest=138.44.228.7 &url=https://ps-daej.kreonet2.net/esmond/perfsonar/archive/ &timeframe=1d#start=1693273543&end=1693878343 A=https://ps-daej.kreonet2.net/esmond/perfsonar/archive/ B=b01012273dd3c9c66e8bbfc6b095dde515c57cbb11afa76a4015dca4bfee7da2 C=e632505ff9396efd34f63927cace884b5cb14cc4b5bf61d1b431c182a56fca0e curl 'A/?source=134.75.207.2&destination=138.44.228.7' curl 'A/B/failures/base/0 ?time-start=1693273543&time-end=1693878343' curl 'A/B/packet-count-sent/aggregations/86400 ?time-start=1693273543&time-end=1693878343' curl 'A/B/histogram-owdelay/statistics/86400 ?time-start=1693273543&time-end=1693878343' curl 'A/B/packet-loss-rate/aggregations/86400 ?time-start=1693273543&time-end=1693878343' curl 'A/B/packet-count-lost/aggregations/86400 ?time-start=1693273543&time-end=1693878343' curl 'A/C/throughput/base/0 ?time-start=1693273543&time-end=1693878343'
# du -h /var/lib/pgsql 2.9G /var/lib/pgsql # du -h /var/lib/opensearch 15G /var/lib/opensearch
# su postgres
bash-4.2$ psql
psql (10.17)
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+------------+-----------+---------+-------+---------------------------
esmond | postgres | SQL_ASCII | C | C | =Tc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | esmond=CTc/postgres
pscheduler | pscheduler | SQL_ASCII | C | C | =Tc/pscheduler +
| | | | | pscheduler=CTc/pscheduler
postgres=# \c esmond
You are now connected to database "esmond" as user "postgres".
esmond=# select
esmond-# table_name,
esmond-# pg_size_pretty(pg_relation_size(quote_ident(table_name))),
esmond-# pg_relation_size(quote_ident(table_name))
esmond-# from information_schema.tables
esmond-# where table_schema = 'public';
table_name | pg_size_pretty | pg_relation_size
----------------------------+----------------+------------------
django_migrations | 8192 bytes | 8192
ps_metadata_parameters | 8192 bytes | 8192
ps_networkelement_subject | 0 bytes | 0
django_content_type | 8192 bytes | 8192
auth_group_permissions | 0 bytes | 0
auth_group | 0 bytes | 0
auth_user | 8192 bytes | 8192
auth_user_groups | 0 bytes | 0
auth_permission | 8192 bytes | 8192
auth_user_user_permissions | 0 bytes | 0
django_admin_log | 0 bytes | 0
ps_p2p_subject | 8192 bytes | 8192
useripaddress | 0 bytes | 0
ps_metadata | 8192 bytes | 8192
ps_event_types | 32 kB | 32768
authtoken_token | 8192 bytes | 8192
django_session | 0 bytes | 0
(17 rows)
esmond=# \c pscheduler
You are now connected to database "pscheduler" as user "postgres".
pscheduler=# select
pscheduler-# table_name,
pscheduler-# pg_size_pretty(pg_relation_size(quote_ident(table_name))),
pscheduler-# pg_relation_size(quote_ident(table_name))
pscheduler-# from information_schema.tables
pscheduler-# where table_schema = 'public';
table_name | pg_size_pretty | pg_relation_size
---------------------------+----------------+------------------
scheduling_class | 8192 bytes | 8192
archive_default | 16 kB | 16384
tool_test | 8192 bytes | 8192
table_version | 8192 bytes | 8192
heartbeat | 528 kB | 540672
auth_key_type | 8192 bytes | 8192
auth_key | 0 bytes | 0
control | 8192 bytes | 8192
queries | 0 bytes | 0
heartbeat_full | 0 bytes | 0
archiving_eligible | 0 bytes | 0
schedule | 0 bytes | 0
archiver_test | 0 bytes | 0
heartbeat_json | 0 bytes | 0
http_queue | 48 kB | 49152
test | 440 kB | 450560
tool | 696 kB | 712704
archiver_summary | 0 bytes | 0
context | 40 kB | 40960
run_conflictable | 0 bytes | 0
run_status | 0 bytes | 0
run_status_short | 0 bytes | 0
schedule_upcoming | 0 bytes | 0
schedule_runs_to_schedule | 0 bytes | 0
schedule_overlap | 0 bytes | 0
run_state | 8192 bytes | 8192
task | 7552 kB | 7733248
configurables | 8192 bytes | 8192
run_latest | 136 kB | 139264
archiver | 216 kB | 221184
run | 388 MB | 406921216
archiving | 575 MB | 602931200
(32 rows)
https://stackoverflow.com/questions/21738408/postgresql-list-and-order-tables-by-size
