使用Datadog在docker环境下监控Java, Tomcat, Nginx, Kfaka, ZooKeeper
最近需要使用datadog来监控系统运行情况,由于中间遇到了一些困难,不断的向datadog官方发邮件,幸运的是问题都一一解决了,这里记录一下重要配置方便以后查看:
操作平台:linux ubuntu
docker下面的container有:
server
tomcat
nginx
kafaka
[b]如何只安装一个dd-agent却监测所有的container?[/b]
1. 安装dd-agent container
docker run -d --name dd-agent -h `hostname` -v /var/run/docker.sock:/var/run/docker.sock -v /proc/:/host/proc/:ro -v /cgroup/:/host/sys/fs/cgroup:ro -e API_KEY={your_api_key_here}
datadog/docker-dd-agent
2. 从dd-agent contianer里把cofig里的文件全部拷贝到docker的主机上
docker cp dd-agent:/etc/dd-agent /goeasy/
3. 在docker的主机上 修改conf.d里的配置文件
4. 移除之前创建的dd-agent container
docker rm -f dd-agent
5. 重新启动一个dd-agent且映射conf.d的路径确保每次都从docker主机上读取配置:
sudo weave run 192.168.31.110/24 -d --name dd-agent -h `hostname` -v /goeasy:/goeasy -v /goeasy/dd-agent:/etc/dd-agent -v /var/run/docker.sock:/var/run/docker.sock -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY={your app key} datadog/docker-dd-agent
其中192.168.31.110是我手动设置的dd-agent的IP
[b]如何监测JAVA[/b]
1. 在启动java时加入下列启动参数用来打开JMX remote连接
-Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
2. 在docker host里配置jmx.yaml文件
init_config:
instances: - host: {server服务器的IP的地址} port: 7199 name: jmx_instance java_bin_path: /goeasy/jdk1.8.0_65/bin/java conf: - include: domain: java.lang bean: my_first_bean attribute: attributeName: metric_type: counter alias: jmx.my_first_metric
3. 移除之前创建的dd-agent container
docker rm -f dd-agent
4. 重新启动一个dd-agent且映射conf.d的路径确保每次都从docker主机上读取配置:
sudo weave run 192.168.31.110/24 -d --name dd-agent -h `hostname` -v /goeasy:/goeasy -v /goeasy/dd-agent:/etc/dd-agent -v /var/run/docker.sock:/var/run/docker.sock -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY={your app key} datadog/docker-dd-agent
5. 进入到dd-agent container,且用下面的command来看是否监测成功:
/etc/init.d/datadog/ info
[b]如何监测Tomcat[/b]
1. 在tomcat里配置JMX remote connection (catalina.sh的JAVA_OPTS)
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
2. 在docker host里配置tomcat.yaml文件 (init_config里的配置内容请参考datadog官网)
instances: - host: {tomcat的IP} port: 7199 name: tomcat_instance java_bin_path: /uwantsoft/public/jre1.8.0_60/bin/javainit_config: conf: - include: type: ThreadPool attribute: maxThreads: alias: tomcat.threads.max metric_type: gauge currentThreadCount: alias: tomcat.threads.count metric_type: gauge currentThreadsBusy: alias: tomcat.threads.busy metric_type: gauge
3. 移除之前创建的dd-agent container
docker rm -f dd-agent
4. 重新启动一个dd-agent且映射conf.d的路径确保每次都从docker主机上读取配置:
sudo weave run 192.168.31.110/24 -d --name dd-agent -h `hostname` -v /goeasy:/goeasy -v /goeasy/dd-agent:/etc/dd-agent -v /var/run/docker.sock:/var/run/docker.sock -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY={your app key} datadog/docker-dd-agent
5. 进入到dd-agent container,且用下面的command来看是否监测成功:
/etc/init.d/datadog/ info
[b] 如何监测Nginx[/b]
1. 确保在安装nginx的同时也安装了http_stub_status_module的
安装方法参考:http://xiaoxiaoxiqincai.iteye.com/blog/2270140
2. 修改nginx.yaml
init_config:
instances: # For every instance, you have an `nginx_status_url` and (optionally) # a list of tags.
- nginx_status_url: http://172.17.0.1/nginx_status/ tags: - instance:foo
3. 移除之前创建的dd-agent container
docker rm -f dd-agent
4. 重新启动一个dd-agent且映射conf.d的路径确保每次都从docker主机上读取配置:
sudo weave run 192.168.31.110/24 -d --name dd-agent -h `hostname` -v /goeasy:/goeasy -v /goeasy/dd-agent:/etc/dd-agent -v /var/run/docker.sock:/var/run/docker.sock -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY={your app key} datadog/docker-dd-agent
5. 进入到dd-agent container,且用下面的command来看是否监测成功:
/etc/init.d/datadog/ info
2. 在docker host里配置nginx.yaml
init_config:
instances: # For every instance, you have an `nginx_status_url` and (optionally) # a list of tags.
- nginx_status_url: http://{nginx的IP}/nginx_status/ tags: - instance:foo
[b]如何监测Kafka[/b]
1. 配置kafka,确保JMX remote connection是打开的 (Kafka根目录/bin/kafka-server-start.sh)
修改下面配置:
export KAFKA_HEAP_OPTS="-Xmx512m -Xms512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
2. 配置kafka.yaml文件 (init_config里的配置内容请参考datadog官网)
########### WARNING########### This sample works only for Kafka >= 0.8.2.# If you are running a version older than that, you can refer to agent 5.2.x released# sample files, https://raw.githubusercontent.com/DataDog/dd-agent/5.2.1/conf.d/kafka.yaml.example
instances: - host: {kafka的IP} port: 9999 name: kafka_instance java_bin_path: /uwantsoft/public/jre1.8.0_60/bin/java
init_config: is_jmx: true
# Metrics collected by this check. You should not have to modify this. conf: # # Aggregate cluster stats # - include: domain: 'kafka.server' bean: 'kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec' attribute: MeanRate: metric_type: gauge alias: kafka.net.bytes_out
3. 移除之前创建的dd-agent container
docker rm -f dd-agent
4. 重新启动一个dd-agent且映射conf.d的路径确保每次都从docker主机上读取配置:
sudo weave run 192.168.31.110/24 -d --name dd-agent -h `hostname` -v /goeasy:/goeasy -v /goeasy/dd-agent:/etc/dd-agent -v /var/run/docker.sock:/var/run/docker.sock -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY={your app key} datadog/docker-dd-agent
5. 进入到dd-agent container,且用下面的command来看是否监测成功:
/etc/init.d/datadog/ info
[b]如何监测ZooKeeper[/b]
1. 配置zk.yaml
init_config:
instances: - host: {ZooKeeper的IP} port: 2181 # timeout: 3 # tags: # - optional_tag1 # - optional_tag2
2. 移除之前创建的dd-agent container
docker rm -f dd-agent
3. 重新启动一个dd-agent且映射conf.d的路径确保每次都从docker主机上读取配置:
sudo weave run 192.168.31.110/24 -d --name dd-agent -h `hostname` -v /goeasy:/goeasy -v /goeasy/dd-agent:/etc/dd-agent -v /var/run/docker.sock:/var/run/docker.sock -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY={your app key} datadog/docker-dd-agent
4. 进入到dd-agent container,且用下面的command来看是否监测成功:
/etc/init.d/datadog/ info
[b]如何监测docker[/b]
1. 配置docker.yaml
init_config:
instances: - url: "unix://var/run/docker.sock" new_tag_names: true
2. 移除之前创建的dd-agent container
docker rm -f dd-agent
3. 重新启动一个dd-agent且映射conf.d的路径确保每次都从docker主机上读取配置:
sudo weave run 192.168.31.110/24 -d --name dd-agent -h `hostname` -v /goeasy:/goeasy -v /goeasy/dd-agent:/etc/dd-agent -v /var/run/docker.sock:/var/run/docker.sock -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY={your app key} datadog/docker-dd-agent
4. 进入到dd-agent container,且用下面的command来看是否监测成功:
/etc/init.d/datadog/ info
使用Datadog在docker环境下监控Java, Tomcat, Nginx, Kfaka, ZooKeeper相关推荐
- Docker环境下Java应用的最大内存和堆内存的设置
Docker环境下Java应用的最大内存和堆内存的设置 1. 设置应用允许使用的最大内存 通过docker run(创建一个新的容器并运行)命令中设置-m来进行设置.案例如下所示. docker r ...
- Docker环境下的前后端分离部署与运维 脚本
<Docker环境下的前后端分离部署与运维>脚本 文章目录 <Docker环境下的前后端分离部署与运维>脚本 一.Docker虚拟机常用命令 二.安装PXC集群,负载均衡,双机 ...
- docker 启动命令_Jenkins视频课程在Docker环境下安装Jenkins,命令行如何启动Jenkins...
Tomcat是Apache开发的一款servlet容器,可以提供java服务,作为服务器来使用.Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建.部署.自动化, 满 ...
- php stomp rabbitmq,docker环境下的RabbitMQ部署,Spring AMQP使用
AMQP简介 AMQP,即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦和 ...
- Linux服务器docker环境下Jasper Report报错
Linux服务器docker环境下Jasper Report报错 Jasperreports模板制作方法在网上都有很多教程,可以自行探索一下 我用的模板参考:https://blog.csdn.net ...
- docker环境下安装rockermq以及rockermq-console
docker环境下安装rockermq以及rockermq-console 文章目录 docker环境下安装rockermq以及rockermq-console 1.下载rocketmq的镜像 2.启 ...
- docker环境下docker-compose一键式搭建skywalking链路追踪服务
前言 本节内容我们使用docker-compose一键式搭建一套skywalking链路追踪服务,实现docker环境下的微服务链路追踪监控,在开始本节内容之前,我们需要提前安装好docker和doc ...
- Mac环境下配置Java开发环境(jdk+maven+tomcat+idea)
记录下在Mac环境下配置java开发环境,包括jdk,maven,tomcat和idea 下载及安装jdk 首先到官网下载jdk,这里就用目前官网最新的9.0.4 无脑双击安装就可以: 配置jdk 进 ...
- docker环境下solr6.0配置(中文分词+拼音)
前言:这篇文章是基于之前的"linux环境下配置solr5.3详细步骤"(http://www.cnblogs.com/zhangyuan0532/p/4826740.html)进 ...
最新文章
- 再加力度!浙江抢人!博士补120万,硕士补70万,本科补20万
- 《电路分析导论(原书第12版)》一3.12 热敏电阻
- oracle基础之工具系列(持续更新中,,)
- java条件配置,三、使用JAVA必备条件—环境配置
- 常见Orcale报错问题解决办法
- 哈佛大学计算机科学专,哈佛大学计算机科学专业
- 大数据之Kafka入门简介
- python需要什么包装_python学习之包装与授权
- 缺失值填充1——缺失值查看、确定值填充、参考值填充
- OpenShift 4 之Kafka(2)-配置Kafka Bridge,通过HTTP访问Kafka Topic
- android网络请求库volley方法详解
- 日志分析里面的max是什么_压测nginx出现no live upstreams while connecting to upstream的问题分析...
- R中读取文件,找不到路径问题 No such file or directory
- TRNSYS与MATLAB联合仿真
- VS2019 MFC在静态库运行时出现的LNK2005和LNK1169问题
- golang使用xlsx操纵excel浅析
- 该设备正在使用中,请关闭可能使用该设备的所有程序或窗口,然后重试
- ora-01722 无效数字_错误提示ORA-01722: 无效数字一例
- Excel-VBA:“银行家舍入” 与“国际标准的四舍五入”
- 如何在网页端登录企业邮箱修改密码?
热门文章
- 网络接口卡更换为计算机网卡,电信宽带从100兆升200兆,需要换路由器和全部的网线吗?该如何处理呢?...
- 程序员初学者如何自学编程
- 论文阅读------Stochastic Gradient Descent with Differentially Private updates
- 多目标优化-测试问题及其Pareto前沿
- 让心灵插上翅膀自由飞翔——之北戴河
- 工厂IT人员如何自学ERP系统
- 2022-2028全球隔离式CAN收发器行业调研及趋势分析报告
- 初涉网络,自己对服务器的一些基础理解
- Ubuntu使用WPS打开文档出现缺失字体情况解决方法
- 二维码支付码的工作原理那点事