提到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的玩法 。