作者:海豚青春_407 | 来源:互联网 | 2023-08-27 11:33
提到Sysdig大家会想到市面比较主流的监控软件Grafana(跨平台的可视化日志分析和监控工具)、Kibana(ELK堆栈的一部分,用于数据分析和日志监视)、Prometheus(容器部署整个技术栈,开源的自主托管监控方案),基于不同的监控对象和应用规模,它们都有各自不同的特点和优势。
今天我们要介绍的是IBM Cloud的云监控解决方案Sysdig,云上的IaaS资源除了传统的虚拟机实例,同样也包括容器集群,云函数,云数据库等PaaS服务。 根据业务和服务具体需求,算力资源可能在全球多个区域部署,那么对监控平台的数据采集,日志汇总、分析和可视化仪表都会有很高的要求。 IBM Cloud选择Sysdig应该是想借助一套完全托管的企业级监视服务(客户无需维护服务系统,上手简洁方便),统一地管控云上多样化资源,并提供面向服务的视图、全面的指标和强大的预警功能,让云监控变得更加高效。 Sysdig常见的监控对象包括云主机和容器, 在IBM Cloud上云主机实例包括(经典架构)裸机和虚拟机,VPC虚拟机。 今天小实验的对象是经典架构下虚拟机的自动化agent部署和监控。1.创建sysdig托管服务实例 选择Free tier - Lite 配置,服务创建在哪里?最好的选择是离监控资源就近的区域,如果有需要也可尝试启用“IBM Platform Metrics”,sysdig服务会自动发现账户下的平台资源和并进行日志收集(默认是Disable的),最后点击创建服务 不到两分钟,sysdig服务已经上线了 点击“编辑资源” ,可以看到自定义监控资源类型包括k8s、openshift、Linux和Docker, 这里先看看Linux。 Linux部署sysdig agent很简单,只需在主机端运行一下命令即可一键安装,云主机数量不多还好,如果量大,就需借助运维工具批量执行了。
Sysdig内网服务端点
curl -sL https://ibm.biz/install-sysdig-agent | sudo bash -s -- -a bf5167d3-642a-442f-a07c-f87831c0c71e -c ingest.private.jp-tok.monitoring.cloud.ibm.com --collector_port 6443 --secure true -ac "sysdig_capture_enabled: false"
外网服务端点
curl -sL https://ibm.biz/install-sysdig-agent | sudo bash -s -- -a bf5167d3-642a-442f-a07c-f87831c0c71e -c ingest.jp-tok.monitoring.cloud.ibm.com --collector_port 6443 --secure true -ac "sysdig_capture_enabled: false"
2.准备监控云主机和Ansible Playbook
这里我会用本地笔记本里的ansible,通过虚拟机外网远程连接执行安装。如果是真实业务场景,选择云上一台运维机器或者堡垒机,透过内网安装最为安全。
danws-MacBook-Pro:playbook danw$ ibmcloud sl vs list -g danw id hostname domain cpu memory public_ip private_ip datacenter action 104846402 demo-centos6-vsi danwcloud.com 1 2048 128.168.94.228 10.192.58.68 tok04 104841756 demo-ubuntu-vsi danwcloud.com 1 2048 165.192.97.52 10.193.113.182 tok05
编辑ansible hosts,添加目标主机,并执行ping测试。
danws-MacBook-Pro:~ danw$ cat /etc/ansible/hosts [targets] 128.168.94.228 ansible_cOnnection=ssh ansible_user=root 165.192.97.52 ansible_cOnnection=ssh ansible_user=root danws-MacBook-Pro:~ danw$ ansible all -m ping 128.168.94.228 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" } 165.192.97.52 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": false, "ping": "pong" }
因为sysdig agent(draios)依赖kernel header模块,所以安装之前有必要判断操作系统版本,安装相应模块,不然很容易失手… 当然,一个简单的playbook就可以轻松搞定。
--- - hosts: targets become: false user: root connection: ssh tasks: - name: "install kernel header on debian or ubuntu" shell: apt-get -y install linux-headers-$(uname -r) when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' - name: "install kernel header on centos or RHEL" shell: yum -y install kernel-devel-$(uname -r) when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux' - name: "install sysdig agent" shell: 'curl -sL https://ibm.biz/install-sysdig-agent | sudo bash -s -- -a bf5167d3-642a-442f-a07c-f87831c0c71e -c ingest.private.jp-tok.monitoring.cloud.ibm.com --collector_port 6443 --secure true -ac "sysdig_capture_enabled: false"'
安装pass !3. 登陆sysdig web控制台,检查监控主机信息
点击view sysdig登陆web控制面板(SSO) 两个云主机都已自动发现 ! 定制报警验证监控是否生效?创建一个metric alert (CPU使用量峰值超过80%)
在其中一台主机上循环计算pi,对cpu进行加压
[root@demo-centos6-vsi ~]# for i in `seq 1 1000`; do (time echo "scale=5000; 4*a(1)" | bc -l -q |grep 'real') 2>> pi.log; done
两分钟后sysdig事件栏有警报触发,说明预警策略完全启用! 下一篇我们继续分享Sysdig Agent on IBM Cloud k8s的玩法 。