{"id":605,"date":"2025-09-16T18:32:38","date_gmt":"2025-09-16T15:32:38","guid":{"rendered":"https:\/\/oraclius.com.tr\/?p=605"},"modified":"2025-09-16T20:39:11","modified_gmt":"2025-09-16T17:39:11","slug":"ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum","status":"publish","type":"post","link":"https:\/\/oraclius.com.tr\/en\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/","title":{"rendered":"FTP Log Monitoring: Step-by-Step Setup with Telegraf, InfluxDB, and Grafana"},"content":{"rendered":"<p>Learn how to use Telegraf, InfluxDB, and Grafana to monitor FTP transfer logs (xferlog). This guide walks you through the installation, configuration, and visualization process step by step. FTP servers are still the primary method for file transfers in many organizations...<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>FTP servers are still heavily used for file transfers in many organizations. However, tracking details like how long these transfers take, which IP addresses they originate from, file sizes, and failed transfers can often be overlooked.<\/p>\n\n\n\n<p class=\"translation-block\">In this article, I will explain step by step how you can collect FTP transfer logs (xferlog) using the Telegraf, InfluxDB and Grafana trio, store them in the database and visualize them with Grafana.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why Monitor FTP Transfers?<\/h3>\n\n\n\n<p>Monitoring FTP logs isn't just for curiosity's sake; it's also critical for system security and performance. Here are some reasons:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keeping track of large file transfers<\/li>\n\n\n\n<li>Detecting failed transfers and unusual activity<\/li>\n\n\n\n<li>Monitor and improve server performance<\/li>\n\n\n\n<li>Meeting reporting and auditing needs<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1.) Introduction<\/h2>\n\n\n\n<p>Before starting the installation, it is recommended to stop the firewall service and disable SELinux.<\/p>\n\n\n\n<p>A classic FTP logging example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">Mon Sep 15 15:40:20 2025<\/mark> 15 <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">10.10.10.11<\/mark> 500 <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">\/tmp\/test.kopya<\/mark> b <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">_<\/mark> i<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\"> r<\/mark> ftpuser <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">ftp <\/mark>0 <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">* <\/mark>c<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sat Sep 12 01:01:18 2025\n<ul class=\"wp-block-list\">\n<li>Meaning: The date and time the transaction occurred.<\/li>\n\n\n\n<li>Description: This indicates that the transfer occurred on September 15, 2025, at 15:40:20 (local time).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>15\n<ul class=\"wp-block-list\">\n<li>Meaning: Transfer time (in seconds).<\/li>\n\n\n\n<li>Description: File transfer took 15 seconds.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>10.10.10.11\n<ul class=\"wp-block-list\">\n<li>Meaning: Client IP address.<\/li>\n\n\n\n<li>Description: The IP address of the client performing the transfer is 10.10.10.11.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>500\n<ul class=\"wp-block-list\">\n<li>Meaning: Transferred file size (in bytes).<\/li>\n\n\n\n<li>Description: The transferred file (test_hosts.txt) is 500 bytes in size.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\/tmp\/test.copy\n<ul class=\"wp-block-list\">\n<li>Meaning: The full path of the transferred file.<\/li>\n\n\n\n<li>Description: The file is named test_hosts.txt located in the \/tmp\/test.copy directory on the server.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>b\n<ul class=\"wp-block-list\">\n<li>Meaning: Transfer type.<\/li>\n\n\n\n<li>Explanation: b represents a binary transfer. Another possibility is a (ASCII). In this case, the file was transferred in binary mode.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>_\n<ul class=\"wp-block-list\">\n<li>Meaning: Compression method.<\/li>\n\n\n\n<li>Explanation: The _ indicates that no compression is used during the transfer. Some FTP servers may use compression, in which case a different value (for example, Z or T) may appear.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>i\n<ul class=\"wp-block-list\">\n<li>Meaning: Transfer direction.<\/li>\n\n\n\n<li>Explanation: i indicates an incoming transfer, meaning the file is being uploaded from the client to the server. If it were o, it would indicate outgoing, meaning downloading.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>r\n<ul class=\"wp-block-list\">\n<li>Meaning: User type.<\/li>\n\n\n\n<li>Explanation: r represents the remote user. This indicates that the transferring user is connecting through an FTP client. Another value (for example, l) can be used for local users.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>ftpuser\n<ul class=\"wp-block-list\">\n<li>Meaning: The username that performed the transfer.<\/li>\n\n\n\n<li>Description: The FTP client is logged on with the user account ftpuser.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>ftp\n<ul class=\"wp-block-list\">\n<li>Meaning: Service name.<\/li>\n\n\n\n<li>Description: Indicates that the transfer occurred via the FTP protocol. Other protocols (e.g., SFTP) may have a different value.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>0\n<ul class=\"wp-block-list\">\n<li>Meaning: Authentication method.<\/li>\n\n\n\n<li>Description: 0 indicates that there is no anonymous session and that you are logged in with a real user account. 1 is used for anonymous FTP.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>*\n<ul class=\"wp-block-list\">\n<li>Meaning: Additional information for authentication.<\/li>\n\n\n\n<li>Meaning: Additional information for authentication. Description: * usually indicates no additional information or that sensitive information such as a password is hidden.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>c\n<ul class=\"wp-block-list\">\n<li>Meaning: The status of the transfer completion.<\/li>\n\n\n\n<li>Explanation: c means complete, meaning the file transfer was completed successfully. If it were i, it would mean incomplete.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.) Downloading and Installing the Required Files<\/h2>\n\n\n\n<p>Files required to install Telegraf, Influxdb and Grafana on your Linux-based server:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/repos.influxdata.com\/rhel\/7\/x86_64\/stable\/influxdb2-2.7.12-1.x86_64.rpm\n\nwget https:\/\/repos.influxdata.com\/rhel\/7\/x86_64\/stable\/telegraf-1.36.1-1.x86_64.rpm\n\nwget https:\/\/dl.grafana.com\/grafana-enterprise\/release\/12.1.1\/grafana-enterprise_12.1.1_16903967602_linux_amd64.rpm\n\nwget https:\/\/dl.influxdata.com\/influxdb\/releases\/influxdb2-client-2.7.5-linux-amd64.tar.gz<\/code><\/pre>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/repos.influxdata.com\/rhel\/7\/x86_64\/stable\/influxdb2-2.7.12-1.x86_64.rpm\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">influxdb2-2.7.12-1.x86_64.rpm<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/repos.influxdata.com\/rhel\/7\/x86_64\/stable\/telegraf-1.36.1-1.x86_64.rpm\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">telegraf-1.36.1-1.x86_64.rpm<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/dl.grafana.com\/grafana-enterprise\/release\/12.1.1\/grafana-enterprise_12.1.1_16903967602_linux_amd64.rpm\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">grafana-enterprise_12.1.1_16903967602_linux_amd64.rpm<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/dl.influxdata.com\/influxdb\/releases\/influxdb2-client-2.7.5-linux-amd64.tar.gz\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">influxdb2-client-2.7.5-linux-amd64.tar.gz<\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Installing the necessary rpm files and starting their services:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rpm -ivh influxdb2-2.7.12-1.x86_64.rpm\nrpm -ivh telegraf-1.36.1-1.x86_64.rpm\nrpm -ivh grafana-enterprise_12.1.1_16903967602_linux_amd64.rpm<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl start grafana-server.service\nsystemctl start influxdb.service\nsystemctl start telegraf.service<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable grafana-server.service\nsystemctl enable influxdb.service\nsystemctl enable telegraf.service<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Influx CLI Installation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tar -xzvf influxdb2-client-2.7.5-linux-amd64.tar.gz<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>mv influx \/usr\/bin\/influx\nchmod +x \/usr\/bin\/influx<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>influx version\nInflux CLI dev (git: a79a2a1b825867421d320428538f76a4c90aa34c) build_date: 2024-04-16T14:34:32Z<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.) InfluxDB Setup<\/h2>\n\n\n\n<p>By default, the InfluxDB service runs with localhost:8086 host and port information.<\/p>\n\n\n\n<p>Let's go to localhost:8086 or :8086 from the browser and make the necessary settings:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Username \t\t\t=&gt; admin\nPassword\t\t\t=&gt; 12345678\nInitial Organization Name \t=&gt; oraclius.org\nInitial Bucket Name\t\t=&gt; oraclius.bucket\n\nadmin's Token\nKvMrs65Iaqy7XON6Fzi2_e87A34B2GpZZjHeBHW8SO_C0bdGeQ4EmnrB851FzKOCLqpAYNgNEgUXU7BzATx3UQ==\n\nAll Access API Token\n2CGYUEiOrBowrsCR4uYTbUPaSHApRbyt6YyDuxHxj2K7rgTISo1KdVryGtyXm51HLofWjHAETr9erEpWlrFk6A==<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f650119f887&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f650119f887\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"701\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"607\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-1-1024x701.png\" alt=\"\" class=\"wp-image-607\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-1-1024x701.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-1-300x205.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-1-768x526.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-1.png 1115w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f650119fe99&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f650119fe99\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"770\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"609\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-2-1024x770.png\" alt=\"\" class=\"wp-image-609\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-2-1024x770.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-2-300x226.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-2-768x578.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-2.png 1114w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a0323&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a0323\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"612\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-3-1024x768.png\" alt=\"\" class=\"wp-image-612\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-3-1024x768.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-3-300x225.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-3-768x576.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-3.png 1116w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/figure>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a0972&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a0972\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"619\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-4-1024x771.png\" alt=\"\" class=\"wp-image-619\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-4-1024x771.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-4-300x226.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-4-768x578.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-4.png 1110w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a0db5&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a0db5\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"772\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"614\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-5-1024x772.png\" alt=\"\" class=\"wp-image-614\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-5-1024x772.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-5-300x226.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-5-768x579.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-5.png 1112w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a1279&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a1279\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"770\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"615\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-6-1024x770.png\" alt=\"\" class=\"wp-image-615\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-6-1024x770.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-6-300x226.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-6-768x577.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-6.png 1112w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4.) Editing the Telegrac Conf File<\/h2>\n\n\n\n<p>Using some of the information we obtained in the InfluxDB Setup step, we will ensure that the metrics we collect with Telegraf are transferred to InfluxDB:<\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">vi \/etc\/telegraf\/telegraf.conf<\/mark><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;agent]\n  interval = \"10s\"\n  round_interval = true\n  metric_batch_size = 1000\n  metric_buffer_limit = 10000\n  collection_jitter = \"0s\"\n  flush_interval = \"10s\"\n  flush_jitter = \"0s\"\n  precision = \"0s\"\n\n&#91;&#91;outputs.influxdb_v2]]\n  urls = &#91;\"http:\/\/10.10.10.11:8086\"]\n  token = \"2CGYUEiOrBowrsCR4uYTbUPaSHApRbyt6YyDuxHxj2K7rgTISo1KdVryGtyXm51HLofWjHAETr9erEpWlrFk6A==\"\n  organization = \"oraclius.org\"\n  bucket = \"oraclius.bucket\"\n\n&#91;&#91;inputs.tail]]\n  files = &#91;\"\/var\/log\/xferlog\"]\n  from_beginning = false\n  name_override = \"ftp_transfers\"\n  data_format = \"grok\"\n  grok_patterns = &#91;\n  '%{DAY:day} %{MONTH:month} %{MONTHDAY:daynum} %{TIME:log_time} %{YEAR:year} %{NUMBER:transfer_number:int} %{IP:client_ip} %{NUMBER:bytes:int} %{DATA:file_path} %{WORD:transfer_type} %{WORD:compression_method} %{WORD:transfer_direction} %{WORD:user_type} %{WORD:ftp_user} %{WORD:service_name} %{NUMBER:auth_method:int} %{DATA:auth_method_extra} %{WORD:status}'\n]\n  initial_read_offset = \"end\"\n\n&#91;&#91;processors.starlark]]\n  namepass = &#91;\"ftp_transfers\"]\n  source = '''\ndef apply(metric):\n    months = {\n        \"Jan\":\"01\",\"Feb\":\"02\",\"Mar\":\"03\",\"Apr\":\"04\",\"May\":\"05\",\"Jun\":\"06\",\n        \"Jul\":\"07\",\"Aug\":\"08\",\"Sep\":\"09\",\"Oct\":\"10\",\"Nov\":\"11\",\"Dec\":\"12\"\n    }\n\n    month = metric.fields.get(\"month\")\n    daynum = str(metric.fields.get(\"daynum\"))\n    year = str(metric.fields.get(\"year\"))\n    log_time = metric.fields.get(\"log_time\")\n\n    if month != None and daynum != None and year != None and log_time != None:\n        mon = months.get(month, \"01\")\n        if len(daynum) == 1:\n            daynum = \"0\" + daynum\n        formatted = daynum + \"\/\" + mon + \"\/\" + year + \" \" + log_time\n        metric.fields&#91;\"ftp_date\"] = formatted\n\n    return metric\n'''<\/code><\/pre>\n\n\n\n<p>Since we changed the Telegraf conf file, we need to restart the Telegraf service.<br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart telegraf.service<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.) Generating FTP Logs for Testing Purposes<\/h2>\n\n\n\n<p>Let's test whether Telegraf reads the FTP log file (xferlog) correctly:<br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>touch \/tmp\/ftp.file\n\n&#91;root@ftp log]# touch \/tmp\/ftp.file\n&#91;root@ftp log]# ftp 10.10.10.11\nConnected to 10.10.10.11 (10.10.10.11).\n220 (vsFTPd 3.0.2)\nName (10.10.10.11:root): test\n331 Please specify the password.\nPassword:\n230 Login successful.\nRemote system type is UNIX.\nUsing binary mode to transfer files.\nftp&gt; put \/tmp\/ftp.file \/tmp\/send.file\nlocal: \/tmp\/ftp.file remote: \/tmp\/send.file\n227 Entering Passive Mode (10,10,10,11,69,196).\n150 Ok to send data.\n226 Transfer complete.\nftp&gt; bye\n221 Goodbye.\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@ftp log]# cat xferlog \nTue Sep 16 17:56:36 2025 1 10.10.10.11 0 \/tmp\/send.file b _ i r test ftp 0 * c<\/code><\/pre>\n\n\n\n<p>We can run Telegraf in debug mode and see the errors:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@ftp Downloads]# telegraf --config \/etc\/telegraf\/telegraf.conf --debug\n\n# telegraf --config \/etc\/telegraf\/telegraf.conf --debug\n2025-09-16T14:58:43Z I! Loading config: \/etc\/telegraf\/telegraf.conf\n2025-09-16T14:58:43Z I! Starting Telegraf 1.36.1 brought to you by InfluxData the makers of InfluxDB\n2025-09-16T14:58:43Z I! Available plugins: 239 inputs, 9 aggregators, 35 processors, 26 parsers, 65 outputs, 6 secret-stores\n2025-09-16T14:58:43Z I! Loaded inputs: tail\n2025-09-16T14:58:43Z I! Loaded aggregators:\n2025-09-16T14:58:43Z I! Loaded processors: starlark\n2025-09-16T14:58:43Z I! Loaded secretstores:\n2025-09-16T14:58:43Z I! Loaded outputs: influxdb_v2\n2025-09-16T14:58:43Z I! Tags enabled: host=ftp.host\n2025-09-16T14:58:43Z I! &#91;agent] Config: Interval:10s, Quiet:false, Hostname:\"ftp.host\", Flush Interval:10s\n2025-09-16T14:58:43Z W! &#91;agent] The default value of 'skip_processors_after_aggregators' will change to 'true' with Telegraf v1.40.0! If you need the current default behavior, please explicitly set the option to 'false'!\n2025-09-16T14:58:43Z D! &#91;agent] Initializing plugins\n2025-09-16T14:58:43Z D! &#91;agent] Connecting outputs\n2025-09-16T14:58:43Z D! &#91;agent] Attempting connection to &#91;outputs.influxdb_v2]\n2025-09-16T14:58:43Z D! &#91;agent] Successfully connected to outputs.influxdb_v2\n2025-09-16T14:58:43Z D! &#91;agent] Starting service inputs\n2025-09-16T14:58:43Z D! &#91;inputs.tail] Tail added for \"\/var\/log\/xferlog\"\n2025-09-16T14:58:53Z D! &#91;outputs.influxdb_v2] <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-primary-color\">Wrote batch of 1 metrics in 5.647823ms<\/mark>\n2025-09-16T14:58:53Z D! &#91;outputs.influxdb_v2] Buffer fullness: 0 \/ 10000 metrics\n<\/code><\/pre>\n\n\n\n<p>In debug mode, it found the line written to xferlog and managed to process it.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6.) Creating a Grafana Dashboard<\/h2>\n\n\n\n<p class=\"translation-block\">Grafana runs on port 3000 by default. Let's access localhost:300 or :3000 from the browser and make the necessary settings:<\/p>\n\n\n\n<p>The Username and Password asked for when you first log in are admin\/admin by default.<\/p>\n\n\n\n<p>Let's create a new Data Connection for the InfluxDB connection from the right menu:<br><\/p>\n\n\n\n<p>Connections =&gt; Add new connection =&gt; InfluxDB =&gt; Add new data source<\/p>\n\n\n\n<p>InfluxDB Connection Settings:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Query Language =&gt; Flux<\/li>\n\n\n\n<li>HTTP URL =&gt; http:\/\/10.10.10.11:8086<\/li>\n\n\n\n<li>Organization =&gt; oraclius.org<\/li>\n\n\n\n<li>Token =&gt; 2CGYUEiOrBowrsCR4uYTbUPaSHApRbyt6YyDuxHxj2K7rgTISo1KdVryGtyXm51HLofWjHAETr9erEpWlrFk6A==<\/li>\n\n\n\n<li>Default Bucket =&gt; oraclius.bucket<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a1de7&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a1de7\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"657\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"620\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-10-657x1024.png\" alt=\"\" class=\"wp-image-620\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-10-657x1024.png 657w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-10-193x300.png 193w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-10.png 754w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>A successful connection to InfluxDB has been made with Grafana. Now let's import a ready-made Dashboard and analyze the ftp logs:<\/p>\n\n\n\n<p>Grafan =&gt; Dashboard =&gt; New =&gt; Import Dashboard<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a2302&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a2302\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"657\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"620\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-10-657x1024.png\" alt=\"\" class=\"wp-image-620\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-10-657x1024.png 657w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-10-193x300.png 193w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-10.png 754w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a2876&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a2876\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"653\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"622\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-11-1024x653.png\" alt=\"\" class=\"wp-image-622\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-11-1024x653.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-11-300x191.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-11-768x490.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-11.png 1278w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a2d02&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a2d02\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"623\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-12-1024x576.png\" alt=\"\" class=\"wp-image-623\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-12-1024x576.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-12-300x169.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-12-768x432.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-12.png 1275w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a3147&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a3147\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"445\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"624\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-13-1024x445.png\" alt=\"\" class=\"wp-image-624\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-13-1024x445.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-13-300x130.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-13-768x334.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-13-1536x667.png 1536w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-13-2048x890.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"annotations\": {\n    \"list\": &#91;\n      {\n        \"builtIn\": 1,\n        \"datasource\": {\n          \"type\": \"grafana\",\n          \"uid\": \"-- Grafana --\"\n        },\n        \"enable\": true,\n        \"hide\": true,\n        \"iconColor\": \"rgba(0, 211, 255, 1)\",\n        \"name\": \"Annotations &amp; Alerts\",\n        \"type\": \"dashboard\"\n      }\n    ]\n  },\n  \"description\": \"YEATAY\\nhttps:\/\/oraclius.com.tr\/\",\n  \"editable\": true,\n  \"fiscalYearStartMonth\": 0,\n  \"graphTooltip\": 0,\n  \"id\": 2,\n  \"links\": &#91;],\n  \"panels\": &#91;\n    {\n      \"datasource\": {\n        \"type\": \"influxdb\",\n        \"uid\": \"eey9efurcmvb4c\"\n      },\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"palette-classic\"\n          },\n          \"custom\": {\n            \"axisBorderShow\": false,\n            \"axisCenteredZero\": false,\n            \"axisColorMode\": \"text\",\n            \"axisLabel\": \"\",\n            \"axisPlacement\": \"auto\",\n            \"barAlignment\": 0,\n            \"barWidthFactor\": 0.6,\n            \"drawStyle\": \"line\",\n            \"fillOpacity\": 0,\n            \"gradientMode\": \"none\",\n            \"hideFrom\": {\n              \"legend\": false,\n              \"tooltip\": false,\n              \"viz\": false\n            },\n            \"insertNulls\": false,\n            \"lineInterpolation\": \"smooth\",\n            \"lineWidth\": 1,\n            \"pointSize\": 5,\n            \"scaleDistribution\": {\n              \"type\": \"linear\"\n            },\n            \"showPoints\": \"auto\",\n            \"spanNulls\": false,\n            \"stacking\": {\n              \"group\": \"A\",\n              \"mode\": \"none\"\n            },\n            \"thresholdsStyle\": {\n              \"mode\": \"off\"\n            }\n          },\n          \"mappings\": &#91;],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": &#91;\n              {\n                \"color\": \"green\",\n                \"value\": 0\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": &#91;\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"bytes {host=\\\"ftp.host\\\", path=\\\"\/var\/log\/xferlog\\\"}\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"unit\",\n                \"value\": \"bytes\"\n              }\n            ]\n          }\n        ]\n      },\n      \"gridPos\": {\n        \"h\": 11,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 0\n      },\n      \"id\": 5,\n      \"options\": {\n        \"legend\": {\n          \"calcs\": &#91;],\n          \"displayMode\": \"list\",\n          \"placement\": \"bottom\",\n          \"showLegend\": false\n        },\n        \"tooltip\": {\n          \"hideZeros\": false,\n          \"mode\": \"single\",\n          \"sort\": \"none\"\n        }\n      },\n      \"pluginVersion\": \"12.1.1\",\n      \"targets\": &#91;\n        {\n          \"query\": \"from(bucket: \\\"oraclius.bucket\\\")\\n  |&gt; range(start: v.timeRangeStart, stop: v.timeRangeStop)\\n  |&gt; filter(fn: (r) =&gt; r&#91;\\\"_measurement\\\"] == \\\"ftp_transfers\\\")\\n  |&gt; filter(fn: (r) =&gt; r&#91;\\\"_field\\\"] == \\\"bytes\\\")\\n  |&gt; aggregateWindow(every: 5m, fn: sum, createEmpty: false)\\n  |&gt; yield(name: \\\"total_bytes_5m\\\")\\n\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"AVERAGE FILE SIZE\",\n      \"transformations\": &#91;\n        {\n          \"id\": \"organize\",\n          \"options\": {\n            \"excludeByName\": {\n              \"Time\": false,\n              \"bytes {host=\\\"grafana.ftp\\\", path=\\\"\/var\/log\/xferlog\\\"}\": false\n            },\n            \"includeByName\": {},\n            \"indexByName\": {},\n            \"renameByName\": {}\n          }\n        }\n      ],\n      \"type\": \"timeseries\"\n    },\n    {\n      \"datasource\": {\n        \"type\": \"influxdb\",\n        \"uid\": \"eey9efurcmvb4c\"\n      },\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"palette-classic\"\n          },\n          \"custom\": {\n            \"axisBorderShow\": false,\n            \"axisCenteredZero\": false,\n            \"axisColorMode\": \"series\",\n            \"axisLabel\": \"\",\n            \"axisPlacement\": \"auto\",\n            \"barAlignment\": 0,\n            \"barWidthFactor\": 0.6,\n            \"drawStyle\": \"line\",\n            \"fillOpacity\": 0,\n            \"gradientMode\": \"none\",\n            \"hideFrom\": {\n              \"legend\": false,\n              \"tooltip\": false,\n              \"viz\": false\n            },\n            \"insertNulls\": false,\n            \"lineInterpolation\": \"smooth\",\n            \"lineStyle\": {\n              \"fill\": \"solid\"\n            },\n            \"lineWidth\": 1,\n            \"pointSize\": 5,\n            \"scaleDistribution\": {\n              \"type\": \"linear\"\n            },\n            \"showPoints\": \"auto\",\n            \"spanNulls\": false,\n            \"stacking\": {\n              \"group\": \"A\",\n              \"mode\": \"none\"\n            },\n            \"thresholdsStyle\": {\n              \"mode\": \"off\"\n            }\n          },\n          \"mappings\": &#91;],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": &#91;\n              {\n                \"color\": \"green\",\n                \"value\": 0\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": &#91;]\n      },\n      \"gridPos\": {\n        \"h\": 11,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 0\n      },\n      \"id\": 3,\n      \"options\": {\n        \"legend\": {\n          \"calcs\": &#91;],\n          \"displayMode\": \"list\",\n          \"placement\": \"bottom\",\n          \"showLegend\": false\n        },\n        \"tooltip\": {\n          \"hideZeros\": false,\n          \"mode\": \"single\",\n          \"sort\": \"none\"\n        }\n      },\n      \"pluginVersion\": \"12.1.1\",\n      \"targets\": &#91;\n        {\n          \"query\": \"from(bucket: \\\"oraclius.bucket\\\")\\n  |&gt; range(start: v.timeRangeStart, stop: v.timeRangeStop)\\n  |&gt; filter(fn: (r) =&gt; r._measurement == \\\"ftp_transfers\\\")\\n  |&gt; aggregateWindow(every: 5m, fn: count, createEmpty: false)\\n  |&gt; yield(name: \\\"file_count\\\")\\n\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"AVERAGE FILE COUNT\",\n      \"type\": \"timeseries\"\n    },\n    {\n      \"datasource\": {\n        \"type\": \"influxdb\",\n        \"uid\": \"eey9efurcmvb4c\"\n      },\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"custom\": {\n            \"align\": \"center\",\n            \"cellOptions\": {\n              \"type\": \"color-text\",\n              \"wrapText\": true\n            },\n            \"filterable\": true,\n            \"inspect\": true\n          },\n          \"fieldMinMax\": false,\n          \"mappings\": &#91;],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": &#91;\n              {\n                \"color\": \"green\",\n                \"value\": 0\n              }\n            ]\n          }\n        },\n        \"overrides\": &#91;\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"FTP DATE\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"custom.width\",\n                \"value\": 175\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"FTP TIME\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"custom.width\",\n                \"value\": 111\n              },\n              {\n                \"id\": \"unit\",\n                \"value\": \"s\"\n              },\n              {\n                \"id\": \"thresholds\",\n                \"value\": {\n                  \"mode\": \"absolute\",\n                  \"steps\": &#91;\n                    {\n                      \"color\": \"green\",\n                      \"value\": 0\n                    },\n                    {\n                      \"color\": \"orange\",\n                      \"value\": 100\n                    },\n                    {\n                      \"color\": \"red\",\n                      \"value\": 180\n                    }\n                  ]\n                }\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"CLIENT IP\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"custom.width\",\n                \"value\": 140\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"FILE SIZE\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"unit\",\n                \"value\": \"bytes\"\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 119\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"FTP PATH\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"custom.width\"\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"TRANSFER TYPE\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"mappings\",\n                \"value\": &#91;\n                  {\n                    \"options\": {\n                      \"a\": {\n                        \"index\": 1,\n                        \"text\": \"a \u2192 ASCII\"\n                      },\n                      \"b\": {\n                        \"index\": 0,\n                        \"text\": \"b \u2192 binary\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 150\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"COMPRESSION METHOD\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"mappings\",\n                \"value\": &#91;\n                  {\n                    \"options\": {\n                      \"T\": {\n                        \"index\": 2,\n                        \"text\": \"tar\/stream\"\n                      },\n                      \"Z\": {\n                        \"index\": 1,\n                        \"text\": \"Zmodem\"\n                      },\n                      \"_\": {\n                        \"index\": 0,\n                        \"text\": \"no compress\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 207\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"TRANSFER DIRECTORY\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"mappings\",\n                \"value\": &#91;\n                  {\n                    \"options\": {\n                      \"i\": {\n                        \"color\": \"green\",\n                        \"index\": 0,\n                        \"text\": \"incoming\"\n                      },\n                      \"o\": {\n                        \"color\": \"blue\",\n                        \"index\": 1,\n                        \"text\": \"outgoing\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 200\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"USER TYPE\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"mappings\",\n                \"value\": &#91;\n                  {\n                    \"options\": {\n                      \"l\": {\n                        \"color\": \"blue\",\n                        \"index\": 1,\n                        \"text\": \"local\"\n                      },\n                      \"r\": {\n                        \"color\": \"green\",\n                        \"index\": 0,\n                        \"text\": \"remote\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 118\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"FTP USER\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"custom.width\",\n                \"value\": 112\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"SERVICE NAME\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"mappings\",\n                \"value\": &#91;\n                  {\n                    \"options\": {\n                      \"ftp\": {\n                        \"index\": 0,\n                        \"text\": \"FTP\"\n                      },\n                      \"ftps\": {\n                        \"index\": 2,\n                        \"text\": \"FTPS\"\n                      },\n                      \"scp\": {\n                        \"index\": 3,\n                        \"text\": \"SCP\"\n                      },\n                      \"sftp\": {\n                        \"index\": 1,\n                        \"text\": \"SFTP\"\n                      },\n                      \"tftp\": {\n                        \"index\": 4,\n                        \"text\": \"TFTP\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 140\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"AUTH METHOD\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"mappings\",\n                \"value\": &#91;\n                  {\n                    \"options\": {\n                      \"0\": {\n                        \"color\": \"green\",\n                        \"index\": 0,\n                        \"text\": \"normal\"\n                      },\n                      \"1\": {\n                        \"color\": \"blue\",\n                        \"index\": 1,\n                        \"text\": \"anonymous\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 143\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"AUTH METHOD EXTRA\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"mappings\",\n                \"value\": &#91;\n                  {\n                    \"options\": {\n                      \"*\": {\n                        \"index\": 0,\n                        \"text\": \"NO EXTRA\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 196\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"STATUS\"\n            },\n            \"properties\": &#91;\n              {\n                \"id\": \"mappings\",\n                \"value\": &#91;\n                  {\n                    \"options\": {\n                      \"c\": {\n                        \"color\": \"green\",\n                        \"index\": 0,\n                        \"text\": \"COMPLETE\"\n                      },\n                      \"i\": {\n                        \"color\": \"red\",\n                        \"index\": 1,\n                        \"text\": \"INCOMPLETE\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 139\n              }\n            ]\n          }\n        ]\n      },\n      \"gridPos\": {\n        \"h\": 15,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 11\n      },\n      \"id\": 1,\n      \"options\": {\n        \"cellHeight\": \"md\",\n        \"footer\": {\n          \"countRows\": false,\n          \"enablePagination\": false,\n          \"fields\": &#91;\n            \"transfer_number\",\n            \"bytes\"\n          ],\n          \"reducer\": &#91;\n            \"sum\"\n          ],\n          \"show\": true\n        },\n        \"showHeader\": true,\n        \"sortBy\": &#91;\n          {\n            \"desc\": true,\n            \"displayName\": \"FTP DATE\"\n          }\n        ]\n      },\n      \"pluginVersion\": \"12.1.1\",\n      \"targets\": &#91;\n        {\n          \"datasource\": {\n            \"type\": \"influxdb\",\n            \"uid\": \"cexyp8mcclpfkd\"\n          },\n          \"query\": \"from(bucket: \\\"oraclius.bucket\\\")\\n  |&gt; range(start: v.timeRangeStart, stop: v.timeRangeStop)\\n  |&gt; filter(fn: (r) =&gt; r._measurement == \\\"ftp_transfers\\\")\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"FTP TRANSFER\",\n      \"transformations\": &#91;\n        {\n          \"id\": \"merge\",\n          \"options\": {}\n        },\n        {\n          \"id\": \"organize\",\n          \"options\": {\n            \"excludeByName\": {\n              \"Time\": true,\n              \"day\": true,\n              \"daynum\": true,\n              \"log_time\": true,\n              \"month\": true,\n              \"year\": true\n            },\n            \"includeByName\": {},\n            \"indexByName\": {\n              \"Time\": 0,\n              \"auth_method\": 12,\n              \"auth_method_extra\": 13,\n              \"bytes\": 4,\n              \"client_ip\": 3,\n              \"compression_method\": 7,\n              \"day\": 15,\n              \"daynum\": 17,\n              \"file_path\": 5,\n              \"ftp_date\": 1,\n              \"ftp_user\": 10,\n              \"log_time\": 18,\n              \"month\": 16,\n              \"service_name\": 11,\n              \"status\": 14,\n              \"transfer_direction\": 8,\n              \"transfer_number\": 2,\n              \"transfer_type\": 6,\n              \"user_type\": 9,\n              \"year\": 19\n            },\n            \"orderByMode\": \"manual\",\n            \"renameByName\": {\n              \"Time\": \"\",\n              \"auth_method\": \"AUTH METHOD\",\n              \"auth_method_extra\": \"AUTH METHOD EXTRA\",\n              \"bytes\": \"FILE SIZE\",\n              \"client_ip\": \"CLIENT IP\",\n              \"compression_method\": \"COMPRESSION METHOD\",\n              \"daynum\": \"\",\n              \"file_path\": \"FTP PATH\",\n              \"ftp_date\": \"FTP DATE\",\n              \"ftp_user\": \"FTP USER\",\n              \"service_name\": \"SERVICE NAME\",\n              \"status\": \"STATUS\",\n              \"transfer_direction\": \"TRANSFER DIRECTORY\",\n              \"transfer_number\": \"FTP TIME\",\n              \"transfer_type\": \"TRANSFER TYPE\",\n              \"user_type\": \"USER TYPE\"\n            }\n          }\n        },\n        {\n          \"id\": \"convertFieldType\",\n          \"options\": {\n            \"conversions\": &#91;\n              {\n                \"destinationType\": \"number\",\n                \"targetField\": \"FTP TIME\"\n              },\n              {\n                \"destinationType\": \"number\",\n                \"targetField\": \"FILE SIZE\"\n              },\n              {\n                \"dateFormat\": \"DD\/MM\/YYYY HH:mm:ss\",\n                \"destinationType\": \"time\",\n                \"targetField\": \"FTP DATE\"\n              }\n            ],\n            \"fields\": {}\n          }\n        },\n        {\n          \"id\": \"sortBy\",\n          \"options\": {\n            \"fields\": {},\n            \"sort\": &#91;\n              {\n                \"desc\": true,\n                \"field\": \"FTP DATE\"\n              }\n            ]\n          }\n        }\n      ],\n      \"type\": \"table\"\n    }\n  ],\n  \"preload\": false,\n  \"schemaVersion\": 41,\n  \"tags\": &#91;],\n  \"templating\": {\n    \"list\": &#91;]\n  },\n  \"time\": {\n    \"from\": \"now-30m\",\n    \"to\": \"now\"\n  },\n  \"timepicker\": {},\n  \"timezone\": \"\",\n  \"title\": \"FTP Transfers Dashboard\",\n  \"uid\": \"1\",\n  \"version\": 4\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7.) Testing the System with Test Data<\/h2>\n\n\n\n<p>In this step, we will check our system by creating fake ftp records with a bash script and creating records in the xferlog file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/env bash\n# fake_xferlog_generator.sh\n# Kullan\u0131m \u00f6rne\u011fi:\n#   .\/fake_xferlog_generator.sh               # varsay\u0131lan: rate=100\/min, output=\/var\/log\/xferlog, sonsuz\n#   .\/fake_xferlog_generator.sh 200 \/tmp\/xferlog 600 0.9  # 200\/min, \/tmp\/xferlog, 600 kay\u0131t sonra dur, ba\u015far\u0131 oran\u0131 90%\n\nRATE_PER_MIN=${1:-100}           # kay\u0131t\/dakika\nOUTFILE=${2:-\/var\/log\/xferlog}   # hedef dosya (yazma izinlerini kontrol et)\nMAX_COUNT=${3:-0}                # 0 =&gt; sonsuz, &gt;0 =&gt; o kadar kay\u0131t sonra \u00e7\u0131k\nSUCCESS_RATIO=${4:-0.85}         # ba\u015far\u0131 y\u00fczdesi (0..1)\nMAX_BYTES=${5:-10485760}         # maksimum byte (default 10 MiB)\n\nINTERVAL=$(awk -v r=\"$RATE_PER_MIN\" 'BEGIN{printf \"%.6f\", 60.0\/r}')\necho \"RATE_PER_MIN=$RATE_PER_MIN, INTERVAL=$INTERVAL s, OUTFILE=$OUTFILE, MAX_COUNT=$MAX_COUNT, SUCCESS_RATIO=$SUCCESS_RATIO, MAX_BYTES=$MAX_BYTES\"\n\n# \u00d6rnek havuzlar \u2014 istersen buray\u0131 geni\u015flet\/ de\u011fi\u015ftir\nUSERS=(alice bob carol dave ftpuser_1 ftpuser_2 serviceacct)\nFILES=(\"\/home\/ftpuser_1\/readme.txt\" \"\/home\/ftpuser_2\/upload.bin\" \"\/srv\/files\/image.iso\" \"\/data\/backups\/db.tar.gz\" \"\/home\/ftpuser_3\/test_hosts_1.txt\" \"\/tmp\/testfile.dat\")\nCLIENT_NETS=(\"10.10.10.\" \"10.0.0.\" \"192.168.1.\" \"172.16.0.\")\nSERVICES=(ftp sftp ftps scp tftp)\nTRANSFER_TYPES=(b a)             # binary \/ ascii\nCOMPRESSION_METHODS=(_ Z T)      # '_' = none, Z,T = some servers\nTRANSFER_DIR=(i o)               # incoming (upload) \/ outgoing (download)\nUSER_TYPES=(r l)                 # remote \/ local\nAUTH_METHODS=(0 1)               # 0=real user, 1=anonymous\nSTATUS=(c i)                     # complete \/ incomplete\n\n# ensure outfile exists and is writable (try to create)\ntouch \"$OUTFILE\" 2&gt;\/dev\/null || { echo \"Hata: $OUTFILE dosyas\u0131na yazam\u0131yorum. \u0130zinleri kontrol et veya ba\u015fka bir yol ver.\"; exit 1; }\n\n# helper: random int &#91;0,n-1]\nrand() { echo $((RANDOM % $1)); }\n\n# helper: random ip from prefix\nrand_ip() {\n  prefix=${CLIENT_NETS&#91;$((RANDOM % ${#CLIENT_NETS&#91;@]}))]}\n  echo \"${prefix}$((RANDOM % 254 + 1))\"\n}\n\n# helper: random element\npick() { arr=(\"$@\"); echo \"${arr&#91;$((RANDOM % ${#arr&#91;@]}))]}\"; }\n\n# generate random timestamp within last N seconds (default 48h)\nRANGE_SEC=$((48*3600))\nrand_timestamp() {\n  now=$(date +%s)\n  offset=$((RANDOM % RANGE_SEC))\n  t=$((now - offset))\n  date -u -d \"@$t\" '+%a %b %d %T %Y' 2&gt;\/dev\/null || date -d \"@$t\" '+%a %b %d %T %Y'\n}\n\ncount=0\ntransfer_number=1\n\nwhile true; do\n  # stop condition\n  if &#91; \"$MAX_COUNT\" -ne 0 ] &amp;&amp; &#91; \"$count\" -ge \"$MAX_COUNT\" ]; then\n    echo \"\u00dcretim tamamland\u0131: $count kay\u0131t \u00fcretildi.\"\n    exit 0\n  fi\n\n  # build random record\n  ts=$(rand_timestamp)                    # \"Sat Sep 13 06:31:18 2025\"\n  tn=$transfer_number\n  cip=$(rand_ip)\n  bytes=$(( (RANDOM * RANDOM) % (MAX_BYTES+1) )) # biraz da\u011f\u0131l\u0131m i\u00e7in \u00e7arp\u0131l\u0131yor\n  file=$(printf \"%s\" \"${FILES&#91;$((RANDOM % ${#FILES&#91;@]}))]}\")\n  ttype=${TRANSFER_TYPES&#91;$((RANDOM % ${#TRANSFER_TYPES&#91;@]}))]}\n  comp=${COMPRESSION_METHODS&#91;$((RANDOM % ${#COMPRESSION_METHODS&#91;@]}))]}\n  dir=${TRANSFER_DIR&#91;$((RANDOM % ${#TRANSFER_DIR&#91;@]}))]}\n  utype=${USER_TYPES&#91;$((RANDOM % ${#USER_TYPES&#91;@]}))]}\n  user=${USERS&#91;$((RANDOM % ${#USERS&#91;@]}))]}\n  svc=${SERVICES&#91;$((RANDOM % ${#SERVICES&#91;@]}))]}\n  auth=${AUTH_METHODS&#91;$((RANDOM % ${#AUTH_METHODS&#91;@]}))]}\n  # auth_method_extra: ya '*' ya k\u0131sa token\n  if (( RANDOM % 10 == 0 )); then\n    am_extra=\"tok$(printf '%04d' $((RANDOM % 10000)))\"\n  else\n    am_extra=\"*\"\n  fi\n  # success or fail by ratio\n  rprob=$(awk -v r=\"$RANDOM\" 'BEGIN{printf \"%.6f\", r\/32767}')\n  if (( $(awk -v p=\"$rprob\" -v s=\"$SUCCESS_RATIO\" 'BEGIN{print (p &lt; s)}') )); then\n    stat=\"c\"\n  else\n    stat=\"i\"\n  fi\n\n  # Compose xferlog line (matches \u00f6rnek format)\n  # Format: \"Sat Sep 13 06:31:18 2025 100 10.10.10.11 10 \/path\/to\/file b _ i r ftpuser ftp 0 * c\"\n  line=\"$ts $tn $cip $bytes $file $ttype $comp $dir $utype $user $svc $auth $am_extra $stat\"\n\n  # Append to file (atomic append)\n  printf \"%s\\n\" \"$line\" &gt;&gt; \"$OUTFILE\"\n\n  # increment counters\n  transfer_number=$((transfer_number + 1))\n  count=$((count + 1))\n\n  # sleep interval\n  sleep \"$INTERVAL\"\ndone\n<\/code><\/pre>\n\n\n\n<p>Let's check the Telegram log for possible errors:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># telegraf --config \/etc\/telegraf\/telegraf.conf --debug\n...\n2025-09-16T15:24:06Z D! &#91;outputs.influxdb_v2] Wrote batch of 16 metrics in 2.644223ms\n2025-09-16T15:24:06Z D! &#91;outputs.influxdb_v2] Buffer fullness: 0 \/ 10000 metrics\n2025-09-16T15:24:16Z D! &#91;outputs.influxdb_v2] Wrote batch of 16 metrics in 2.692254ms\n2025-09-16T15:24:16Z D! &#91;outputs.influxdb_v2] Buffer fullness: 0 \/ 10000 metrics\n2025-09-16T15:24:26Z D! &#91;outputs.influxdb_v2] Wrote batch of 16 metrics in 3.535188ms\n2025-09-16T15:24:26Z D! &#91;outputs.influxdb_v2] Buffer fullness: 0 \/ 10000 metrics\n2025-09-16T15:24:36Z D! &#91;outputs.influxdb_v2] Wrote batch of 17 metrics in 3.50399ms\n2025-09-16T15:24:36Z D! &#91;outputs.influxdb_v2] Buffer fullness: 0 \/ 10000 metrics\n...<\/code><\/pre>\n\n\n\n<p>It captures incoming ftp transfers at a certain interval very well.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f65011a38ef&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f65011a38ef\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"446\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-20-1024x446.png\" alt=\"\" class=\"wp-image-625\" srcset=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-20-1024x446.png 1024w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-20-300x131.png 300w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-20-768x334.png 768w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-20-1536x669.png 1536w, https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/resim-20-2048x892.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>FTP transfer loglar\u0131n\u0131 (xferlog) izlemek i\u00e7in Telegraf, InfluxDB ve Grafana kullanmay\u0131 \u00f6\u011frenin. Bu rehber, ad\u0131m ad\u0131m kurulum, yap\u0131land\u0131rma ve g\u00f6rselle\u015ftirme s\u00fcrecini anlatmaktad\u0131r. FTP sunucular\u0131 h\u00e2l\u00e2 bir\u00e7ok kurumda dosya aktar\u0131m\u0131 i\u00e7in yo\u011fun \u015fekilde kullan\u0131l\u0131yor. Ancak bu transferlerin ne kadar s\u00fcrd\u00fc\u011f\u00fc, hangi IP adreslerinden geldi\u011fi, dosya boyutlar\u0131 ve ba\u015far\u0131s\u0131z aktar\u0131mlar gibi detaylar\u0131 izlemek \u00e7o\u011fu zaman g\u00f6zden ka\u00e7abiliyor. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":606,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-605","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-genel-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>FTP Log \u0130zleme: Telegraf, InfluxDB ve Grafana ile Ad\u0131m Ad\u0131m Kurulum<\/title>\n<meta name=\"description\" content=\"FTP transfer loglar\u0131n\u0131 (xferlog) izlemek i\u00e7in Telegraf, InfluxDB ve Grafana kullanmay\u0131 \u00f6\u011frenin. Bu rehber, ad\u0131m ad\u0131m kurulum, yap\u0131land\u0131rma ve\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/oraclius.com.tr\/en\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FTP Log \u0130zleme: Telegraf, InfluxDB ve Grafana ile Ad\u0131m Ad\u0131m Kurulum\" \/>\n<meta property=\"og:description\" content=\"FTP transfer loglar\u0131n\u0131 (xferlog) izlemek i\u00e7in Telegraf, InfluxDB ve Grafana kullanmay\u0131 \u00f6\u011frenin. Bu rehber, ad\u0131m ad\u0131m kurulum, yap\u0131land\u0131rma ve\" \/>\n<meta property=\"og:url\" content=\"https:\/\/oraclius.com.tr\/en\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/\" \/>\n<meta property=\"og:site_name\" content=\"oraclius\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-16T15:32:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-16T17:39:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/ftp.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"YUNUS EMRE ATAY\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"YUNUS EMRE ATAY\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/\"},\"author\":{\"name\":\"YUNUS EMRE ATAY\",\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/#\\\/schema\\\/person\\\/15e2f7b9dc977c71806301e629135e09\"},\"headline\":\"FTP Log \u0130zleme: Telegraf, InfluxDB ve Grafana ile Ad\u0131m Ad\u0131m Kurulum\",\"datePublished\":\"2025-09-16T15:32:38+00:00\",\"dateModified\":\"2025-09-16T17:39:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/\"},\"wordCount\":970,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/#\\\/schema\\\/person\\\/15e2f7b9dc977c71806301e629135e09\"},\"image\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/oraclius.com.tr\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/ftp.jpg\",\"articleSection\":[\"Genel\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/\",\"url\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/\",\"name\":\"FTP Log \u0130zleme: Telegraf, InfluxDB ve Grafana ile Ad\u0131m Ad\u0131m Kurulum\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/oraclius.com.tr\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/ftp.jpg\",\"datePublished\":\"2025-09-16T15:32:38+00:00\",\"dateModified\":\"2025-09-16T17:39:11+00:00\",\"description\":\"FTP transfer loglar\u0131n\u0131 (xferlog) izlemek i\u00e7in Telegraf, InfluxDB ve Grafana kullanmay\u0131 \u00f6\u011frenin. Bu rehber, ad\u0131m ad\u0131m kurulum, yap\u0131land\u0131rma ve\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/#primaryimage\",\"url\":\"https:\\\/\\\/oraclius.com.tr\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/ftp.jpg\",\"contentUrl\":\"https:\\\/\\\/oraclius.com.tr\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/ftp.jpg\",\"width\":640,\"height\":640,\"caption\":\"ftp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\\\/\\\/oraclius.com.tr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FTP Log \u0130zleme: Telegraf, InfluxDB ve Grafana ile Ad\u0131m Ad\u0131m Kurulum\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/#website\",\"url\":\"https:\\\/\\\/oraclius.com.tr\\\/\",\"name\":\"oraclius\",\"description\":\"Linux, SQL, Oracle rehberleri ve daha fazlas\u0131 i\u00e7in oraclius.com.tr\u2019yi ziyaret edin.\",\"publisher\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/#\\\/schema\\\/person\\\/15e2f7b9dc977c71806301e629135e09\"},\"alternateName\":\"oracle\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/oraclius.com.tr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/#\\\/schema\\\/person\\\/15e2f7b9dc977c71806301e629135e09\",\"name\":\"YUNUS EMRE ATAY\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/oradb.jpeg\",\"url\":\"https:\\\/\\\/oraclius.com.tr\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/oradb.jpeg\",\"contentUrl\":\"https:\\\/\\\/oraclius.com.tr\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/oradb.jpeg\",\"width\":512,\"height\":512,\"caption\":\"YUNUS EMRE ATAY\"},\"logo\":{\"@id\":\"https:\\\/\\\/oraclius.com.tr\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/oradb.jpeg\"},\"description\":\"oracle\",\"sameAs\":[\"https:\\\/\\\/oraclius.com.tr\",\"https:\\\/\\\/instagram.com\\\/lemratal\",\"https:\\\/\\\/linkedin.com\\\/in\\\/emreatayy\",\"https:\\\/\\\/www.youtube.com\\\/@lemratal\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"FTP Log Monitoring: Step-by-Step Setup with Telegraf, InfluxDB, and Grafana","description":"FTP transfer loglar\u0131n\u0131 (xferlog) izlemek i\u00e7in Telegraf, InfluxDB ve Grafana kullanmay\u0131 \u00f6\u011frenin. Bu rehber, ad\u0131m ad\u0131m kurulum, yap\u0131land\u0131rma ve","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/oraclius.com.tr\/en\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/","og_locale":"en_US","og_type":"article","og_title":"FTP Log \u0130zleme: Telegraf, InfluxDB ve Grafana ile Ad\u0131m Ad\u0131m Kurulum","og_description":"FTP transfer loglar\u0131n\u0131 (xferlog) izlemek i\u00e7in Telegraf, InfluxDB ve Grafana kullanmay\u0131 \u00f6\u011frenin. Bu rehber, ad\u0131m ad\u0131m kurulum, yap\u0131land\u0131rma ve","og_url":"https:\/\/oraclius.com.tr\/en\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/","og_site_name":"oraclius","article_published_time":"2025-09-16T15:32:38+00:00","article_modified_time":"2025-09-16T17:39:11+00:00","og_image":[{"width":640,"height":640,"url":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/ftp.jpg","type":"image\/jpeg"}],"author":"YUNUS EMRE ATAY","twitter_card":"summary_large_image","twitter_misc":{"Written by":"YUNUS EMRE ATAY","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/#article","isPartOf":{"@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/"},"author":{"name":"YUNUS EMRE ATAY","@id":"https:\/\/oraclius.com.tr\/#\/schema\/person\/15e2f7b9dc977c71806301e629135e09"},"headline":"FTP Log \u0130zleme: Telegraf, InfluxDB ve Grafana ile Ad\u0131m Ad\u0131m Kurulum","datePublished":"2025-09-16T15:32:38+00:00","dateModified":"2025-09-16T17:39:11+00:00","mainEntityOfPage":{"@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/"},"wordCount":970,"commentCount":0,"publisher":{"@id":"https:\/\/oraclius.com.tr\/#\/schema\/person\/15e2f7b9dc977c71806301e629135e09"},"image":{"@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/#primaryimage"},"thumbnailUrl":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/ftp.jpg","articleSection":["Genel"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/","url":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/","name":"FTP Log Monitoring: Step-by-Step Setup with Telegraf, InfluxDB, and Grafana","isPartOf":{"@id":"https:\/\/oraclius.com.tr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/#primaryimage"},"image":{"@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/#primaryimage"},"thumbnailUrl":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/ftp.jpg","datePublished":"2025-09-16T15:32:38+00:00","dateModified":"2025-09-16T17:39:11+00:00","description":"FTP transfer loglar\u0131n\u0131 (xferlog) izlemek i\u00e7in Telegraf, InfluxDB ve Grafana kullanmay\u0131 \u00f6\u011frenin. Bu rehber, ad\u0131m ad\u0131m kurulum, yap\u0131land\u0131rma ve","breadcrumb":{"@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/#primaryimage","url":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/ftp.jpg","contentUrl":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2025\/09\/ftp.jpg","width":640,"height":640,"caption":"ftp"},{"@type":"BreadcrumbList","@id":"https:\/\/oraclius.com.tr\/ftp-log-izleme-telegraf-influxdb-ve-grafana-ile-adim-adim-kurulum\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/oraclius.com.tr\/"},{"@type":"ListItem","position":2,"name":"FTP Log \u0130zleme: Telegraf, InfluxDB ve Grafana ile Ad\u0131m Ad\u0131m Kurulum"}]},{"@type":"WebSite","@id":"https:\/\/oraclius.com.tr\/#website","url":"https:\/\/oraclius.com.tr\/","name":"oraclius","description":"Linux, SQL, Oracle rehberleri ve daha fazlas\u0131 i\u00e7in oraclius.com.tr\u2019yi ziyaret edin.","publisher":{"@id":"https:\/\/oraclius.com.tr\/#\/schema\/person\/15e2f7b9dc977c71806301e629135e09"},"alternateName":"oracle","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/oraclius.com.tr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/oraclius.com.tr\/#\/schema\/person\/15e2f7b9dc977c71806301e629135e09","name":"YUNUS EMRE ATAY","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2024\/12\/oradb.jpeg","url":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2024\/12\/oradb.jpeg","contentUrl":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2024\/12\/oradb.jpeg","width":512,"height":512,"caption":"YUNUS EMRE ATAY"},"logo":{"@id":"https:\/\/oraclius.com.tr\/wp-content\/uploads\/2024\/12\/oradb.jpeg"},"description":"oracle","sameAs":["https:\/\/oraclius.com.tr","https:\/\/instagram.com\/lemratal","https:\/\/linkedin.com\/in\/emreatayy","https:\/\/www.youtube.com\/@lemratal"]}]}},"_links":{"self":[{"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/posts\/605","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/comments?post=605"}],"version-history":[{"count":5,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/posts\/605\/revisions"}],"predecessor-version":[{"id":652,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/posts\/605\/revisions\/652"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/media\/606"}],"wp:attachment":[{"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/media?parent=605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/categories?post=605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/tags?post=605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}