IBM Cloud 云监控 - Linux云主机自动化部署Sysdig Agent

提到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进行加压

[[email protected] ~]# 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的玩法 。

猜你喜欢

转载自blog.csdn.net/weixin_42599323/article/details/106977889