{"id":177,"date":"2020-03-15T12:19:06","date_gmt":"2020-03-15T03:19:06","guid":{"rendered":"http:\/\/www.skyer9.pe.kr\/wordpress\/?p=177"},"modified":"2020-03-15T13:06:02","modified_gmt":"2020-03-15T04:06:02","slug":"kafka-%eb%aa%a8%eb%8b%88%ed%84%b0%eb%a7%81","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=177","title":{"rendered":"Kafka \ubaa8\ub2c8\ud130\ub9c1"},"content":{"rendered":"<h1>Kafka \ubaa8\ub2c8\ud130\ub9c1<\/h1>\n<p>Prometheus and Grafana \ub97c \uc774\uc6a9\ud55c Kafka \ubaa8\ub2c8\ud130\ub9c1 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<h2>Prometheus JMX exporter \uc124\uce58\ud558\uae30<\/h2>\n<p>Kafka \uac00 \uc124\uce58\ub418\uc5b4 \uc788\ub294 \uc11c\ubc84\uc5d0\uc11c \uc544\ub798 \uc124\uc815\uc744 \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir \/opt\/kafka\/prometheus\/\nsudo wget -P \/opt\/kafka\/prometheus\/ https:\/\/repo1.maven.org\/maven2\/io\/prometheus\/jmx\/jmx_prometheus_javaagent\/0.12.0\/jmx_prometheus_javaagent-0.12.0.jar\nsudo wget -P \/opt\/kafka\/prometheus\/ https:\/\/raw.githubusercontent.com\/prometheus\/jmx_exporter\/master\/example_configs\/kafka-2_0_0.yml<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/opt\/kafka\/prometheus\/kafka-2_0_0.yml<\/code><\/pre>\n<pre><code class=\"language-configuration\">- pattern : kafka.producer&lt;type=producer-metrics, client-id=(.+)&gt;&lt;&gt;(.+):\\w*\n  name: kafka_producer_$2\n- pattern : kafka.consumer&lt;type=consumer-metrics, client-id=(.+)&gt;&lt;&gt;(.+):\\w*\n  name: kafka_consumer_$2\n- pattern : kafka.consumer&lt;type=consumer-fetch-manager-metrics, client-id=(.+)&gt;&lt;&gt;(.+):\\w*\n  name: kafka_consumer_$2<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/opt\/kafka\/bin\/kafka-server-start.sh<\/code><\/pre>\n<pre><code class=\"language-configuration\">export KAFKA_OPTS=&quot;-javaagent:\/opt\/kafka\/prometheus\/jmx_prometheus_javaagent-0.12.0.jar=7071:\/opt\/kafka\/prometheus\/kafka-2_0_0.yml&quot;<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/opt\/kafka\/bin\/kafka-console-consumer.sh<\/code><\/pre>\n<pre><code class=\"language-configuration\">export KAFKA_OPTS=&quot;-javaagent:\/opt\/kafka\/prometheus\/jmx_prometheus_javaagent-0.12.0.jar=7072:\/opt\/kafka\/prometheus\/kafka-2_0_0.yml&quot;<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/opt\/kafka\/bin\/kafka-console-producer.sh<\/code><\/pre>\n<pre><code class=\"language-configuration\">export KAFKA_OPTS=&quot;-javaagent:\/opt\/kafka\/prometheus\/jmx_prometheus_javaagent-0.12.0.jar=7073:\/opt\/kafka\/prometheus\/kafka-2_0_0.yml&quot;<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo systemctl restart kafka.service<\/code><\/pre>\n<h2>Prometheus \uc124\uce58\ud558\uae30<\/h2>\n<pre><code class=\"language-bash\">sudo mkdir \/etc\/prometheus \/var\/lib\/prometheus \/var\/log\/prometheus \/var\/run\/prometheus<\/code><\/pre>\n<pre><code class=\"language-bash\">wget https:\/\/github.com\/prometheus\/prometheus\/releases\/download\/v2.2.1\/prometheus-2.2.1.linux-amd64.tar.gz -P \/tmp\/\nsudo tar -zxvf \/tmp\/prometheus-2.2.1.linux-amd64.tar.gz -C \/tmp\/\nsudo cp \/tmp\/prometheus-2.2.1.linux-amd64\/{prometheus,promtool} \/usr\/local\/bin\/\nsudo chmod +x \/usr\/local\/bin\/{prometheus,promtool}\nsudo cp \/tmp\/prometheus-2.2.1.linux-amd64\/prometheus.yml \/etc\/prometheus\/\nsudo cp -r \/tmp\/prometheus-2.2.1.linux-amd64\/{consoles,console_libraries} \/etc\/prometheus\/<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/etc\/prometheus\/prometheus.yml<\/code><\/pre>\n<pre><code class=\"language-configuration\">  - job_name: &#039;kafka-server&#039;\n    static_configs:\n      - targets: [&#039;172.31.31.223:7071&#039;]\n  # - job_name: &#039;kafka-consumer&#039;\n  #   static_configs:\n  #     - targets: [&#039;172.31.31.223:7072&#039;]\n  # - job_name: &#039;kafka-producer&#039;\n  #   static_configs:\n  #     - targets: [&#039;172.31.31.223:7073&#039;]<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/etc\/systemd\/system\/prometheus.service<\/code><\/pre>\n<pre><code class=\"language-configuration\">[Unit]\nDescription=Prometheus\nWants=network-online.target\nAfter=network-online.target\n[Service]\nUser=root\nGroup=root\nType=simple\nExecStart=\/usr\/local\/bin\/prometheus \\\n         --config.file \/etc\/prometheus\/prometheus.yml \\\n         --storage.tsdb.path \/var\/lib\/prometheus\/ \\\n         --web.console.templates=\/etc\/prometheus\/consoles \\\n         --web.console.libraries=\/etc\/prometheus\/console_libraries\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo systemctl start prometheus.service\nsudo systemctl enable prometheus.service<\/code><\/pre>\n<p>http:\/\/&lt;\uc11c\ubc84\uc544\uc774\ud53c&gt;:9090\/ \uc5d0 \uc811\uc18d\ud558\uba74 UI \ub97c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kafka \ubaa8\ub2c8\ud130\ub9c1 Prometheus and Grafana \ub97c \uc774\uc6a9\ud55c Kafka \ubaa8\ub2c8\ud130\ub9c1 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4. Prometheus JMX exporter \uc124\uce58\ud558\uae30 Kafka \uac00 \uc124\uce58\ub418\uc5b4 \uc788\ub294 \uc11c\ubc84\uc5d0\uc11c \uc544\ub798 \uc124\uc815\uc744 \ud569\ub2c8\ub2e4. sudo mkdir \/opt\/kafka\/prometheus\/ sudo wget -P \/opt\/kafka\/prometheus\/ https:\/\/repo1.maven.org\/maven2\/io\/prometheus\/jmx\/jmx_prometheus_javaagent\/0.12.0\/jmx_prometheus_javaagent-0.12.0.jar sudo wget -P \/opt\/kafka\/prometheus\/ https:\/\/raw.githubusercontent.com\/prometheus\/jmx_exporter\/master\/example_configs\/kafka-2_0_0.yml sudo vi \/opt\/kafka\/prometheus\/kafka-2_0_0.yml &#8211; pattern : kafka.producer&lt;type=producer-metrics, client-id=(.+)&gt;&lt;&gt;(.+):\\w* name: kafka_producer_$2 &#8211; pattern : kafka.consumer&lt;type=consumer-metrics, client-id=(.+)&gt;&lt;&gt;(.+):\\w* name: kafka_consumer_$2 &#8211; pattern\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=177\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-177","post","type-post","status-publish","format-standard","hentry","category-kafka"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=177"}],"version-history":[{"count":11,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":198,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/177\/revisions\/198"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}