65. Sistemes de monitorització. Monitorització de sistemes i monitorització d'aplicacions.pdf
Document Details
Uploaded by FashionableNobility
Barcelona
Full Transcript
65. Sistemes de monitorització. Monitorització de sistemes i monitorització d'aplicacions ⚒ 65. Sistemes de monitorització. Monitorització de sistemes i monitorització d'aplicacions Sistemes de monitorització. Monitorització de sistemes i monitorització d'aplicacions. Model de monitorització on prem...
65. Sistemes de monitorització. Monitorització de sistemes i monitorització d'aplicacions ⚒ 65. Sistemes de monitorització. Monitorització de sistemes i monitorització d'aplicacions Sistemes de monitorització. Monitorització de sistemes i monitorització d'aplicacions. Model de monitorització on premises vs monitorització al núvol. Explica per preparar un examen de Tècnic Superior en tecnologies de la informació el tema: Sistemes de monitorització. Monitorització de sistemes i monitorització d'aplicacions. Model de monitorització on premises vs monitorització al núvol. AI La monitorització de sistemes i d'aplicacions és una part essencial de la gestió de les tecnologies de la informació. Aquesta pràctica implica el seguiment constant del rendiment i la funcionalitat dels sistemes informàtics i les aplicacions per assegurar-se que estan funcionant correctament i eficientment. 1. Monitorització de Sistemes: Aquesta monitorització es centra en el seguiment del rendiment dels components físics i lògics d'un sistema informàtic, com ara servidors, xarxes, dispositius de emmagatzematge, etc. Els administradors utilitzen eines de monitorització per detectar qualsevol problema potencial o real, com ara fallades del sistema, càrregues excessives o problemes de xarxa. 2. Monitorització d'Aplicacions: Aquest tipus de monitorització es centra en el seguiment del rendiment i la funcionalitat d'una aplicació específica. Això pot incloure aspectes com la velocitat de càrrega, l'ús de recursos, els errors d'aplicació i més. La monitorització d'aplicacions ajuda a assegurar que les aplicacions estan funcionant correctament i proporcionant una bona experiència d'usuari. 3. Model de Monitorització On-Premises vs Monitorització al Núvol: Monitorització On-Premises: En aquest model, les eines de monitorització són instal·lades directament en els servidors o dispositius que es volen supervisar. Això proporciona un control complet sobre el procés de monitorització, però també pot requerir més recursos (com ara temps, personal i diners) per mantenir i gestionar aquestes eines. Monitorització al Núvol: En aquest model, les eines de monitorització són allotjades en un proveïdor de serveis al núvol. Això pot reduir la càrrega sobre els recursos interns ja que no cal mantenir físicament aquestes eines. No obstant això, també pot implicar menys control sobre el procés de monitorització ja que depèn del proveïdor del servei. Per preparar-se per a un examen sobre aquest tema, seria útil familiaritzar-se amb diferents eines i tècniques utilitzades per a la monitorització tant dels sistemes com d'aplicacions. També seria beneficiós comprendre les avantatges i desavantatges entre els models on-premises i al núvol. AI Els sistemes de monitorització són eines que permeten als administradors de sistemes i aplicacions supervisar el rendiment i l'estat dels seus sistemes i aplicacions. Això ajuda a detectar problemes i a prendre mesures per resoldre'ls abans que afectin els usuaris finals. La monitorització de sistemes implica la supervisió dels components del sistema, com ara els servidors, les xarxes i els dispositius de magatzematge. Això inclou la supervisió dels recursos del sistema, com ara la CPU, la memòria i l'espai en disc. La monitorització d'aplicacions implica la supervisió de les aplicacions que s'estan executant en el sistema. Això inclou la supervisió del rendiment de l'aplicació, com ara el temps de resposta i el nombre d'errors. El model de monitorització on premises implica l'ús d'eines de monitorització instal·lades localment en els servidors o dispositius que es volen supervisar. Això proporciona un control més gran sobre les dades de monitorització, però també requereix una inversió inicial més gran en hardware i software. La monitorització al núvol implica l'ús d'eines de monitorització basades en el núvol que es connecten als servidors o dispositius que es volen supervisar a través d'internet. Això proporciona una solució més escalable i flexible, ja que no requereix una inversió inicial important en hardware o software. No obstant, també pot implicar una menor capacitat de control sobre les dades de monitorització. assistantby scite 1. "Monitoring and Managing Performance in Cloud and On-Premises Environments" by Gartner (2019) 2. "The Essential Guide to Application Performance Management" by Dynatrace (2020) 3. "Monitoring and Troubleshooting Distributed Systems" by O'Reilly Media (2018) 4. "Cloud Monitoring and Operations" by Google Cloud (2021) 5. "Practical Monitoring: Effective Strategies for the Real World" by Mike Julian (2017) In order to provide a detailed guide to monitoring systems and applications, it is important to consider various aspects of the monitoring process. This includes understanding the goals and objectives of monitoring, selecting appropriate monitoring tools and techniques, and implementing an effective monitoring strategy. 1. Understanding Monitoring Goals and Objectives: Before diving into the technical aspects of monitoring, it is crucial to define the goals and objectives of the monitoring process. This involves identifying the key performance indicators (KPIs) that need to be monitored, such as response time, throughput, and error rates. Additionally, it is important to determine the desired level of granularity and frequency of monitoring. 2. Selecting Monitoring Tools and Techniques: There are numerous monitoring tools and techniques available, both for on-premises and cloud-based monitoring. It is essential to evaluate and select the tools that best align with the organization's requirements. Some popular monitoring tools include Nagios, Zabbix, Prometheus, and Datadog. These tools offer features such as real-time monitoring, alerting, and visualization of metrics. 3. Implementing an Effective Monitoring Strategy: To ensure the success of the monitoring process, it is important to develop a comprehensive monitoring strategy. This involves defining the scope of monitoring, establishing monitoring thresholds and alerts , and setting up a centralized monitoring system. It is also crucial to consider factors such as scalability, fault tolerance, and data retention when designing the monitoring infrastructure. 4. Monitoring On-Premises Systems: For on-premises monitoring, organizations need to deploy monitoring agents or sensors on their infrastructure. These agents collect data on various system metrics, such as CPU usage, memory utilization, and network traffic. The collected data is then analyzed and visualized to provide insights into the performance and health of the systems. 5. Monitoring Cloud-Based Systems: Cloud-based monitoring involves leveraging the monitoring services provided by cloud providers. These services offer features such as auto-scaling, log analysis, and distributed tracing. Organizations can use cloud- native monitoring tools, such as Amazon CloudWatch, Azure Monitor, or Google Cloud Monitoring, to monitor their cloud-based systems and applications. 6. Analyzing and Acting on Monitoring Data: Collecting monitoring data is only the first step. It is equally important to analyze the data and take appropriate actions based on the insights gained. This may involve identifying and resolving performance bottlenecks, optimizing resource allocation, or implementing proactive measures to prevent potential issues. In conclusion, monitoring systems and applications is a critical aspect of ensuring their performance, availability, and reliability. By understanding the goals and objectives of monitoring, selecting appropriate tools and techniques, and implementing an effective monitoring strategy, organizations can gain valuable insights into their systems and applications, enabling them to make informed decisions and take proactive measures to optimize performance and mitigate risks. References: Tan, E., Sadak, D., & Ayvaz, M. (2020). Optimum design of sewer systems by using differential evolution algorithm. Teknik Dergi, 31(5), 10229-10250. https://doi.org/10.18400/tekderg.541507 Bones Pràctiques en la monotorització Fase 1 Identificar els problemes quan succeeixin Per fer això cal: Identificar els actius Esto incluye todo aquello susceptible de ser monitorizado. Deberás establecer una jerarquía , ya que existen relaciones entre los diferentes elementos. Por ejemplo, la relación entre elementos clave, como las bases de datos y los sistemas que los alimentan. Un fallo en la BBDD afectará a todo. Esto debes tenerlo en cuenta. Identifica qué debe ser monitorizado y qué no: Por criticidad Clasificar tus activos Céntrate en los elementos críticos y en aquellos que están relacionados. Puedes crear una jerarquía de elementos que te ayudará a entender cómo se relacionan estos. Por ejemplo: como: Verificación de servicio accesible (Puerto TCP o transacción WEB). Proceso de aplicación, que esté activo, recursos RAM / CPU. Consumo CPU del SO base, RAM libre en el SO base, Disco libre en el SO base. Estado general de la máquina: Load Average, Tráfico de Red. Conectividad básica de la máquina (ping). Esto se debería agrupar en un único elemento de forma que, de “un vistazo”, se pueda ver fácilmente. Por servicio, por tecnología o por origen. En Pandora FMS se puede hacer utilizando servicios, grupos o tags. Definir qué hacer cuando hay problemas lo notificamos eficazmente? A quien, con qué medios, con qué información. Categorizar las alertas Definir, en todas las alertas, qué queremos destapar y la categoría de la misma, con el fin de evitar alarmar por cosas innecesarias y que nuestros soportes sepan con qué criticidad atender cada tipo de alertas. 1. Nos evitará pasar por alto la monitorización de elementos relevantes de nuestros sistemas 2. Cuando algo malo ocurra, tendremos datos relativos al problema, fáciles de acceder e interpretar porque se decidió tomar información del servicio en conjunto y no de forma aislada. Esto ayudará a determinar la causa del problema (root cause analysis). 3. Cuando suceda un problema, las partes implicadas ya estarán implicadas e informadas. 4. Ofrecer únicamente la información necesaria Fase 2. Identificando los problemas antes de que sucedan Determinar cuándo se acerca un problema. Debe tenerse mucho cuidado con los falsos positivos y los falsos negativos. Monitorización por intuición: Tendremos pequeñas alertas que nos avisen cuando algo se sale de los umbrales operativos “normales”. Para eso deberemos crear una categoría de alertas , como comentábamos en la primera fase, que deje bien claro que no son problemas, sino cosas sospechosas , eliminando el concepto de “criticidad” en ellas. otra manera es crear cuadros de mando, pantallas o dashboards. Poner en una pantalla muy grande un montón de gráficas en tiempo real. Un operador que mire siempre las mismas pantallas, en el mismo orden, con el tiempo adquiere la habilidad innata de decir “algo no va bien”. Herramientas imprescindibles Alertas. Deben de permitir un escalado, una agrupación de elementos (correlación) y la definición de acciones complejas (más allá de enviar un email o un SMS). Medios como Slack o Whatsapp tienen la capacidad de insertar un evento en un grupo, incluyendo una gráfica y una descripción del problema junto con un enlace directo a la monitorización, permite una respuesta mucho más rápida que un simple SMS. Gráficas. Deberían ser una herramienta , no algo estático; es decir, deben ser filtrables , estrujables, se deben poder combinar dinámicamente con otras series de datos , poder ver la evolución detallada a lo largo de grandes períodos de tiempo, que se puedan comparar con valores en intervalos similares de otros meses, etc. Logs Acceso directo a la fuente. Esto ya se excede de lo que sistema de monitorización hace por lo general. Pero si tenemos información precisa (alertas), series de datos que nos ayudan a entender el comportamiento (gráficas) y datos concretos que ayudan a concretar nuestro análisis (logs) el siguiente paso lógico es acceder directamente al sistema que genera toda esa información. Que una herramienta de monitorización nos permita acceder fácilmente a ese sistema es el cierre del círculo. Introducció a la monotorització on-Premises Per què és diferent el monitoratge onpremise? Tot i que un log és un log i una mètrica és una mètrica, existeixen diferències entre el monitoratge d'aplicacions al núvol i onpremise: Instrumentació Generalment tenim control sobre l'entorn del host, cosa que ens permet la instal·lació d'agents allí on siguin necessaris. També fa que sigui més complex que al núvol, on el servei ja proveeix de les dades pel monitoratge. Resiliència i recuperació Al núvol acostuma a ser fàcil replicar càrrega o recuperar un entorn de backup. Utilització de recursos Tot i que volem saber si estem sobredimensionant el servei, això no és tant important com al núvol on paguem per aquest dimensionament. Serveix i arquitectures Les arquitectures acostumen a ser més simples onpremise, legacy a màquines virtuals,... Millors Pràctiques 1. Usar eines que permetin el monitoratge onpremise i al cloud. 2. Usar "Synthetic Monitoring" per detectar issues aviat: És especialment important per temes de resiliència. Es tracta de tenir sondes que analitzin periòdicament el sistema. Poden estar a diferents entorns (DSV,PRE, PRO). Això ens permetrà anticipar-nos als errors a producció. 3. Monitoratge d'infraestructura i de SW: Tenim l'avantatge de l'accés al monitoratge a baix nivell (del HW, SW...) 4. Xarxa: Problemes de xarxa poden derivar en problemes en el servei. Requisits especials per on-perm APM Eines de monitoratge al núvol Punts claus d'una eina: 1. Visió comprensible: Que doni una visió en temps real comprensible de tota la infraestructura, serveis, bases de dades, aplicacions i xarxa. 2. Integració i compatibilitat: Amb els diferents núvols i sistemes. 3. Escalabilitat i flexibilitat: Important si tenim més d'un cloud. 4. Alertes i reporting: 5. User friendly 6. Eines de Seguretat: Que puguin monitoritzar posibles problemes de seguretat. 7. Tractament del cost: Que pugui recomanar estalvis de costs... 8. Suport i comunitat Eines pròpies de cada proveïdor del núvol. 1. DigitalOcean Monitoring and Uptime 2. AWS CloudWatch: offers a comprehensive cloud monitoring solution for resources and applications across Amazon Web Services, on-premises, and other cloud environments. With advanced visualization tools, automated alarms, integration with other AWS services, and dashboards providing actionable insights, CloudWatch simplifies the task of maintaining your infrastructure and applications. 3. Microsoft Azure Monitor: provides a holistic cloud monitoring solution, enabling collection, analysis, and response to telemetry from cloud and on-premises environments , aiming to optimize the availability and performance of your applications and services. It aggregates data across your system, offering correlations and analysis using a common set of tools, automatic responses to system events, and integration with third-party systems and tools. It also supports diverse resource types and custom sources through its APIs. 4. Google Cloud Operations: Formerly known as Stackdriver, offers an integrated solution for monitoring, logging, and tracing applications and systems on Google Cloud platform and beyond. Features include real-time log management and analysis, metrics observability at scale, a stand-alone managed service for Prometheus, and Application Performance Management that combines monitoring and troubleshooting capabilities, all aimed to improve performance, uptime, and overall health of cloud-powered applications. Eines de tercers 1. Datadog: Datadog's infrastructure performance monitoring offers a SaaS-based platform that provides extensive metrics, visualizations, and alerts to optimize cloud or hybrid environments. It features comprehensive technology coverage, tag-based analytics, machine learning–based alert tools, real-time performance insights, advanced metric collection capabilities, and an intuitive interface that enhances communication and troubleshooting, all while reducing the need for extensive training or professional services. 2. AppDynamics: is a comprehensive cloud-native platform that focuses on application observability , ensuring businesses can provide outstanding user experiences that align with their digital strategies. The platform equips users with tools to visualize and track the entire technology stack’s performance, linking technical metrics with business outcomes. This full-stack perspective allows end users to promptly identify and resolve any issues, mitigating potential impacts on business performance. 3. New Relic: is an advanced full-stack observability platform designed to empower engineers in planning, building, deploying, and running software efficiently. The platform provides a unified interface for all telemetry data—metrics, events, logs, and traces, thus creating a single source of truth for your entire system. Along with data collection, New Relic also offers powerful analysis tools which help to identify issues quickly and accelerate the troubleshooting process. It facilitates seamless integration into existing workflows and includes artificial intelligence assistance for more effective problem resolution. 4. Prometheus: is a leading open-source monitoring solution that provides dimensional data modeling, powerful query capabilities via PromQL, efficient storage, and precise alerting, enhancing your metrics and alerting operations. Its operational simplicity and integration with various visualization tools like Grafana, numerous client libraries for easy service instrumentation, and robust alerting based on flexible PromQL provide a comprehensive solution for generating insights from metrics in an easy-to-deploy package. 5. Dynatrace and Pageduty: 1. Dynatrace is an analytics and automation platform, powered by AI, that simplifies cloud complexity and allows for faster and more secure innovation. The platform offers full-stack monitoring with automatic and intelligent observability across cloud and hybrid environments , enabling continuous auto-discovery of hosts, VMs, serverless, cloud services, containers and Kubernetes, networks, devices, logs, events, and more. 2. Pageduty is a platform designed for automating, orchestrating, and accelerating responses across your digital infrastructure during critical moments. It offers features like on-call management, automated incident response, machine learning for operations improvement, process automation, and the ability to engage customer service and cross-functional teams, all aimed at optimizing operations and allowing developers to focus more on their code. 6. Splunk: is a unified security and observability platform designed to make digital systems more secure and resilient. It offers features such as advanced threat detection for early incident prevention, actionable analytics for risk mitigation, and capabilities to restore services quickly during outages, all aimed at helping security, IT, and DevOps teams adapt, innovate, and deliver for their customers. 7. Grafana: is a versatile visualization and observability platform , enabling users to query, visualize, and get alerts on data from a variety of sources across their technology and business operations. With features like a scalable metrics backend, high-scale distributed tracing, multi-tenant log aggregation, performance testing, and an extensive array of plugins, Grafana facilitates comprehensive monitoring across logs, metrics, applications, and infrastructure. 8. Elastic Stack: comprising Elasticsearch, Kibana, Beats, and Logstash , is a powerful search platform designed to securely and reliably take data from any source, in any format for searching, analyzing, and visualizing. It offers fast, scalable data storage and search, real-time data exploration with visualizations in Kibana, and integrations for ingesting data from diverse sources, with the flexibility of deployment on various cloud platforms or on-premise. 9. Instana (IBM): "IBM Instana Observability is an application performance management and observability platform that provides real time insights into performance and health of application. It's end user monitoring helps us detect issues that impact the user experience. It helps us address potential problems before they impact users. We have been using it for 3 years, and it enabled our team to minimize downtime and ensure a positive user experience. It has automated the discovery and monitoring of these components, which make it easier for us to manage and troubleshoot applications. It enables us to proactively address issue that impact user satisfaction, which resulted in higher customer retention and improved brand reputation. " "It enabled us to identify and address the root causes of performance bottlenecks and errors quickly. It helps us to make data-driven decisions." "The feature I like the most is Real-time insights, which allows for rapid detection and resolution of issues. The AI-Powered Anomaly Detection helps us in early detection of anomalies and potential problems, which leads to proactive issue resolution. It has user friendly interface and dashboard which make it easy to use." Rferències: 11 utilidades SysInternals útiles para administrar y monitorizar nuestro sistema Windows Buenas prácticas de monitoreo 1. ✅ Aquí una pequeña guía de buenas prácticas de monitoreo-Pandora FMS team ↩︎ 2. ✅ On-Premises Application Monitoring- An Introduction - Splunk-Posted by Stephen Watts ↩︎