zipkin的安装与搭建

  • A+
所属分类:Linux

zipkin是分布式链路调用监控系统,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。

下载与部署

  1. wget -O zipkin.jar 'https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec'

jar中yaml文件配置

  1. zipkin:
  2.   self-tracing:
  3.     # Set to true to enable self-tracing.
  4.     enabled: ${SELF_TRACING_ENABLED:false}
  5.     # percentage to self-traces to retain
  6.     sample-rate: ${SELF_TRACING_SAMPLE_RATE:1.0}
  7.     # Timeout in seconds to flush self-tracing data to storage.
  8.     message-timeout: ${SELF_TRACING_FLUSH_INTERVAL:1}
  9.   collector:
  10.     # percentage to traces to retain
  11.     sample-rate: ${COLLECTOR_SAMPLE_RATE:1.0}
  12.     http:
  13.       # Set to false to disable creation of spans via HTTP collector API
  14.       enabled: ${HTTP_COLLECTOR_ENABLED:true}
  15.     kafka:
  16.       # ZooKeeper host string, comma-separated host:port value.
  17.       zookeeper: ${KAFKA_ZOOKEEPER:}
  18.       # Name of topic to poll for spans
  19.       topic: ${KAFKA_TOPIC:zipkin}
  20.       # Consumer group this process is consuming on behalf of.
  21.       group-id: ${KAFKA_GROUP_ID:zipkin}
  22.       # Count of consumer threads consuming the topic
  23.       streams: ${KAFKA_STREAMS:1}
  24.       # Maximum size of a message containing spans in bytes
  25.       max-message-size: ${KAFKA_MAX_MESSAGE_SIZE:1048576}
  26.     rabbitmq:
  27.       # RabbitMQ server address list (comma-separated list of host:port)
  28.       addresses: ${RABBIT_ADDRESSES:}
  29.       concurrency: ${RABBIT_CONCURRENCY:1}
  30.       # TCP connection timeout in milliseconds
  31.       connection-timeout: ${RABBIT_CONNECTION_TIMEOUT:60000}
  32.       password: ${RABBIT_PASSWORD:guest}
  33.       queue: ${RABBIT_QUEUE:zipkin}
  34.       username: ${RABBIT_USER:guest}
  35.       virtual-host: ${RABBIT_VIRTUAL_HOST:/}
  36.       useSsl: ${RABBIT_USE_SSL:false}
  37.       uri: ${RABBIT_URI:}
  38.   query:
  39.     enabled: ${QUERY_ENABLED:true}
  40.     # 1 day in millis
  41.     lookback: ${QUERY_LOOKBACK:86400000}
  42.     # The Cache-Control max-age (seconds) for /api/v1/services and /api/v1/spans
  43.     names-max-age: 300
  44.     # CORS allowed-origins.
  45.     allowed-origins: "*"
  46.   storage:
  47.     strict-trace-id: ${STRICT_TRACE_ID:true}
  48.     search-enabled: ${SEARCH_ENABLED:true}
  49.     type: ${STORAGE_TYPE:mem}
  50.     mem:
  51.       # Maximum number of spans to keep in memory.  When exceeded, oldest traces (and their spans) will be purged.
  52.       # A safe estimate is 1K of memory per span (each span with 2 annotations + 1 binary annotation), plus
  53.       # 100 MB for a safety buffer.  You'll need to verify in your own environment.
  54.       # Experimentally, it works with: max-spans of 500000 with JRE argument -Xmx600m.
  55.       max-spans: 500000
  56.     cassandra:
  57.       # Comma separated list of host addresses part of Cassandra cluster. Ports default to 9042 but you can also specify a custom port with 'host:port'.
  58.       contact-points: ${CASSANDRA_CONTACT_POINTS:localhost}
  59.       # Name of the datacenter that will be considered "local" for latency load balancing. When unset, load-balancing is round-robin.
  60.       local-dc: ${CASSANDRA_LOCAL_DC:}
  61.       # Will throw an exception on startup if authentication fails.
  62.       username: ${CASSANDRA_USERNAME:}
  63.       password: ${CASSANDRA_PASSWORD:}
  64.       keyspace: ${CASSANDRA_KEYSPACE:zipkin}
  65.       # Max pooled connections per datacenter-local host.
  66.       max-connections: ${CASSANDRA_MAX_CONNECTIONS:8}
  67.       # Ensuring that schema exists, if enabled tries to execute script /zipkin-cassandra-core/resources/cassandra-schema-cql3.txt.
  68.       ensure-schema: ${CASSANDRA_ENSURE_SCHEMA:true}
  69.       # 7 days in seconds
  70.       span-ttl: ${CASSANDRA_SPAN_TTL:604800}
  71.       # 3 days in seconds
  72.       index-ttl: ${CASSANDRA_INDEX_TTL:259200}
  73.       # the maximum trace index metadata entries to cache
  74.       index-cache-max: ${CASSANDRA_INDEX_CACHE_MAX:100000}
  75.       # how long to cache index metadata about a trace. 1 minute in seconds
  76.       index-cache-ttl: ${CASSANDRA_INDEX_CACHE_TTL:60}
  77.       # how many more index rows to fetch than the user-supplied query limit
  78.       index-fetch-multiplier: ${CASSANDRA_INDEX_FETCH_MULTIPLIER:3}
  79.       # Using ssl for connection, rely on Keystore
  80.       use-ssl: ${CASSANDRA_USE_SSL:false}
  81.     cassandra3:
  82.       # Comma separated list of host addresses part of Cassandra cluster. Ports default to 9042 but you can also specify a custom port with 'host:port'.
  83.       contact-points: ${CASSANDRA_CONTACT_POINTS:localhost}
  84.       # Name of the datacenter that will be considered "local" for latency load balancing. When unset, load-balancing is round-robin.
  85.       local-dc: ${CASSANDRA_LOCAL_DC:}
  86.       # Will throw an exception on startup if authentication fails.
  87.       username: ${CASSANDRA_USERNAME:}
  88.       password: ${CASSANDRA_PASSWORD:}
  89.       keyspace: ${CASSANDRA_KEYSPACE:zipkin2}
  90.       # Max pooled connections per datacenter-local host.
  91.       max-connections: ${CASSANDRA_MAX_CONNECTIONS:8}
  92.       # Ensuring that schema exists, if enabled tries to execute script /zipkin2-schema.cql
  93.       ensure-schema: ${CASSANDRA_ENSURE_SCHEMA:true}
  94.       # how many more index rows to fetch than the user-supplied query limit
  95.       index-fetch-multiplier: ${CASSANDRA_INDEX_FETCH_MULTIPLIER:3}
  96.       # Using ssl for connection, rely on Keystore
  97.       use-ssl: ${CASSANDRA_USE_SSL:false}
  98.     elasticsearch:
  99.       # host is left unset intentionally, to defer the decision
  100.       hosts: ${ES_HOSTS:}
  101.       pipeline: ${ES_PIPELINE:}
  102.       max-requests: ${ES_MAX_REQUESTS:64}
  103.       timeout: ${ES_TIMEOUT:10000}
  104.       aws:
  105.         domain: ${ES_AWS_DOMAIN:}
  106.         region: ${ES_AWS_REGION:}
  107.       index: ${ES_INDEX:zipkin}
  108.       date-separator: ${ES_DATE_SEPARATOR:-}
  109.       index-shards: ${ES_INDEX_SHARDS:5}
  110.       index-replicas: ${ES_INDEX_REPLICAS:1}
  111.       username: ${ES_USERNAME:}
  112.       password: ${ES_PASSWORD:}
  113.       http-logging: ${ES_HTTP_LOGGING:}
  114.       legacy-reads-enabled: ${ES_LEGACY_READS_ENABLED:true}
  115.     mysql:
  116.       host: ${MYSQL_HOST:localhost}
  117.       port: ${MYSQL_TCP_PORT:3306}
  118.       username: ${MYSQL_USER:}
  119.       password: ${MYSQL_PASS:}
  120.       db: ${MYSQL_DB:zipkin}
  121.       max-active: ${MYSQL_MAX_CONNECTIONS:10}
  122.       use-ssl: ${MYSQL_USE_SSL:false}
  123.   ui:
  124.     enabled: ${QUERY_ENABLED:true}
  125.     ## Values below here are mapped to ZipkinUiProperties, served as /config.json
  126.     # Default limit for Find Traces
  127.     query-limit: 10
  128.     # The value here becomes a label in the top-right corner
  129.     environment:
  130.     # Default duration to look back when finding traces.
  131.     # Affects the "Start time" element in the UI. 1 hour in millis
  132.     default-lookback: 3600000
  133.     # When false, disables the "find a trace" screen
  134.     search-enabled: ${SEARCH_ENABLED:true}
  135.     # Which sites this Zipkin UI covers. Regex syntax. (e.g. http:\/\/example.com\/.*)
  136.     # Multiple sites can be specified, e.g.
  137.     # - .*example1.com
  138.     # - .*example2.com
  139.     # Default is "match all websites"
  140.     instrumented: .*
  141.     # URL placed into the <base> tag in the HTML
  142.     base-path: /zipkin/
  143. server:
  144.   port: ${QUERY_PORT:9411}
  145.   use-forward-headers: true
  146.   compression:
  147.     enabled: true
  148.     # compresses any response over min-response-size (default is 2KiB)
  149.     # Includes dynamic json content and large static assets from zipkin-ui
  150.     mime-types: application/json,application/javascript,text/css,image/svg
  151. spring:
  152.   mvc:
  153.     favicon:
  154.       # zipkin has its own favicon
  155.       enabled: false
  156.   autoconfigure:
  157.     exclude:
  158.       # otherwise we might initialize even when not needed (ex when storage type is cassandra)
  159.       - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
  160. info:
  161.   zipkin:
  162.     version: "2.7.1"
  163. logging:
  164.   pattern:
  165.     level: "%clr(%5p) %clr([%X{traceId}/%X{spanId}]){yellow}"
  166.   level:
  167.     # Silence Invalid method name: '__can__finagle__trace__v3__'
  168.     com.facebook.swift.service.ThriftServiceProcessor: 'OFF'
  169. #     # investigate /api/v1/dependencies or /api/v2/dependencies
  170. #     zipkin2.internal.DependencyLinker: 'DEBUG'
  171. #     # log cassandra queries (DEBUG is without values)
  172. #     com.datastax.driver.core.QueryLogger: 'TRACE'
  173. #     # log cassandra trace propagation
  174. #     com.datastax.driver.core.Message: 'TRACE'
  175. #     # log reason behind http collector dropped messages
  176. #     zipkin.server.ZipkinHttpCollector: 'DEBUG'
  177. #     zipkin.collector.kafka.KafkaCollector: 'DEBUG'
  178. #     zipkin.collector.kafka10.KafkaCollector: 'DEBUG'
  179. #     zipkin.collector.rabbitmq.RabbitMQCollector: 'DEBUG'
  180. #     zipkin.collector.scribe.ScribeCollector: 'DEBUG'
  181. management:
  182.   security:
  183.     # do not lock-down metrics by default
  184.     # https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.5-Release-Notes#actuator-security
  185.     enabled: false

启动传入并参数

  1. java -Dzipkin.collector.kafka.overrides.auto.offset.reset=largest -DSTORAGE_TYPE=elasticsearch -DES_HOSTS=http://10.1.1.2:9200,http://10.1.1.3:9200,http://10.1.1.4:9200,http://10.1.1.5:9200 -jar /usr/local/zipkin/zipkin.jar  -DKAFKA_TOPIC=log4go -DKAFKA_ZOOKEEPER=10.2.1.2:2181,10.2.1.3:2181,10.2.1.4:2181/kafka --logging.level.zipkin=DEBUG  

web界面

zipkin的安装与搭建

Sun Feb 24 08:31:33 CST 2019

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: