System Monitor - Cluster and Infrastructure Monitoring Deployment
Story:
https://storyboard.openstack.org/#!/story/2005733
The Infrastructure and Cluster Monitor in stx3.0 allows for the deployment of a monitoring solution for the infrastructure and Kubernetes cluster and its services.
The following describes the deployment of stx-monitor.
Steps to Deploy stx-monitor:
stx-monitor may be obtained from the CENGN mirror:
Alternatively, the stx-monitor application may be built from source:
$MY_REPO_ROOT_DIR/cgcs-root/build-tools/build-helm-charts.sh --verbose --app stx-monitor
$ system application-upload
stx-monitor-1.0-1.tgz
$
system host-label-assign controller-0 elastic-data=enabled elastic-controller=enabled elastic-client=enabled elastic-master=enabled
$
system host-label-assign controller-1 elastic-data=enabled elastic-controller=enabled elastic-client=enabled elastic-master=enabled
If there are worker hosts provisioned, one worker host must have the following label assigned:
e.g. $
system host-label-assign compute-0 elastic-master=enabled
There are default pod resource limits (e.g.
cpu, memory, storage) for the pods that may be tuned via helm-overrides for your deployment scenario.
Optionally, the stx-monitor may also be configured via helm-overrides for sending to an external elasticsearch cluster. In such case, please
refer to and execute the steps at “NOTE: External Elastic Server Case” before continuing to the next step of apply stx-monitor.
$ system application-apply stx-monitor
e.g. Elastic Kibana interface may be accessible by pointing a web browser at:
<oamip>:31001
For sending to an external Elastic server. Note that the external Elasticsearch cluster must be
up and reachable.
$ system modify --name < system-name >
·
Setup helm-overrides for the services to access external server IP which is running the Elastic cluster.
·
Refer to the auth and ssl options for setting up logstash for sending to a secure authenticated Elasticsearch cluster:
https://www.elastic.co/guide/en/logstash/7.4/plugins-outputs-elasticsearch.html
# The external server IP is the external elastic cluster reachable from this server’s OAM or management network.
# The following parameters should be set according to the server running Elasticsearch:
ES_CLIENT_IP_ADDR=<external server ip>
ES_CLIENT_PATH=mon-elasticsearch-client
ES_CLIENT_PORT=31001
cat <<EOF > ./logstash.yml
elasticsearch:
host:
http://$ES_CLIENT_IP_ADDR
port: $ES_CLIENT_PORT
config:
elasticsearch.path: "/$ES_CLIENT_PATH"
EOF
cat <<EOF > ./filebeat.yml
config:
output.elasticsearch:
hosts:
- "$ES_CLIENT_IP_ADDR:$ES_CLIENT_PORT/$ES_CLIENT_PATH"
setup.dashboards:
enabled: false
EOF
cat <<EOF > ./metricbeat.yml
daemonset:
config:
output.elasticsearch:
hosts:
- "$ES_CLIENT_IP_ADDR:$ES_CLIENT_PORT/$ES_CLIENT_PATH"
setup.dashboards:
enabled: false
deployment:
config:
output.elasticsearch:
hosts:
- "$ES_CLIENT_IP_ADDR:$ES_CLIENT_PORT/$ES_CLIENT_PATH"
setup.dashboards:
enabled: false
EOF
Use the above generated files to set the overrides for metricbeat, filebeat, and logstash,
using the following commands:
$ system helm-override-update stx-monitor metricbeat monitor --values ./metricbeat.yml --reuse-values
$ system helm-override-update stx-monitor filebeat monitor --values ./filebeat.yml --reuse-values
$ system helm-override-update stx-monitor logstash monitor --values ./logstash.yml --reuse-values
·
Disable appropriate charts, as these components will be running external elastic database server:
$ system helm-chart-attribute-modify stx-monitor elasticsearch-client
monitor --enabled false
$ system helm-chart-attribute-modify stx-monitor elasticsearch-data
monitor --enabled false
$ system helm-chart-attribute-modify stx-monitor elasticsearch-master
monitor --enabled false
$ system helm-chart-attribute-modify stx-monitor elasticsearch-curator
monitor --enabled false
$ system helm-chart-attribute-modify stx-monitor kibana monitor --enabled false
$ system helm-chart-attribute-modify stx-monitor nginx-ingress monitor --enabled false
References:
* Elasticsearch documentation
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
* Elasticsearch-curator:
https://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html
* FileBeat
https://www.elastic.co/guide/en/beats/filebeat/current/index.html
* MetricBeat
https://www.elastic.co/guide/en/beats/metricbeat/current/index.html
* Kibana
https://www.elastic.co/guide/en/kibana/current/index.html
* Logstash
https://www.elastic.co/guide/en/logstash/current/index.html
* Logstash
https://www.elastic.co/guide/en/logstash/7.4/plugins-outputs-elasticsearch.html