[英]Error Setting up Containerized Sensu-server and client, to monitor Docker
我正在按照這篇文章上的說明嘗試設置sensu-server來監視我的docker容器。
Docker守護程序在具有sensu-server和sensu-clients(localhost)的同一主機上運行。
文件check-docker,包含一個調用腳本load-docker-metrics.sh的條目。
檢查docker.sh
{
"checks": {
"load_docker_metrics": {
"type": "metric",
"command": "load-docker-metrics.sh",
"subscribers": [
"docker"
],
"interval": 10
}
}
}
load-docker-metrics.sh
#!/bin/bash
set -e
# Count all running containers
running_containers=$(echo -e "GET /containers/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock \
| tail -n +5 \
| python -m json.tool \
| grep \"Id\" \
| wc -l)
# Count all containers
total_containers=$(echo -e "GET /containers/json?all=1 HTTP/1.0\r\n" | nc -U /var/run/docker.sock \
| tail -n +5 \
| python -m json.tool \
| grep \"Id\" \
| wc -l)
# Count all images
total_images=$(echo -e "GET /images/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock \
| tail -n +5 \
| python -m json.tool \
| grep \"Id\" \
| wc -l)
echo "docker.invismac.running_containers ${running_containers}"
echo "docker.invismac.total_containers ${total_containers}"
echo "docker.invismac.total_images ${total_images}"
if [ ${running_containers} -lt 3 ]; then
exit 1;
fi
load-docker-metrics基本上是對docker api進行一些調用,並檢索一些指標。 如果我在主機(invismac)上運行此腳本,它將為我提供准確的結果:
docker.invismac.running_containers 7
docker.invismac.total_containers 8
docker.invismac.total_images 15
我使用以下命令啟動sensu-server容器:
docker run -d --name sensu-server \\ -p 3000:3000 \\ -p 4567:4567 \\ -p 5671:5671 \\ -p 15672:15672 \\ -v $ PWD / check-docker.json:/ etc / sensu /conf.d/check-docker.json \\ hiroakis / docker-sensu-server
之后,我可以正確訪問uchima儀表板,端口3000
然后,使用以下命令啟動客戶端:
docker run --name sensu-client --privileged \\ -v $ PWD / load-docker-metrics.sh:/etc/sensu/plugins/load-docker-metrics.sh \\ -v /var/run/docker.sock :/var/run/docker.sock \\ usman / sensu-client localhost sensu密碼CLIENT-1 localhost
客戶端應該與RabbitMQ進行通信,並在uchima中注冊自己,但沒有任何反應。 我進入了運行客戶端的容器,通過查看日志,rabbitMQ似乎出現錯誤:
“ timestamp”:“ 2016-04-15T15:18:50.768594 + 0000”,“ level”:“錯誤”,“ message”:“ [amqp]檢測到TCP連接失敗”}
Rabbitmq正在運行,我可以在這里訪問其端點:
儀表板向我提供了一些信息:我有2個連接,2個通道,2個用戶。
另外,如果我轉到sensu-master容器,則可以檢查Rabbitmq是否具有該用戶:
sensu [管理員]
具有所有權限:
/ sensu。*。*。*
有任何想法為何sensu客戶端無法與RabbitMQ通信? 我可以嘗試其他檢查嗎? 我在服務器或客戶端的配置上傳遞了一些錯誤的值嗎? 服務器和客戶端不能在同一主機中?
客戶端上的dmesg也給我此消息(我不知道它是否可能相關)
[29252.322147]審核:類型= 1400審核(1460734746.650:975):apparmor =“ DENIED” operation =“ ptrace” profile =“ docker-default” pid = 27531 comm =“ ps” required_mask =“ trace”遭到拒絕的mask =“ trace” peer =“ unconfined”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.