{"id":75244,"date":"2026-04-28T04:00:29","date_gmt":"2026-04-28T04:00:29","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=75244"},"modified":"2026-04-28T04:03:22","modified_gmt":"2026-04-28T04:03:22","slug":"graphite-how-to-install-and-configure-graphite-monitoring-tool","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/graphite-how-to-install-and-configure-graphite-monitoring-tool\/","title":{"rendered":"Graphite: How to install and Configure graphite monitoring tool"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">docker-compose.yml\nroot@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-37<\/span><span class=\"hljs-number\">-11<\/span>:~\/graphite-linux-demo<span class=\"hljs-comment\"># more docker-compose.yml<\/span>\nversion: <span class=\"hljs-string\">\"3.8\"<\/span>\n\nservices:\n  graphite:\n    image: graphiteapp\/graphite-statsd:latest\n    container_name: graphite\n    restart: unless-stopped\n    ports:\n      - <span class=\"hljs-string\">\"8080:80\"<\/span>          <span class=\"hljs-comment\"># Graphite Web UI<\/span>\n      - <span class=\"hljs-string\">\"2003:2003\"<\/span>        <span class=\"hljs-comment\"># Carbon plaintext TCP<\/span>\n      - <span class=\"hljs-string\">\"2004:2004\"<\/span>        <span class=\"hljs-comment\"># Carbon pickle<\/span>\n      - <span class=\"hljs-string\">\"8125:8125\/udp\"<\/span>    <span class=\"hljs-comment\"># StatsD UDP<\/span>\n      - <span class=\"hljs-string\">\"8126:8126\"<\/span>        <span class=\"hljs-comment\"># StatsD admin<\/span>\n    volumes:\n      - graphite_data:\/opt\/graphite\/storage\n      - .\/storage-schemas.conf:\/opt\/graphite\/conf\/storage-schemas.conf\n\n  telegraf:\n    image: telegraf:latest\n    container_name: telegraf\n    restart: unless-stopped\n    depends_on:\n      - graphite\n    user: root\n    volumes:\n      - .\/telegraf.conf:\/etc\/telegraf\/telegraf.conf:ro\n      - \/:\/hostfs:ro\n      - \/<span class=\"hljs-keyword\">var<\/span>\/run\/docker.sock:\/<span class=\"hljs-keyword\">var<\/span>\/run\/docker.sock:ro\n    environment:\n      HOST_MOUNT_PREFIX: \/hostfs\n\nvolumes:\n  graphite_data:\nroot@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-37<\/span><span class=\"hljs-number\">-11<\/span>:~\/graphite-linux-demo<span class=\"hljs-comment\"># <\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">root@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-37<\/span><span class=\"hljs-number\">-11<\/span>:~\/graphite-linux-demo<span class=\"hljs-comment\"># more storage-schemas.conf <\/span>\n&#91;telegraf]\npattern = ^telegraf\\.\nretentions = <span class=\"hljs-number\">10<\/span>s:<span class=\"hljs-number\">1<\/span>d,<span class=\"hljs-number\">1<\/span>m:<span class=\"hljs-number\">7<\/span>d,<span class=\"hljs-number\">10<\/span>m:<span class=\"hljs-number\">30<\/span>d\n\n&#91;<span class=\"hljs-keyword\">default<\/span>]\npattern = .*\nretentions = <span class=\"hljs-number\">10<\/span>s:<span class=\"hljs-number\">1<\/span>d,<span class=\"hljs-number\">1<\/span>m:<span class=\"hljs-number\">7<\/span>d,<span class=\"hljs-number\">10<\/span>m:<span class=\"hljs-number\">30<\/span>d\nroot@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-37<\/span><span class=\"hljs-number\">-11<\/span>:~\/graphite-linux-demo<span class=\"hljs-comment\"># <\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">root@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-37<\/span><span class=\"hljs-number\">-11<\/span>:~\/graphite-linux-demo<span class=\"hljs-comment\"># more telegraf.conf<\/span>\n&#91;agent]\n  interval = <span class=\"hljs-string\">\"10s\"<\/span>\n  round_interval = <span class=\"hljs-keyword\">true<\/span>\n  hostname = <span class=\"hljs-string\">\"linux-demo\"<\/span>\n  omit_hostname = <span class=\"hljs-keyword\">false<\/span>\n\n&#91;&#91;outputs.graphite]]\n  servers = &#91;<span class=\"hljs-string\">\"graphite:2003\"<\/span>]\n  prefix = <span class=\"hljs-string\">\"telegraf\"<\/span>\n  template = <span class=\"hljs-string\">\"host.measurement.field\"<\/span>\n\n&#91;&#91;inputs.cpu]]\n  percpu = <span class=\"hljs-keyword\">true<\/span>\n  totalcpu = <span class=\"hljs-keyword\">true<\/span>\n  collect_cpu_time = <span class=\"hljs-keyword\">false<\/span>\n  report_active = <span class=\"hljs-keyword\">true<\/span>\n\n&#91;&#91;inputs.mem]]\n\n&#91;&#91;inputs.swap]]\n\n&#91;&#91;inputs.system]]\n\n&#91;&#91;inputs.disk]]\n  ignore_fs = &#91;<span class=\"hljs-string\">\"tmpfs\"<\/span>, <span class=\"hljs-string\">\"devtmpfs\"<\/span>, <span class=\"hljs-string\">\"devfs\"<\/span>, <span class=\"hljs-string\">\"iso9660\"<\/span>, <span class=\"hljs-string\">\"overlay\"<\/span>, <span class=\"hljs-string\">\"aufs\"<\/span>, <span class=\"hljs-string\">\"squashfs\"<\/span>, <span class=\"hljs-string\">\"nsfs\"<\/span>, <span class=\"hljs-string\">\"cgroup\"<\/span>, <span class=\"hljs-string\">\"cgroup2\"<\/span>]\n\n&#91;&#91;inputs.net]]\n\n&#91;&#91;inputs.kernel]]\n\n&#91;&#91;inputs.processes]]\nroot@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-37<\/span><span class=\"hljs-number\">-11<\/span>:~\/graphite-linux-demo<span class=\"hljs-comment\"># <\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Commands to run all setup<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker-compose up -d\n\ndocker exec -it graphite find \/opt\/graphite\/storage\/whisper\/telegraf -type f | head <span class=\"hljs-number\">-20<\/span>\n\ndocker exec -it graphite find \/opt\/graphite\/storage\/whisper\/telegraf -type f | sed <span class=\"hljs-string\">'s#\/opt\/graphite\/storage\/whisper\/##; s#\/#.#g; s#.wsp$##'<\/span> | sort<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">root@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-37<\/span><span class=\"hljs-number\">-11<\/span>:~\/graphite-linux-demo<span class=\"hljs-comment\"># docker ps<\/span>\nCONTAINER ID   IMAGE                                COMMAND                  CREATED      STATUS      PORTS                                                                                                                                                                                                                                                  NAMES\ne7345a01ea59   telegraf:latest                      <span class=\"hljs-string\">\"\/entrypoint.sh tele\u2026\"<\/span>   <span class=\"hljs-number\">3<\/span> days ago   Up <span class=\"hljs-number\">3<\/span> days   <span class=\"hljs-number\">8092<\/span>\/udp, <span class=\"hljs-number\">8125<\/span>\/udp, <span class=\"hljs-number\">8094<\/span>\/tcp                                                                                                                                                                                                                           telegraf\n<span class=\"hljs-number\">5<\/span>d1ad13e09fd   graphiteapp\/graphite-statsd:latest   <span class=\"hljs-string\">\"\/entrypoint\"<\/span>            <span class=\"hljs-number\">3<\/span> days ago   Up <span class=\"hljs-number\">3<\/span> days   <span class=\"hljs-number\">2013<\/span><span class=\"hljs-number\">-2014<\/span>\/tcp, <span class=\"hljs-number\">2023<\/span><span class=\"hljs-number\">-2024<\/span>\/tcp, <span class=\"hljs-number\">8080<\/span>\/tcp, <span class=\"hljs-number\">0.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>:<span class=\"hljs-number\">2003<\/span><span class=\"hljs-number\">-2004<\/span>-&gt;<span class=\"hljs-number\">2003<\/span><span class=\"hljs-number\">-2004<\/span>\/tcp, &#91;::]:<span class=\"hljs-number\">2003<\/span><span class=\"hljs-number\">-2004<\/span>-&gt;<span class=\"hljs-number\">2003<\/span><span class=\"hljs-number\">-2004<\/span>\/tcp, <span class=\"hljs-number\">0.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>:<span class=\"hljs-number\">8126<\/span>-&gt;<span class=\"hljs-number\">8126<\/span>\/tcp, &#91;::]:<span class=\"hljs-number\">8126<\/span>-&gt;<span class=\"hljs-number\">8126<\/span>\/tcp, <span class=\"hljs-number\">8125<\/span>\/tcp, <span class=\"hljs-number\">0.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>:<span class=\"hljs-number\">8125<\/span>-&gt;<span class=\"hljs-number\">8125<\/span>\/udp, &#91;::]:<span class=\"hljs-number\">8125<\/span>-&gt;<span class=\"hljs-number\">8125<\/span>\/udp, <span class=\"hljs-number\">0.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>:<span class=\"hljs-number\">8080<\/span>-&gt;<span class=\"hljs-number\">80<\/span>\/tcp, &#91;::]:<span class=\"hljs-number\">8080<\/span>-&gt;<span class=\"hljs-number\">80<\/span>\/tcp   graphite\nroot@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-37<\/span><span class=\"hljs-number\">-11<\/span>:~\/graphite-linux-demo<span class=\"hljs-comment\"># <\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Commands to run all setup<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-75244","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=75244"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75244\/revisions"}],"predecessor-version":[{"id":75248,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75244\/revisions\/75248"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=75244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=75244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=75244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}