公司部分業務放在阿里云上面,雖然阿里云管理平臺本身有自己的監控后臺,但是公司也有自己獨立的zabbix監控系統,目前要做的就是把阿里云的監控轉移到自己公司的監控系統,需要使用到阿里云的API,API的使用分以下2種方式
1.使用阿里云的Python SDK(python2.7),具體參考http://develop.aliyun.com/sdk/python?spm=5176.100054.0.0.tcU93U,示例代碼:














2.使用原生的API,示例代碼:























































































注意事項:確保運行腳本的主機時區時間無誤(yum install ntpdate && ntpdate time.windows.com)
=========================阿里云相關文檔參考===========================
阿里云API文檔:https://develop.aliyun.com/
點擊【創建/管理 Acccesskey】
通過【訪問控制(Resource Access Management)】產品獲得【受限的】AcccessKey和AccessSecret,以用于后續API調用
https://www.aliyun.com/product/ram?spm=5176.doc28636.2.2.4DV89b
阿里云SDK下載(Python):
https://develop.aliyun.com/sdk/python?spm=5176.7926450.210367.2.x1p7Zk
還有其他版本SDK的下載
Python SDK安裝:
https://zhidao.baidu.com/question/544414713.html
查詢實例列表:
https://help.aliyun.com/document_detail/25506.html?spm=0.0.0.0.QjVZTI
查詢伸縮組內實例列表:
https://help.aliyun.com/document_detail/25942.html?spm=0.0.0.0.IeaTQA
相關筆記:《Ansible+SVN 自動部署》(解決彈性伸縮工作中不定數目的ECS實例更新部署問題)
http://www.shnenglu.com/kenkao/archive/2017/03/01/214717.html
監控與自動化部署:(解決ECS實例新彈出時的自動部署問題)
PS:如果--level 6不生效,則可以執行chkconfig test on開啟全部等級(測試中,弊端不明...)
PS:前面我的說明有一個地方不太嚴謹,大多數情況下都配置35,很少有配置4的。(來自阿里售后工程師)
https://help.aliyun.com/document_detail/25971.html?spm=0.0.0.0.QjVZTI
彈性伸縮在使用報警任務之前,需要在ECS的鏡像里安裝新版本的云監控程序
https://help.aliyun.com/knowledge_detail/38830.html
關于彈性伸縮自動創建實例的密碼與登錄問題:
創建云主機的時候,主機密碼都不是自定義鏡像中的密碼。為了保證密碼的安全性,推薦您通過設置”公私鑰”認證的方式來進行SSH免密碼登錄。
如果您不需要通過設置”公私鑰”認證的方式來進行SSH免密碼登錄,則需要在控制臺重置密碼(重啟生效)才能登錄。
配置Linux主機SSH無密碼訪問:







相關筆記:《阿里云ECS服務器搭建Nginx+PHP+MySql環境詳細步驟(CentOS7環境)》
http://blog.csdn.net/kenkao/article/details/53333595
Ecs部署:
master | servant(鏡像) | |
1.安裝svn | 1.安裝svn | svn拉取部署 |
2.安裝ansible | 運維工具搭建 | |
3.生成密鑰對 | 3.下發得到公鑰 | 無密碼訪問 |
4.nginx+php環境搭建 | 基本服務環境 | |
5.部署腳本 | 5.部署自啟腳本并開啟 | 自動運維腳本 |
6.nginx調優 | 運行環境調優 |
SVN及Ansible安裝:
http://blog.chinaunix.net/uid-21146222-id-5761320.html
http://blog.chinaunix.net/uid-21146222-id-5757647.html
相關筆記:
《阿里云自定義監控的使用》(關注其中python腳本部分)
《通過crontab為linux添加定時任務》http://blog.chinaunix.net/uid-21146222-id-4326110.html
總結:
可以直接 vim /etc/crontab ,并添加類似 */1 * * * * root /home/scripts/report.sh 的定時任務,與 crontab -e 的區別在于需要顯示指定所屬用戶 root
/sbin/service crond restart 重啟crond服務
tail -f /var/log/cron 動態查看crond日志
關于《阿里云自動告警》機制中遇到的坑:(crontab定時執行python的坑)
https://bbs.aliyun.com/read.php?tid=135851&page=1
http://blog.bomobox.org/2016-10-06/crontab-python/
http://blog.csdn.net/shanliangliuxing/article/details/7980298
總結:
通過crontab定時執行python腳本失敗的根本原因在于crontab的運行時環境有別于root用戶的python環境
解決方法:
1. 編寫shell腳本掛載python腳本,而后crontab定時執行shell腳本(crontab對于shell腳本擁有更好的親和力)
2. 編輯/etc/hosts文件,把::1條目注釋掉(解決ipv6沖突問題,該步驟是否必須有待考證..)
關于解決shell腳本正常執行,但是crontab執行失敗的土辦法:先cd到相關目錄下,在./執行相關命令行。例如:
/home/loganalysis/dealexcel.sh
修改為
cd /home/loganalysis/ && ./dealexcel.sh
參考:http://blog.csdn.net/jkunzhang/article/details/7440215
附件下載:
>> xxxxansible.zip
>> xxxxwarning.zip