0

sensuインフラストラクチャをドッキングしています。チェックの実行以外はすべてうまくいきます。

この構造 (docker-compose.yml) に従って docker-compose を使用しています。

sensu-core:
    build: sensu-core/
    links:
            - redis
            - rabbitmq
sensors-production:
    build: sensors-production/
    links:
            - rabbitmq
uchiwa:
    build: sensu-uchiwa
    links:
            - sensu-core
    ports:
            - "3000:3000"
rabbitmq:
    build: rabbitmq/
redis:
    image: redis
    command: redis-server

私の rabbitmq Dockerfile は非常に単純です。

FROM ubuntu:latest

RUN apt-get -y install wget
RUN wget http://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
RUN dpkg -i erlang-solutions_1.0_all.deb

RUN wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
RUN apt-key add rabbitmq-signing-key-public.asc
RUN echo "deb     http://www.rabbitmq.com/debian/ testing main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

RUN apt-get update
RUN apt-get -y install erlang rabbitmq-server

CMD /etc/init.d/rabbitmq-server start && \
    rabbitmqctl add_vhost /sensu && \
    rabbitmqctl add_user sensu secret && \
    rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*" && \
    cd /var/log/rabbitmq/ && \
    ls -1 * | xargs tail -f

うちわの Dockerfile も同様です。

FROM podbox/sensu

RUN apt-get -y install uchiwa

RUN echo ' \
{ \
  "sensu": [ \
    { \
      "name": "Sensu", \
      "host": "sensu-core", \
      "port": 4567, \
      "timeout": 5 \
    } \
  ], \
  "uchiwa": { \
    "host": "0.0.0.0", \
    "port": 3000, \
    "interval": 5 \
  } \
}' > /etc/sensu/uchiwa.json

EXPOSE 3000

CMD /etc/init.d/uchiwa start && \
    tail -f /var/log/uchiwa.log

Sensu コアは sensu-server と sensu-api を実行します。彼の dockerfile は次のとおりです。

FROM podbox/sensu

RUN apt-get -y install sensu

RUN echo '{ \
  "rabbitmq": { \
    "host": "rabbitmq", \
    "vhost": "/sensu", \
    "user": "sensu", \
    "password": "secret" \
  }, \
  "redis": { \
    "host": "redis", \
    "port": 6379 \
  }, \
  "api": { \
    "host": "localhost", \
    "port": 4567 \
  } \
}' >> /etc/sensu/config.json

CMD /etc/init.d/sensu-server start && \
    /etc/init.d/sensu-api start && \
    tail -f /var/log/sensu/sensu-server.log -f /var/log/sensu-api.log

sensor-production は、ダム メトリックとともに sensu-client を実行します。これが彼の Dockerfile です。

FROM podbox/sensu

RUN apt-get -y install sensu

RUN echo '{ \
  "rabbitmq": { \
    "host": "rabbitmq", \
    "vhost": "/sensu", \
    "user": "sensu", \
    "password": "secret" \
  } \
}' >> /etc/sensu/config.json
RUN mkdir -p /etc/sensu/conf.d
RUN echo '{ \
  "client": { \
    "name": "wise_oracle", \
    "address": "prod_sensors", \
    "subscriptions": [ \
      "web", "aws" \
    ] \
  } \
' >> /etc/sensu/conf.d/client.json

RUN echo '{ \
  "checks": { \
    "dumb": { \
      "command": "ls", \
      "subscribers": [ \
    "web" \
      ], \
      "interval": 10 \
    } \
  } \
}' >> /etc/sensu/conf.d/dumb.json

CMD /etc/init.d/sensu-client start && \
    tail -f /var/log/sensu/sensu-client.log

docker-compose up -d を実行すると、すべてうまくいきます。ログにエラーはありません。うちわのダッシュボードにアクセスでき、定義されたクライアントが問題なく表示されます (キープアライブ リクエストは問題ないようです)。ただし、チェックはありません。

sensu サーバーが実行するチェックがないと見なしているかのように、チェック要求/チェック結果がログに存在しないことに気付きました。とはいえ、それがなぜなのかはわかりません。

誰かが何が起こっているのかもっと正確に教えてもらえますか? ありがとうございました。

4

1 に答える 1