Я хотел бы контролировать свое приложение с помощью Prometheus и Grafana, работающего в Docker на AWS Elastic Beanstalk, но у меня есть проблемы с его правильным развертыванием.
Вот мой Dockerrun.aws.json
:
{
"AWSEBDockerrunVersion": "2",
"volumes": [
{
"name": "prometheus-conf",
"host": {
"sourcePath": "/var/app/current/prometheus"
}
}
],
"containerDefinitions": [
{
"name": "prometheus-app",
"image": "prom/prometheus",
"essential": true,
"memory": 512,
"portMappings": [
{
"hostPort": 9090,
"containerPort": 9090
}
],
"mountPoints": [
{
"sourceVolume": "prometheus-conf",
"containerPath": "/opt/prometheus"
}
],
"command": [
"--config.file=/opt/prometheus/prometheus.yml"
]
},
{
"name": "grafana",
"image": "grafana/grafana",
"essential": true,
"memory": 256,
"links": [
"prometheus-app"
],
"portMappings": [
{
"hostPort": 3000,
"containerPort": 3000
}
]
}
]
}
Вот моя папка prometheus.yml
в prometheus
:
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
scrape_configs:
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'jParser'
static_configs:
- targets: ['jParser.fpemryt2er.us-east-2.elasticbeanstalk.com']
Когда я запускаю ее локально с eb local run
в eb cli
, все работает нормально, я могу получить доступ к Prometheus на localhost:9090
и grafana на localhost:3000
.
Когда я внедряю его в AWS Elastic Beanstalk с eb deploy
, процесс успешно завершается, и я вижу экземпляр на моей панели инструментов, но в минутное состояние OK
переключается наSevere
с сообщением Environment health has transitioned from Ok to Severe. ELB health is failing or not available for all instances.
и 100.0 % of the requests to the ELB are failing with HTTP 5xx (10 minutes ago)
:
Но когда я смотрю на этот экземпляр в консоли управления EC2, он показывает, чтоЭкземпляр работает без проблем:
В моей консоли определений задач я также вижу Prometheus и Grafana, работающие без проблем:
Но в любом случае, я не могу достичь ни Прометея нетr Графана, введя EBl +: порт, например: jd-env.8myne2inmq.us-west-2.elasticbeanstalk.com:9090
.Я также пытался использовать общедоступные DNS и IP, показанные в консоли EC2, но это тоже не работает.
В моем loadbalancer я открыл порты 9090 и 3000:
Пожалуйста, помогите мне заставить эти приложения работать.