Version: 1.4.9This documentation is for Spitfire 1.4.9.
Infrastructure — cloud, vCenter, Kubernetes, Docker and MongoDB Atlas
In the license each AWS account, Azure subscription, Google Cloud project, vCenter and Kubernetes cluster counts as one cloud account / cluster; MongoDB Atlas counts as a data source and a Docker host as a server.
AWS, Azure, Google Cloud and vCenter are Beta; what is read, the cost and the interval are behind the orange i on each catalog card.
AWS
Quick install
- Copy the command, paste it into the terminal and run it. Answer the questions.
curl -fsSL "https://<spitfire>/api/v1/setup/ds/aws.sh?t=<token>" -o /tmp/sf-aws.sh && bash /tmp/sf-aws.sh- When you see
OK: ..., you are done.
Manual install (access key)
- Create the IAM user.
aws iam create-user --user-name spitfire-monitor- Give it the read-only CloudWatch policy.
aws iam put-user-policy --user-name spitfire-monitor --policy-name SpitfireCloudWatchRead --policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["cloudwatch:GetMetricData","cloudwatch:ListMetrics"],"Resource":"*"}]}'- Create its access key.
aws iam create-access-key --user-name spitfire-monitor --query 'AccessKey.[AccessKeyId,SecretAccessKey]' --output text- Add it in Infrastructure sources → AWS CloudWatch.
Regions: eu-central-1 · Access key ID / Secret access key: the two values above · Test → Save- Check the policy.
aws iam list-user-policies --user-name spitfire-monitor --output text | grep -q SpitfireCloudWatchRead && echo "OK: spitfire-monitor reads CloudWatch"Manual install (role, another account)
- Create the role in the monitored account.
aws iam create-role --role-name spitfire-monitor --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::<tower-account-id>:root"},"Action":"sts:AssumeRole","Condition":{"StringEquals":{"sts:ExternalId":"<external-id>"}}}]}'- Give it the read-only CloudWatch policy.
aws iam put-role-policy --role-name spitfire-monitor --policy-name SpitfireCloudWatchRead --policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["cloudwatch:GetMetricData","cloudwatch:ListMetrics"],"Resource":"*"}]}'- Let the Tower's identity assume it (Tower's account).
aws iam put-user-policy --user-name spitfire-monitor --policy-name SpitfireAssumeMonitor --policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"sts:AssumeRole","Resource":"arn:aws:iam::<monitored-account-id>:role/spitfire-monitor"}]}'- Add it in Infrastructure sources → AWS CloudWatch.
Regions · Role ARN: arn:aws:iam::<monitored-account-id>:role/spitfire-monitor · External ID · Test → Save- Check the role (monitored account).
aws iam list-role-policies --role-name spitfire-monitor --output text | grep -q SpitfireCloudWatchRead && echo "OK: spitfire-monitor role reads CloudWatch"Azure
Quick install
- Copy the command, paste it into the terminal and run it. Answer the questions.
curl -fsSL "https://<spitfire>/api/v1/setup/ds/azure.sh?t=<token>" -o /tmp/sf-azure.sh && bash /tmp/sf-azure.shOn Windows, in PowerShell:
Invoke-WebRequest "https://<spitfire>/api/v1/setup/ds/azure.ps1?t=<token>" -OutFile "$env:TEMP\sf-azure.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\sf-azure.ps1"- When you see
OK: ..., you are done.
Manual install
- Sign in to Azure.
az login- Create the service principal with Monitoring Reader.
az ad sp create-for-rbac --name spitfire-monitor --role "Monitoring Reader" --scopes /subscriptions/<subscription-id> --query "{tenant:tenant,appId:appId,password:password}" -o table- Add each further subscription.
az role assignment create --assignee <appId> --role "Monitoring Reader" --scope /subscriptions/<subscription-id-2>- Add it in Infrastructure sources → Azure Monitor.
Tenant ID: tenant · Client (app) ID: appId · Client secret: password · Subscription IDs · Test → Save- Check the role.
az role assignment list --assignee <appId> --all --query "[?roleDefinitionName=='Monitoring Reader'] | length(@)" -o tsv | grep -qv '^0