最近需要使用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相关推荐

  1. Docker环境下Java应用的最大内存和堆内存的设置

    Docker环境下Java应用的最大内存和堆内存的设置 1.  设置应用允许使用的最大内存 通过docker run(创建一个新的容器并运行)命令中设置-m来进行设置.案例如下所示. docker r ...

  2. Docker环境下的前后端分离部署与运维 脚本

    <Docker环境下的前后端分离部署与运维>脚本 文章目录 <Docker环境下的前后端分离部署与运维>脚本 一.Docker虚拟机常用命令 二.安装PXC集群,负载均衡,双机 ...

  3. docker 启动命令_Jenkins视频课程在Docker环境下安装Jenkins,命令行如何启动Jenkins...

    Tomcat是Apache开发的一款servlet容器,可以提供java服务,作为服务器来使用.Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建.部署.自动化, 满 ...

  4. php stomp rabbitmq,docker环境下的RabbitMQ部署,Spring AMQP使用

    AMQP简介 AMQP,即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦和 ...

  5. Linux服务器docker环境下Jasper Report报错

    Linux服务器docker环境下Jasper Report报错 Jasperreports模板制作方法在网上都有很多教程,可以自行探索一下 我用的模板参考:https://blog.csdn.net ...

  6. docker环境下安装rockermq以及rockermq-console

    docker环境下安装rockermq以及rockermq-console 文章目录 docker环境下安装rockermq以及rockermq-console 1.下载rocketmq的镜像 2.启 ...

  7. docker环境下docker-compose一键式搭建skywalking链路追踪服务

    前言 本节内容我们使用docker-compose一键式搭建一套skywalking链路追踪服务,实现docker环境下的微服务链路追踪监控,在开始本节内容之前,我们需要提前安装好docker和doc ...

  8. Mac环境下配置Java开发环境(jdk+maven+tomcat+idea)

    记录下在Mac环境下配置java开发环境,包括jdk,maven,tomcat和idea 下载及安装jdk 首先到官网下载jdk,这里就用目前官网最新的9.0.4 无脑双击安装就可以: 配置jdk 进 ...

  9. docker环境下solr6.0配置(中文分词+拼音)

    前言:这篇文章是基于之前的"linux环境下配置solr5.3详细步骤"(http://www.cnblogs.com/zhangyuan0532/p/4826740.html)进 ...

最新文章

  1. 再加力度!浙江抢人!博士补120万,硕士补70万,本科补20万
  2. 《电路分析导论(原书第12版)》一3.12 热敏电阻
  3. oracle基础之工具系列(持续更新中,,)
  4. java条件配置,三、使用JAVA必备条件—环境配置
  5. 常见Orcale报错问题解决办法
  6. 哈佛大学计算机科学专,哈佛大学计算机科学专业
  7. 大数据之Kafka入门简介
  8. python需要什么包装_python学习之包装与授权
  9. 缺失值填充1——缺失值查看、确定值填充、参考值填充
  10. OpenShift 4 之Kafka(2)-配置Kafka Bridge,通过HTTP访问Kafka Topic
  11. android网络请求库volley方法详解
  12. 日志分析里面的max是什么_压测nginx出现no live upstreams while connecting to upstream的问题分析...
  13. R中读取文件,找不到路径问题 No such file or directory
  14. TRNSYS与MATLAB联合仿真
  15. VS2019 MFC在静态库运行时出现的LNK2005和LNK1169问题
  16. golang使用xlsx操纵excel浅析
  17. 该设备正在使用中,请关闭可能使用该设备的所有程序或窗口,然后重试
  18. ora-01722 无效数字_错误提示ORA-01722: 无效数字一例
  19. Excel-VBA:“银行家舍入” 与“国际标准的四舍五入”
  20. 如何在网页端登录企业邮箱修改密码?

热门文章

  1. 网络接口卡更换为计算机网卡,电信宽带从100兆升200兆,需要换路由器和全部的网线吗?该如何处理呢?...
  2. 程序员初学者如何自学编程
  3. 论文阅读------Stochastic Gradient Descent with Differentially Private updates
  4. 多目标优化-测试问题及其Pareto前沿
  5. 让心灵插上翅膀自由飞翔——之北戴河
  6. 工厂IT人员如何自学ERP系统
  7. 2022-2028全球隔离式CAN收发器行业调研及趋势分析报告
  8. 初涉网络,自己对服务器的一些基础理解
  9. Ubuntu使用WPS打开文档出现缺失字体情况解决方法
  10. 二维码支付码的工作原理那点事