https://github.com/amd/pensando-elk
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.9%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: amd
- License: apache-2.0
- Default Branch: main
- Size: 2.93 MB
Statistics
- Stars: 2
- Watchers: 5
- Forks: 2
- Open Issues: 7
- Releases: 0
Metadata Files
README.md

ELK based analytics for AMD Pensando DPUs in the Aruba CX10K
This repository is the starting point for building and utlizing the Elasticstack for monitoring and analyzing data, both about and traversing, the AMD Pensando DPU(s) within your environment. By default, it is an Elastic Common Schema (ECS) compliant install that will support AMD Pensando DPU telemetry from any Aruba CX10K with AOSCX 10.12, 10.13, 10.14 or 10.15. The main purpose is to consolidate the applications and tools used for said monitoring and analysis and deploy them in an easy fashion to get a demo/poc up and running in very little time.
NOTE
Please fully read the Support Policy below if you have any issues/questions with the installation
#### System Requirements This is a POC/demo implementation only. Some aspects (configurations and schemas) can be used for production, but the underlying infra (Elasticstack) should only be used in a lab situation. It is not built to scale to anything past a couple switches with paltry amounts of workloads. The AMD Pensando Technical Business Development team is more than happy to help when a production instance is needed and can advise on how the AMD Pensando configurations and settings need to be applied to a production instance of Elasticstack.
There are 2 recommended requirements because each deals with different scenarios. The "minimum" is what you will need for 1 CX10K and no more than 12 workloads attached just doing basic connectivity tests, web tier apps and the like. The "large" is what you would use for 1 CX10K with more than 12, but less than 48, workloads or multiple CX10Ks (again with no more than 48 workloads total) doing connectivity tests along with a more "normal" DC traffic pattern (i.e. hundreds of flows/sec).
The HDD recommendations will allow for each to store both syslog and ipfix data for a total of 30 days before deletion. This can be adjusted on your data retention requirements and whether or not both telemetry systems are sending to the ELK stack.
Minimum Requirements
4 vCPU
16GB RAM
256GB HDD
Ubuntu 22.04 or newer
Large Requirements
6 vCPU
32GB RAM
512GB HDD
Ubuntu 22.04 or newer
Installation and running
There are two options to install this repository. Please read the options below and decide which is best for you.
OPTION 1 - Mostly Automated
This option will download and run an all-in-one script that will install not only this repository, but will also install all of the necessary pre-requisites (docker, docker-compose, etc.) and configure your Ubuntu based system for Elasticstack.
This is recommended for most users. It takes care of the heavy lifting and is for those that don't need/want to understand the undelying complexities of getting this up and running To run this, please use the ELKsinglescript repository and make sure to read the README before starting.
OPTION 2 - Manual Installation
This option is for those that want to run the AMD Pensando Elasticstack but also have an interest in how it's actually built and how things are configured. It is suggested that you use this installation method if you plan on administering your Elasticstack "cluster" in your demo/poc environment.
Instantiation can be done on any system with docker and docker-compose installed.
:warning: WARNING :warning:
DO NOT RUN THE INSTALL OR CONFIGURATION AS ROOT - IT WILL NOT WORK.
If you don't know how to run docker as a non-root user, simply add the user to the docker group, then log out and log back in.
sudo usermod -aG docker ${USER}
This branch works with the following software.
CXOS: 10.15.x
PSM: 1.100.2-T-8 or later
This is backwards compatible with CXOS software 10.13.x and 10.14.x as well (and applicable PSM versions). If this is not what you are running, check one of the other branches
### Please fully read the Support Policy below if you are having problems installing or configuring this
#### Installation and running
Clone this repository and cd into the directory where it was cloned
git clone https://github.com/amd/pensando-elk.git cd pensando-elkVerify you are on the correct branch before starting (you want to be on main or aoscx_10.15.x)
git branchIf you are not on the correct branch, use the following command to switch to the correct branch:
git checkout mainRun the following command to set up the ELK version to run:
echo "TAG=8.16.1" >.envCreate the following directories and give them full write permissions (777 works)
./data/es_backups ./data/pensando_es ./data/elastiflow chmod -R 777 ./dataEnsure that you update
vm.max_map_counton your system so that elasticsearch can store it's inidices correctlysudo sysctl -w vm.max_map_count=262144 echo vm.max_map_count=262144 | sudo tee -a /etc/sysctl.confIf you are going to collect IPFix packets. If not, then skip to step 7.
localip=`hostname -I | cut -d " " -f1` sed -i.bak 's/EF_OUTPUT_ELASTICSEARCH_ENABLE: '\''false'\''/EF_OUTPUT_ELASTICSEARCH_ENABLE: '\''true'\''/' docker-compose.yml sed -i.bak -r "s/EF_OUTPUT_ELASTICSEARCH_ADDRESSES: 'CHANGEME:9200'/EF_OUTPUT_ELASTICSEARCH_ADDRESSES: '$localip:9200'/" docker-compose.yml sed -i.bak -r "s/#EF_OUTPUT_ELASTICSEARCH_INDEX_PERIOD: 'daily'/EF_OUTPUT_ELASTICSEARCH_INDEX_PERIOD: 'daily'/" docker-compose.ymlThe previous commands do the following in the docker-compose.yml file for Elastiflow: - Enables Elasticsearch output for Elastiflow: EFOUTPUTELASTICSEARCHENABLE: 'true' - Change the "CHANGEME" to the IP address of your system: EFOUTPUTELASTICSEARCHADDRESSES: 'CHANGEME:9200' - Enable daily log file rotation: EFOUTPUTELASTICSEARCHINDEXPERIOD: 'daily'
Using PSM, point your DSS firewall syslog (RFC5424) at the IP of your ELK cluster, UDP port 5514 (this number can be changed in the logstash/dss_syslog.conf file in the input section at the top)
If collecting IPFix (else skip to step 9), use PSM point your DSS IPFix flows (flow export policy) at the IP of your ELK cluster, UDP port 9995 (this port number can be changed in the docker-compose file using the EFFLOWSERVERUDPPORT parameter)*
Run
If using docker-compose v1 (standalone)
docker-compose -d upOr if using docker-compose v2 (docker plug-in)
docker compose up --detachNOTE: Give it about 5 minutes to start up
From the install directory, load the elasticsearch schema (mappings) for the Pensando DSS Firewall index-pattern using the following cli:
curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_index_template/pensando-fwlog-session-end?pretty' -d @./elasticsearch/template/pensando-fwlog-session-end.json curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_index_template/pensando-fwlog-create-allow?pretty' -d @./elasticsearch/template/pensando-fwlog-create-allow.json curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_index_template/pensando-fwlog-empty-delete?pretty' -d @./elasticsearch/template/pensando-fwlog-empty-delete.json curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_index_template/pensando-fwlog-create-deny?pretty' -d @./elasticsearch/template/pensando-fwlog-create-deny.jsonFrom the install directory, load the elasticsearch index retention settings for the Pensando DSS Firewall index-pattern using the following cli:
curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_ilm/policy/pensando_empty_delete' -d @./elasticsearch/policy/pensando_empty_delete.json curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_ilm/policy/pensando_create_allow' -d @./elasticsearch/policy/pensando_create_allow.json curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_ilm/policy/pensando_session_end' -d @./elasticsearch/policy/pensando_session_end.json curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_ilm/policy/pensando_create_deny' -d @./elasticsearch/policy/pensando_create_deny.json curl -XPUT -H'Content-Type: application/json' 'http://localhost:9200/_ilm/policy/elastiflow' -d @./elasticsearch/policy/elastiflow.jsonFrom the install directory, load the Kibana dashboard for syslog:
curl -X POST "http://localhost:5601/api/saved_objects/_import?overwrite=true" -H "kbn-xsrf: true" -H "securitytenant: global" --form file=@./kibana/pensando-dss-10.15.x-syslog.ndjsonFrom the install directory, load the Kibana dashboard IPFIX:
curl -X POST "http://localhost:5601/api/saved_objects/_import?overwrite=true" -H "kbn-xsrf: true" -H "securitytenant: global" --form file=@./kibana/kibana-8.2.x-flow-codex.ndjsonUse basic docker commands, like
docker psanddocker logs <container name>to view status of the containers.Point your browser to the ip of your ELK cluster, port 5601 NOTE: It could take about 5 mins for visualizations to become populated in both the DSS and IPFix dashboards.
Support Policy
The code and templates in the repo are released under an as-is, best effort, support policy. These scripts should be seen as community supported and AMD Pensando will contribute our expertise as and when possible. The absolute best (and quickest) way to get help/support is to file an issue. Any other attempts at contact will probably be lost in the ether and you will rarely, if ever, hear back.
Owner
- Name: AMD
- Login: amd
- Kind: organization
- Email: dl.DevSecOps-Github-Admin@amd.com
- Website: http://www.amd.com
- Repositories: 56
- Profile: https://github.com/amd
GitHub Events
Total
- Create event: 3
- Issues event: 8
- Watch event: 1
- Delete event: 7
- Issue comment event: 8
- Member event: 1
- Push event: 25
- Pull request review comment event: 2
- Pull request review event: 4
- Pull request event: 4
- Fork event: 1
Last Year
- Create event: 3
- Issues event: 8
- Watch event: 1
- Delete event: 7
- Issue comment event: 8
- Member event: 1
- Push event: 25
- Pull request review comment event: 2
- Pull request review event: 4
- Pull request event: 4
- Fork event: 1
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Edward Arcuri | e****d@p****o | 201 |
| Edward Arcuri | e****i@p****m | 32 |
| pmulgund | 5****d | 23 |
| Edward Arcuri | 5****X@u****m | 10 |
| Makepeace | t****a@a****m | 7 |
| Kevin Walsh | k****n@w****m | 4 |
| Pranav Advaithi Mulgund | p****v@P****n | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 15
- Total pull requests: 3
- Average time to close issues: about 1 year
- Average time to close pull requests: 20 days
- Total issue authors: 4
- Total pull request authors: 3
- Average comments per issue: 0.53
- Average comments per pull request: 0.67
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 2
- Average time to close issues: 6 days
- Average time to close pull requests: about 1 month
- Issue authors: 2
- Pull request authors: 2
- Average comments per issue: 1.0
- Average comments per pull request: 1.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- punisherVX (10)
- tdmakepeace (2)
- swvenkat (1)
- ugogbos99 (1)
Pull Request Authors
- punisherVX (2)
- Max1211 (2)
- tdmakepeace (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- docker.elastic.co/elasticsearch/elasticsearch ${TAG}
- docker.elastic.co/kibana/kibana ${TAG}
- docker.elastic.co/logstash/logstash ${TAG}
- elastiflow/flow-collector 6.2.2
- Babel ==2.9.0
- Jinja2 ==2.11.3
- MarkupSafe ==1.1.1
- Pygments ==2.8.1
- Sphinx ==3.5.2
- alabaster ==0.7.12
- beautifulsoup4 ==4.9.3
- certifi ==2020.12.5
- chardet ==4.0.0
- docutils ==0.16
- idna ==2.10
- imagesize ==1.2.0
- packaging ==20.9
- pydata-sphinx-theme ==0.6.3
- pyparsing ==2.4.7
- pytz ==2021.1
- requests ==2.25.1
- snowballstemmer ==2.1.0
- soupsieve ==2.2.1
- sphinx-rtd-theme ==0.5.1
- sphinxcontrib-applehelp ==1.0.2
- sphinxcontrib-devhelp ==1.0.2
- sphinxcontrib-htmlhelp ==1.0.3
- sphinxcontrib-jsmath ==1.0.1
- sphinxcontrib-qthelp ==1.0.3
- sphinxcontrib-serializinghtml ==1.1.4
- urllib3 ==1.26.4