`

使用Datadog在docker环境下监控Java, Tomcat, Nginx, Kfaka, ZooKeeper

阅读更多
最近需要使用datadog来监控系统运行情况,由于中间遇到了一些困难,不断的向datadog官方发邮件,幸运的是问题都一一解决了,这里记录一下重要配置方便以后查看:

操作平台:linux ubuntu
docker下面的container有:
server
tomcat
nginx
kafaka

如何只安装一个dd-agent却监测所有的container?
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

如何监测JAVA
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


如何监测Tomcat
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/java
init_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

如何监测Nginx
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



如何监测Kafka
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

如何监测ZooKeeper
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

如何监测docker

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
分享到:
评论

相关推荐

    docker中基本镜像的安装和使用

    docker中包含centos,docker容器配置,java相关配置,mysql,nginx,python,tomcat,zookeeper的安装和基本使用

    Dubbo+Zookeeper+Tomcat.rar

    下面我们将详细探讨如何在Linux环境中搭建Dubbo+Zookeeper环境,并结合Tomcat进行应用部署。 首先,我们需要了解如何在Linux系统上安装Zookeeper。Zookeeper的安装通常包括下载源码、编译、配置和启动四个步骤。...

    docker快速构建disconf镜像

    准备mysql, tomcat, nginx的Dockerfile文件,用于生成定制的镜像 redis,zookeeper 镜像直接从云端获取。 打开终端进入tomcat目录,执行: docker build -t conf_tomcat:0.0.1 . 再进入nginx目录,执行: docker ...

    Java-web环境所需软件

    9. **容器和服务发现**: 在分布式环境中,如Docker容器化和Kubernetes集群中,服务发现机制如Consul、Zookeeper或Eureka可以帮助定位和管理运行中的服务。 10. **安全配置**: Java-web应用的安全性是关键,需要关注...

    Zabbix监控第三方中间件内存及CPU使用情况模板

    Zabbix监控第三方中间件内存及CPU使用情况模板 nginx redis mysql tomcat Rocketmq mongodb kafka zookeeper httpd elasticsearch jenkins hbase hadoop hive docker

    Linux搭建服务器需要的文件.7z

    本资料包包含了在CentOS系统上搭建常用服务所需的软件,包括Tomcat 8、JDK 1.8、Nginx 1.14.2、Redis 5.0.5以及Zookeeper 3.4.14。下面将详细解释这些组件的功能、安装步骤及其在服务器环境中的作用。 1. **JDK 1.8...

    linux编程环境和软件工具安装手册

    Linux编程环境和软件工具安装手册 本文档旨在提供一个详细的Linux编程环境和软件工具安装手册,涵盖了从基本的编程环境设置到高级的软件工具安装的所有内容。 一、编程环境设置 1.1 安装Java环境 * 下载JDK...

    大型网站系统与JAVA中间件实战

    11. **分布式一致性解决方案**:Zookeeper、Etcd等,它们在分布式环境中提供服务注册与发现、配置管理和分布式锁等服务。 12. **监控与日志**:如ELK(Elasticsearch、Logstash、Kibana)日志收集分析系统,以及...

    服务器常用编程环境+软件部署手册

    在服务器上,常用的编程环境包括Java、Python、Node.js等。这其中,Java是最常用的编程语言之一,需要安装JDK(Java Development Kit)来提供 Java 运行时环境。Java有多种实现,如OpenJDK、JDK等。Node.js是基于...

    JavaEE求职简历-姓名-JAVA开发工程师-3年经验.docx

    在服务器管理上,他能熟练操作Apache、Nginx、Tomcat等Web服务器,处理服务器整合、集群和负载均衡,利用Zookeeper实现分布式锁。 开发工具方面,他熟练使用Axure进行产品原型设计,PowerDesigner进行数据建模,...

    Docker操作说明文档.doc

    Docker从零开始操作文档,包含docker安装、防火墙操作、本地仓库registry、nginx安装使用、tomcat安装使用、mysql安装使用、ftp安装使用、zookeeper安装使用、oracle安装使用、redis安装使用、jdk安装使用、nexus...

    docker-compose-linux

    docker-compose-linux,包含以下 activemq,baidupcs-web,canal,confluence,couchbase,efk,elasticsearch,elk,elkf,fastdfs,filebeat,flowable,gitlab...sonarqube,tomcat,walle,xxl-job,yapi,yearning,zipkin,zookeeper

    Java精选面试题,题库非常全面,累计 20000+ 道面试题

    包括Java基础、Java集合、Java并发、JVM、Java WEB、设计模式、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、消息队列、网络编程、MYSQL、Linux、Dubbo、Redis、Netty、Elasticsearch、Docker、...

    Java高级架构必备知识点

    - **Zookeeper Java API的使用及实践**:使用Zookeeper Java API进行开发实践。 **7.17 从集中式到分布式架构** - **分布式架构的演进过程**:了解分布式架构的发展历程。 - **分布式架构的基石-TCP/UDP**:深入...

    JAVA开发编程环境安装手册.zip

    1.Linux系统环境安装 2.Git 3.JDK 4.Node 5.Python 6.Maven 7.MySQL 8.Redis 9.RabbitMQ 10.Tomcat 11.Nginx 12.Docker 13.Kubernetes 14.ElasticSearch 15.ZooKeeper 16.Kafka

    Java3年后端工程师简历模板

    在项目一“百欣办公网”中,他运用了Spring Boot+Spring Cloud全家桶进行微服务架构,通过Nginx进行负载均衡,使用Eureka进行服务注册和发现,实现了商品检索、SSO登录、订单管理和支付等多个系统的高效协同。...

    编程环境和软件工具安装手册

    编程环境和软件工具安装手册,各种环境安装,包括...应⽤服务器Tomcat安装部署,Web服务器Nginx安装部署,Docker环境安装,Kubernetes集群部署,ElasticSearch集群部署,ZooKeeper安装部署,消息队列Kafka安装部署等

    大型网站系统与JAVA中间件实践

    3. **容器管理**:例如Docker和Kubernetes,它们为应用程序提供容器化部署环境,实现快速、可移植和可伸缩的部署。 4. **负载均衡器**:如HAProxy和NGINX Plus,它们自动分配进来的网络流量,确保服务的高可用性和...

    在linux系统中搭建javaWeb所需软件手册.zip

    此手册收纳了包括linux系统的安装,以及在linux系统中安装git,jdk,node.js,python,Maven,mysql,redis,tomcat,docker,nginx,rabbtiMq,zookeeper,kafka等软件。该手册还携带了大量的视频链接,绝对的好...

Global site tag (gtag.js) - Google Analytics