提到Sysdig你们会想到市面比较主流的监控软件Grafana(跨平台的可视化日志分析和监控工具)、Kibana(ELK堆栈的一部分,用于数据分析和日志监视)、Prometheus(容器部署整个技术栈,开源的自主托管监控方案),基于不一样的监控对象和应用规模,它们都有各自不一样的特色和优点。python
今天咱们要介绍的是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很简单,只需在主机端运行一下命令便可一键安装,云主机数量很少还好,若是量大,就需借助运维工具批量执行了。
linux
Sysdig内网服务端点ios
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"
外网服务端点web
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 Playbookshell
这里我会用本地笔记本里的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测试。ubuntu
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就能够轻松搞定。
centos
--- - 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%)
bash
在其中一台主机上循环计算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的玩法 。