March 2020 Summaries
6 posts from Coralogix
Filter
Month:
Year:
Post Summaries
Back to Blog
Jenkins is an automation tool that facilitates building, testing, and deploying software through pipelines, ultimately supporting Continuous Delivery (CD). This tutorial provides a hands-on approach to creating a Jenkins pipeline, using a car assembly analogy to illustrate the sequential and interconnected nature of pipeline stages. The guide walks users through configuring a Jenkins pipeline, emphasizing the importance of automation to reduce errors and eliminate repetitive tasks. It covers setting up a basic pipeline with stages for building, testing, and publishing, using shell commands to automate the creation and verification of files. The tutorial also introduces the concept of "Pipeline as Code," where the pipeline configuration is stored in a Git repository, allowing for version control and collaboration. This approach enhances maintainability and traceability, ensuring changes can be easily tracked and reverted if necessary. By following this tutorial, users can automate their software development processes, improving efficiency and reliability.
Mar 23, 2020
2,505 words in the original blog post.
Multiline logs are logs that appear as multiple lines in a log file, often due to formatting choices like stack traces, and pose challenges for standard log shippers like Fluentd, Filebeat, and Logstash, which read log files line-by-line. This can result in each line being treated as an independent log entry, making the log data difficult to interpret. To address this issue, these shipping methods offer configuration options to pre-format and combine multiline logs into single log messages, ensuring better readability and usability. For instance, Logstash and Filebeat utilize patterns and settings like "negate" and "match" to determine whether a log line should be grouped with previous or next lines, while Fluentd uses regular expressions to define multiline start lines and patterns. Proper configuration is crucial to avoid missing log entries or incorrectly parsed log data, and tools like Coralogix provide additional features to check for and resolve multiline issues.
Mar 23, 2020
1,427 words in the original blog post.
Elasticsearch storage optimization involves both hardware and data management strategies to improve performance and efficiency. On the hardware side, selecting appropriate disk types, such as SSDs for frequently accessed data and HDDs for long-term storage, is crucial. For data management, configuring index settings like disabling normalization factors, adjusting field mappings, and choosing efficient compression algorithms can significantly reduce storage requirements, as demonstrated by experiments that achieved up to a 50% reduction in index size. Additionally, employing node tiering strategies, such as hot-warm-cold architectures, allows for dynamic shard allocation based on data lifecycle phases and resource availability. These optimizations require a deep understanding of specific use cases and can be further enhanced through benchmarking and simulations using tools like Elastic's Rally.
Mar 22, 2020
5,305 words in the original blog post.
Elasticsearch is a distributed search and analytics engine that excels in handling large data volumes for real-time searches and log analysis, offering structured and full-text queries that allow retrieval of specific documents from indices. Built on the Apache Lucene library, Elasticsearch supports complex queries using JSON-based syntax and includes features like scripting with Painless for customizing search behaviors. The guide provides examples of 42 Elasticsearch queries, divided into structured and full-text categories, such as match, multi-match, term, and range queries, each with specific use cases like fetching documents based on criteria or matching text across fields. Additional functionalities covered include boosting search results, sorting documents by various fields, and using compound queries like bool queries to combine multiple conditions. Elasticsearch also supports parent-child relationships, enabling complex queries that can fetch parent documents based on child document criteria and vice versa. The tool is integral to the ELK stack, commonly used for observability data, logs, and enhancing logging capabilities in environments like Kubernetes.
Mar 19, 2020
8,640 words in the original blog post.
The evolution of Security Information and Event Management (SIEM) is closely linked with the advancements in cloud computing, which have introduced both technological innovations and new security challenges. As cloud infrastructures become more ephemeral, ensuring visibility and comprehension of components becomes increasingly complex. Additionally, the costs associated with network traffic monitoring in the cloud can hinder effective security measures. SIEM solutions have evolved from expensive, on-premise systems with limited scalability to cloud-based solutions that leverage elastic computing resources and machine learning for better data analysis and threat detection. However, the abundance of data can overwhelm users, necessitating new-generation SIEMs that emphasize operational capabilities, data optimization, and integration with third-party systems. These modern solutions aim to reduce false positives and enhance security insights through AI and machine learning, promoting a comprehensive understanding of user and entity behavior. This enriched approach to data, combined with the ability to correlate diverse events, is critical for detecting threats such as advanced persistent threats and DDoS attacks, ultimately offering actionable intelligence and recommendations to organizations.
Mar 18, 2020
1,795 words in the original blog post.
Coralogix utilized the Go programming language, known for its performance and concurrency advantages, to optimize a service that parses billions of logs daily, achieving a significant CPU reduction of over 40%. Initially, the service consumed substantial CPU resources while running on AWS infrastructure, prompting Coralogix to conduct detailed profiling using Go's tools to identify bottlenecks, particularly high garbage collection (GC) activity. By upgrading to a newer Go version and using the GOGC flag to adjust the GC trigger, they effectively reduced CPU usage, increased memory consumption, and stabilized performance during peak times. Further optimization involved reducing unnecessary object allocations, such as converting customer IDs from int to string more efficiently, which led to additional CPU savings. The result was a more stable infrastructure, reducing the need for tuning based on exceptional cases and leading to overall improved service performance.
Mar 01, 2020
1,610 words in the original blog post.