Rumah  >  Artikel  >  Tutorial sistem  >  Penjelasan terperinci tentang rakan asas Elasticsearch Logstash

Penjelasan terperinci tentang rakan asas Elasticsearch Logstash

WBOY
WBOYasal
2024-07-18 06:56:47987semak imbas

Penjelasan terperinci tentang rakan asas Elasticsearch Logstash

Logstash ialah alat pemprosesan data yang berkuasa yang boleh merealisasikan penghantaran data, pemprosesan format, output yang diformatkan dan mempunyai fungsi pemalam yang berkuasa, yang sering digunakan untuk pemprosesan log.

1 Input

Data boleh diekstrak daripada fail, storan dan pangkalan data Input mempunyai dua pilihan Satu ialah menyerahkannya kepada Penapis untuk penapisan dan pemangkasan. Yang satu lagi diberikan terus kepada Output

Tapis

Keupayaan untuk mengubah dan menghuraikan data secara dinamik. Maklumat data boleh ditapis dan dipangkas dengan cara tersuai

Output

Menyediakan banyak pilihan output, anda boleh menghantar data ke tempat yang anda inginkan, dengan fleksibiliti untuk membuka kunci banyak kes penggunaan hiliran.

Penjelasan terperinci tentang rakan asas Elasticsearch Logstash

2. Pemasangan dan penggunaan
1.Pemasangan
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.0.1.rpm
yum install -y ./logstash-6.0.1.rpm
2.Logstash fail konfigurasi
vim /etc/logstash/logstash.yml
path.data: /var/lib/logstash                                    # 数据存放路径
path.config: /etc/logstash/conf.d/*.conf                        # 其他插件的配置文件,输入输出过滤等等
path.logs: /var/log/logstash                                    # 日志存放路径
3.Fail konfigurasi JVM dalam Logstash Logstash ialah program yang dibangunkan berdasarkan Java dan perlu dijalankan dalam JVM Ia boleh ditetapkan untuk JVM dengan mengkonfigurasi jvm.options. Contohnya, memori maksimum dan minimum, mekanisme pembersihan sampah, dsb. Berikut adalah dua daripada yang paling biasa digunakan.

Peruntukan memori JVM tidak boleh terlalu besar atau terlalu kecil Jika terlalu besar, ia akan memperlahankan sistem pengendalian. Terlalu kecil untuk bermula.

vim /etc/logstash/jvm.options                               # logstash有关JVM的配置
-Xms256m                                                    # logstash最大最小使用内存
-Xmx1g

4. Konfigurasi koleksi log paling mudah Pasang httpd untuk menguji dan konfigurasikan Logstash untuk mengumpul fail log accless.log Apache
yum install httpd
echo "Hello world" > /var/www/html/index.html               # 安装httpd,创建首页用于测试
vim /etc/logstash/conf.d/test.conf
input {
    file {                                                  # 使用file作为数据输入
        path => ['/var/log/httpd/access_log']               # 设定读入数据的路径
        start_position => beginning                         # 从文件的开始处读取,end从文件末尾开始读取
    }
}
output {                                                    # 设定输出的位置
    stdout {
        codec => rubydebug                                  # 输出至屏幕
    }
}

5. Fail konfigurasi ujian Logstash ialah arahan terbina dalam tetapi ia tidak termasuk dalam pembolehubah persekitaran, jadi anda hanya boleh menggunakan laluan mutlak untuk menggunakan arahan ini.
/usr/share/logstash/bin/logstash -t  -f  /etc/logstash/conf.d/test.conf   # 测试执行配置文件,-t要在-f前面
Configuration OK                                                          # 表示测试OK

6. Mulakan simpanan log Selepas menjalankan logstash dalam sesi semasa, jangan tutup sesi ini buat sementara waktu, dan kemudian buka tetingkap baharu sebagai Sesi 2
/usr/share/logstash/bin/logstash  -f  /etc/logstash/conf.d/test.conf

Selepas bermula, gunakan arahan curl dalam sesi 2 untuk menguji

curl 172.18.68.14

Kemudian anda boleh melihat maklumat output apabila anda kembali ke sesi sebelumnya 1

{
      "@version" => "1",
          "host" => "logstash.shuaiguoxia.com",
          "path" => "/var/log/httpd/access_log",
    "@timestamp" => 2017-12-10T14:07:07.682Z,
       "message" => "172.18.68.14 - - [10/Dec/2017:22:04:44 +0800] \"GET / HTTP/1.1\" 200 12 \"-\" \"curl/7.29.0\""
}

Pada ketika ini, konfigurasi Logstash yang paling mudah telah selesai Di sini, output langsung yang dikumpul hanya dikumpulkan tanpa penapisan atau pemangkasan.

3. Elasticsearch dan Logstash

上面的配置时Logsatsh从日志文件中抽取数据,然后输出至屏幕。那么在生产中往往是将抽取的数据过滤后输出到Elasticsearch中。下面讲解Elasticsearch结合Logstash

Logstash抽取httpd的access.log文件,然后经过过滤(结构化)之后输出给Elasticsearch Cluster,在使用Head插件就可以看到抽取到的数据。(Elasticsearch Cluster与Head插件搭建请查看前两篇文章)

Penjelasan terperinci tentang rakan asas Elasticsearch Logstash

配置Logstash

    vim /etc/logstash/conf.d/test.conf
    input {
    file {
        path => ['/var/log/httpd/access_log']
        start_position => "beginning"
    }
    }
    filter {
    grok {
        match => {
            "message" => "%{COMBINEDAPACHELOG}"
        }

        remove_field => "message"   
    }
    }
    output {
    elasticsearch {
        hosts => ["http://172.18.68.11:9200","http://172.18.68.12:9200","http://172.18.68.13:9200"]
        index => "logstash-%{+YYYY.MM.dd}"
        action => "index"
        document_type => "apache_logs"
    }
    }

启动Logstash

     /usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/test.conf       # 测试配置文件
    Configuration OK
     /usr/share/logstash/bin/logstash  -f /etc/logstash/conf.d/test.conf         # 启动Logstash

测试

每个执行10次172.18.68.14,位Logstash的地址

    curl 127.0.0.1
    curl 172.18.68.14

验证数据

使用浏览器访问172.18.68.11:9100(Elastisearch 安装Head地址,前面文章有讲)

选择今天的日期,就能看到一天内访问的所有数据。

Penjelasan terperinci tentang rakan asas Elasticsearch Logstash

四、监控其他

监控Nginx日志

仅仅列了filter配置块,input与output参考上一个配置

    filter {
        grok {
                match => {
                        "message" => "%{HTTPD_COMBINEDLOG} \"%{DATA:realclient}\""
                }
                remove_field => "message"
        }
        date {
                match => ["timestamp","dd/MMM/YYYY:H:m:s Z"]
                remove_field => "timestamp"
        }
    }

监控Tomcat

仅仅列了filter配置块,input与output参考上一个配置

    filter {
        grok {
                match => {
                        "message" => "%{HTTPD_COMMONLOG}"
                }
                remove_field => "message"
        }
        date {
                match => ["timestamp","dd/MMM/YYYY:H:m:s Z"]
                remove_field => "timestamp"
        }
    } 
五、Filebeat

现在已经搭建成在节点安装Logstash并发送到Elasticsearch中去,但是Logstash是基于Java开发需要运行在JVM中,所以是一个重量级采集工具,仅仅对于一个日志采集节点来说使用Logstash太过重量级,那么就可以使用一个轻量级日志收集工具Filebeat来收集日志信息,Filebeat同一交给Logstash进行过滤后再Elasticsearch。这些在接下来的文章在进行讲解,先放一张架构图吧。

Penjelasan terperinci tentang rakan asas Elasticsearch Logstash

Atas ialah kandungan terperinci Penjelasan terperinci tentang rakan asas Elasticsearch Logstash. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn