Cara menggunakan Java untuk membangunkan sistem pengurusan dan analisis log berasaskan ELK
Dengan pembangunan dan aplikasi teknologi maklumat yang meluas, log sistem telah menjadi bahagian yang amat diperlukan dalam setiap sistem perisian. Semasa menjalankan perisian, sistem akan menjana sejumlah besar maklumat log, yang memainkan peranan penting dalam penyelesaian masalah, pengoptimuman prestasi, pengauditan keselamatan, dsb. Oleh itu, amat penting untuk membangunkan sistem pengurusan dan analisis log yang cekap dan boleh dipercayai.
ELK (Elasticsearch, Logstash, Kibana) ialah penyelesaian pengurusan dan analisis log yang popular. Elasticsearch ialah enjin carian dan analisis yang diedarkan untuk data besar yang boleh digunakan untuk menyimpan dan mengindeks sejumlah besar data log. Logstash ialah saluran paip pemprosesan data sumber terbuka yang boleh mengumpul, mengubah dan menghantar data. Kibana ialah alat untuk menggambarkan dan menganalisis data Ia boleh memaparkan dan mencari data dalam carta Elasticsearch.
Yang berikut akan memperkenalkan cara menggunakan Java untuk membangunkan sistem pengurusan dan analisis log berasaskan ELK, dan memberikan contoh kod khusus. . .elastic.co/downloads/elasticsearch dan ekstrak ke direktori tempatan. Kemudian, jalankan bin/elasticsearch.bat (Windows) atau bin/elasticsearch (Linux) untuk memulakan Elasticsearch.
1.3 Pasang Kibana
Muat turun pakej pemasangan Kibana terkini dari tapak web rasmi https://www.elastic.co/downloads/kibana dan ekstraknya ke direktori tempatan. Kemudian, jalankan bin/kibana.bat (Windows) atau bin/kibana (Linux) untuk memulakan Kibana.
Membangunkan klien koleksi log JavaSeterusnya, anda perlu membangunkan klien koleksi log Java untuk menghantar log sistem ke Logstash untuk diproses. Contoh kod khusus adalah seperti berikut:
public class LogstashClient { private static final String LOGSTASH_HOST = "127.0.0.1"; private static final int LOGSTASH_PORT = 5000; private Socket socket; public LogstashClient() throws IOException { socket = new Socket(LOGSTASH_HOST, LOGSTASH_PORT); } public void sendLog(String log) throws IOException { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); writer.write(log); writer.newLine(); writer.flush(); } public void close() throws IOException { socket.close(); } }
Dalam aplikasi, gunakan kelas LogstashClient untuk menghantar log:
public class Application { private static final Logger LOGGER = LoggerFactory.getLogger(Application.class); public static void main(String[] args) { try (LogstashClient client = new LogstashClient()) { LOGGER.info("This is an info log."); LOGGER.error("This is an error log."); } catch (IOException e) { e.printStackTrace(); } } }Konfigurasikan Logstash untuk pemprosesan data
input { tcp { port => 5000 codec => json_lines } } output { elasticsearch { hosts => ["localhost:9200"] index => "logs-%{+YYYY.MM.dd}" } }
Memvisualisasikan dan menanyakan data log
Kesimpulanlogstash.conf
Atas ialah kandungan terperinci Cara menggunakan Java untuk membangunkan sistem pengurusan dan analisis log berasaskan ELK. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!