Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Cara menggunakan Elasticsearch dalam Linux untuk analisis log dan carian
Dalam era Internet hari ini, kita berhadapan dengan sejumlah besar data, terutamanya dalam pelayan dan aplikasi. Log ialah cara penting untuk mengurus data ini dan membantu kami memahami dengan lebih baik perkara yang berlaku pada aplikasi dan pelayan kami. Elasticsearch ialah alat popular untuk pengagregatan log, analisis dan carian Kebolehskalaan dan kebolehsuaiannya yang tinggi menjadikannya peneraju dalam pemprosesan data dan analisis log. Dalam artikel ini, kita akan belajar cara menggunakan Elasticsearch dalam Linux untuk analisis log dan carian.
Cara paling mudah untuk memasang Elasticsearch ialah menambah repositori Elasticsearch daripada sumber awam dan kemudian memasang Elasticsearch. Cara anda menambah sumber bergantung pada pengedaran Linux yang anda gunakan. Dalam Ubuntu, anda boleh menggunakan arahan berikut:
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - $ sudo apt-get install apt-transport-https $ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list $ sudo apt-get update && sudo apt-get install elasticsearch
Secara lalai, Elasticsearch mendengar pada port 9200 dan 9300 pada localhost, tetapi anda boleh menukar konfigurasi ini . Dalam Elasticsearch, fail konfigurasi terletak di /etc/elasticsearch/elasticsearch.yml
. Dalam fail ini, anda boleh mengkonfigurasi tetapan seperti nama kluster, nama nod, alamat pendengaran dan penemuan kluster.
Sebagai contoh, berikut ialah fail konfigurasi Elasticsearch mudah:
cluster.name: my_cluster_name node.name: my_node_name path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 127.0.0.1 http.port: 9200
Terdapat dua cara untuk mengimport data log ke dalam Dalam Elasticsearch: Import dan gunakan Logstash secara manual. Dalam artikel ini, kami akan menggunakan Logstash untuk mengimport log.
Cara paling mudah untuk memasang Logstash ialah menggunakan sumber awam. Dengan mengandaikan anda menjalankan Elasticsearch pada sistem Ubuntu, anda boleh memasang Logstash menggunakan arahan berikut:
$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list $ sudo apt-get update && sudo apt-get install logstash
Setelah pemasangan selesai, buat fail dengan nama dan sambungan ".conf" dalam direktori /etc/logstash/conf.d
Akan menentukan cara mengendalikan data log yang akan diimport. Berikut ialah contoh fail konfigurasi mudah:
input { file { path => "/var/log/myapp.log" start_position => "beginning" sincedb_path => "/dev/null" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ] } geoip { source => "clientip" } } output { elasticsearch { hosts => ["localhost:9200"] } stdout { codec => rubydebug } }
Dalam fail konfigurasi, kami menentukan laluan fail log untuk dibaca, kedudukan permulaan log semasa dan tetapan untuk tidak menggunakan log yang telah diimport fail untuk penapisan. Pada masa yang sama, kami mentakrifkan penapisan data menggunakan Grok, menyediakan format tarikh, menghuraikan alamat IP klien, dan mengeluarkan hasilnya kepada Elasticsearch.
Setelah anda mengimport data log anda ke dalam Elasticsearch, anda boleh menggunakan pertanyaan dan keupayaan pengagregatan Elasticsearch untuk mencari dan menganalisis data. API REST Elasticsearch menyediakan pelbagai alat pertanyaan dan pengagregatan yang boleh dipanggil menggunakan curl, Postman atau mana-mana klien REST yang lain.
Berikut ialah contoh pertanyaan carian asas yang akan mencari semua entri log bermula dengan "ralat" atau "pengecualian" dalam julat masa:
curl -X GET "localhost:9200/_search?q=message:error OR message:exception&filter_path=hits.hits._source"
Jika anda bertanya untuk lebih lanjut hasil carian, Contohnya, untuk mencari medan tertentu atau menapis hasil menggunakan ungkapan biasa, anda boleh menggunakan bahasa pertanyaan Elasticsearch sendiri, DSL Pertanyaan. Berikut ialah contoh pertanyaan carian yang lebih lanjut:
{ "query": { "regexp": { "message": "WARN.*" } } }
Ungkapan biasa pertanyaan " WARN.* " akan mencari semua mesej log untuk mesej yang bermula dengan " WARN ".
Kesimpulan
Dalam artikel ini, kami mendapat gambaran keseluruhan tentang cara menggunakan Elasticsearch dalam Linux untuk analisis log dan carian. Kami mengetahui bahawa Elasticsearch ialah alat yang berkuasa yang boleh membantu kami memproses dan menganalisis sejumlah besar data log, yang boleh menjadi sangat berguna semasa menyelesaikan masalah, mengesan masalah yang mungkin berlaku atau hanya memahami perkara yang berlaku pada aplikasi dan pelayan kami.
Atas ialah kandungan terperinci Cara menggunakan Elasticsearch dalam Linux untuk analisis log dan carian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!