仮想マシン上で実行中の新しいsensu / uchiwaスタックがあります。これは「スタンドアロン」インストールです。redis、rabbitmq、sensu-server、sensu-api、sensu-client、uchiwaはすべて同じマシンにインストールされます。client.jsonがサブスクライブする単一のチェックがあります。
要するに、何かが間違っているように見えます。uchiwaダッシュボードにログインすると、「Datacenter sensu-81が返されました:500 INTERNAL SERVER ERROR」という警告メッセージが表示されます。
sensu-client
、sensu-api
およびsensu-server
ログは、これらのメッセージのみこれらのメッセージで満たされています。
==> /var/log/sensu/sensu-api.log <==
{"timestamp":"2017-05-11T21:00:34.758243+0000","level":"warn","message":"transport connection error","reason":"tcp connection lost"}
{"timestamp":"2017-05-11T21:00:34.758784+0000","level":"warn","message":"transport connection error","reason":"possible authentication failure. wrong credentials?","user":"sensu"}
==> /var/log/sensu/sensu-client.log <==
{"timestamp":"2017-05-11T21:00:35.973060+0000","level":"warn","message":"transport connection error","reason":"tcp connection lost"}
{"timestamp":"2017-05-11T21:00:35.974858+0000","level":"warn","message":"transport connection error","reason":"possible authentication failure. wrong credentials?","user":"sensu"}
==> /var/log/sensu/sensu-server.log <==
{"timestamp":"2017-05-11T21:00:37.489540+0000","level":"warn","message":"transport connection error","reason":"tcp connection lost"}
{"timestamp":"2017-05-11T21:00:37.489704+0000","level":"warn","message":"transport connection error","reason":"possible authentication failure. wrong credentials?","user":"sensu"}
トランスポート層への接続にエラーがあることを示唆しているので、transport.jsonが期待どおりに構成されていることを確認しました(それはsensuのデフォルトです)。
{
"transport": {
"name": "rabbitmq",
"reconnect_on_error": true
}
}
そこで、sensuのrabbitmq.jsonをチェックして、期待どおりに構成されていることを確認しました。(注:hostsファイルに、monitorを127.0.0.1に変換する行があります。IPv6で問題が発生する「localhost」の使用に関する問題を認識しているため、hostsファイルが「monitor」を127.0にマップしていることを再確認しました。 0.1)。これらの資格情報が機能していることをさらに確認するために、rabbitmq Webベースの管理をオンにし、これらの資格情報を使用して正常にログインしました。
{
"rabbitmq": {
"ssl": {
"cert_chain_file": "/etc/sensu/ssl/cert.pem",
"private_key_file": "/etc/sensu/ssl/key.pem"
},
"host": "monitor",
"port": 5671,
"vhost": "/sensu",
"user": "sensu",
"password": "sensu"
}
}
また、rabbitmq自体の構成が期待どおりであることも確認しました(SSLがオンになっているなど)。
[
{rabbit, [
{ssl_listeners, [5671]},
{ssl_options, [{cacertfile,"/etc/rabbitmq/ssl/cacert.pem"},
{certfile,"/etc/rabbitmq/ssl/cert.pem"},
{keyfile,"/etc/rabbitmq/ssl/key.pem"},
{verify,verify_peer},
{fail_if_no_peer_cert,true}]}
]}
].
どこでデバッグを続けるべきか途方に暮れています。
また、api.jsonとuchiwa.jsonの構成ファイルをチェックして、一致する資格情報があることを確認しました。
api.json:
{
"api": {
"host": "monitor",
"port": 4567,
"user": "admin",
"password": "secret"
}
}
uchiwa.json:
{
"sensu": [
{
"name": "",
"host": "monitor",
"ssl": false,
"port": 4567,
"user": "admin",
"pass": "secret",
"path": "",
"timeout": 5000
}
],
"uchiwa": {
"users": [
{
"password": "admin",
"username": "admin"
}
],
"port": 3000,
"refresh": 5
}
}
ボックス内から直接sensu apiと通信しようとすると、500エラーも発生します。
vagrant@vagrant-ubuntu-trusty-64:/etc/default$ curl -I http://localhost:4567/stashes -u admin
Enter host password for user 'admin':
HTTP/1.1 500 Internal Server Error
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin: *
Connection: close
Content-length: 0