導航:首頁 > 源碼編譯 > 編譯Prometheus

編譯Prometheus

發布時間:2022-09-07 20:40:49

『壹』 安全開發你必須使用的28個DevSecOps工具

將安全融入開發過程,更早捕獲並修復應用漏洞,你需要這五類共28款DevSecOps工具。

DevSecOps 是將安全集成到整個應用開發周期的過程,是從內到外強化應用,使其能夠抵禦各種潛在威脅的理想方式。因為很多公司企業不斷開發應用以滿足客戶和商業合作夥伴的需求,DevSecOps的吸引力也與日俱增。

敏捷開發方法與DevOps操作幫助公司企業達成持續開發的目標。雲原生應用架構也成為了DevSecOps運動的有力貢獻者,推動採用公共雲提供商、容器技術和容器平台為應用提供計算能力。DevSecOps將安全過程與工具集成進工作流並加以自動化,擺脫了傳統方法按時間點進行的潛在干擾,是個無縫且持續的過程。

咨詢公司 Data Bridge Market Research 稱,鑒於網路安全威脅數量與危害性的持續上升,全球DevSecOps市場預計將從2018年的14.7億美元增長至2026年的136.3億美元。

市場繁榮之下,DevSecOps工具必將呈現百花齊放百家爭鳴的局面。下面就按核心門類為您呈上多款優秀DevSecOps工具。

開發應用的時候很容易忽略掉安全漏洞。下面的工具為開發人員提供了潛在安全異常及缺陷的警報功能,可供開發人員及時調查並修復這些漏洞,不至於走得太遠回不了頭。有些工具專用於警報功能,比如開源的Alerta 。其他工具則兼具測試等別的功能,比如 Contrast Assess。

1. Alerta

(https://alerta.io/)

該開源工具可將多個來源的信息整合去重,提供快速可視化功能。Alerta與Prometheus、Riemann、Nagios、Cloudwatch及其他監視/管理服務集成,開發人員可通過API按需定製Alerta。

2. Contrast Assess

(https://www.contrastsecurity.com/interactive-application-security-testing-iast)

作為一款互動應用安全測試(IAST)工具,Contrast Assess 與用戶應用集成,在後台持續監視代碼,並在發現安全漏洞時發出警報。據稱即便是非安全開發人員也可使用 Contrast Assess 自行識別並修復漏洞。

3. Contrast Protect

(https://www.contrastsecurity.com/runtime-application-self-protection-rasp)

該運行時應用自保護(RASP)工具採用了 Contrast Assess 同款嵌入式代理。Contrast Protect 在生產環境中查找漏洞利用程序和未知威脅,並將結果提交給安全信息及事件管理(SIEM)控制台、防火牆或其他安全工具。

4. ElastAlert

(https://elastalert.readthedocs.io/en/latest/)

ElastAlert提供近實時接收警報的框架,可接收來自Elasticsearch數據的安全異常、流量激增及其他模式。ElastAlert查詢Elasticsearch並根據一系列規則比較這些數據。一旦出現匹配,ElastAlert便發出警報並隨附建議動作。

大多數DevSecOps工具都提供一定程度的自動化。此類工具自動掃描、發現並修復安全缺陷,只是自動化程度各有不同,從條件式事件驅動的自動化到運用深度學習技術的自動化都有。

1. CodeAI

(http://www.qbitlogic.com/codeai/)

旨在通過深度學習技術自動查找並修復源代碼中的安全漏洞,號稱可為開發人員提供可供參考的解決方案列表,而不僅僅是安全問題列表。其供應商QbitLogic宣稱,已為CodeAI饋送了數百萬個現實世界漏洞修復樣本供訓練。

2. Parasoft tool suite

(https://www.parasoft.com/)

Parasoft提供包括應用開發安全測試在內的多種自動化工具:

1)Parasoft C/C++test

(https://www.parasoft.com/procts/ctest)

用於開發過程早期缺陷識別;

2)Parasoft Insure++

(https://www.parasoft.com/procts/insure)

可以查找不規范編程及內存訪問錯誤;

3)Parasoft Jtest

(https://www.parasoft.com/procts/jtest)

用於java軟體開發測試;

4) Parasoft dotTEST

(https://www.parasoft.com/procts/jtest)

以深度靜態分析和高級覆蓋作為 Visual Studio 工具的補充。

3. Red Hat Ansible Automation

(https://www.redhat.com/en/technologies/management/ansible)

該工具包含三個模塊——Ansible Tower、Ansible Engine 和 Red Hat Ansible Network Automation,可作為無代理IT自動化技術單獨或聯合使用。盡管不是專門的安全工具,Ansible Automation 卻可供用戶定義規則以確定自身軟體開發項目中哪些部分是安全的。

4. StackStorm

(https://stackstorm.com)

該開源工具號稱「可進行條件式運營」,其事件驅動的自動化能在檢測到安全漏洞時提供腳本化的修復與響應,並附有持續部署、ChatOps優化等功能。

5. Veracode

(https://www.veracode.com/devsecops)

該公司提供DevSecOps環境中廣泛使用的一系列自動化安全工具,包括在代碼編寫時即時自動掃描的Greenlight;在沙箱中掃描代碼漏洞的 Developer Sandbox;識別漏洞組件的 Software Composition Analysis (SCA);以及識別應用缺陷的 Static Analysis。

專用DevSecOps儀錶板工具可使用戶在同一圖形界面中查看並共享從開發伊始到運營過程中的安全信息。有些DevSecOps應用,比如ThreatModeler和Parasoft已自帶儀錶板。

1. Grafana

(https://grafana.com/)

該開源分析平台允許用戶創建自定義儀錶板,聚合所有相關數據以可視化及查詢安全數據。如果不想自行構建,還可以在其網站上選用社區構建的儀錶板。

2. Kibana

(https://www.elastic.co/procts/kibana)

如果你使用Elasticsearch,該開源工具可在統一圖形界面中集成成千上萬的日誌條目,包括運營數據、時間序列分析、應用監視等等。

威脅建模DevSecOps工具用以在復雜的攻擊界面中識別、預測並定義威脅,以便用戶可以做出主動安全決策。有些工具可根據用戶提供的系統及應用信息自動構建威脅模型,並提供可視化界面以幫助安全及非安全人員 探索 威脅及其潛在影響。

1. IriusRisk

(https://continuumsecurity.net/threat-modeling-tool/)

出自 Continuum Security 的解決方案,既可雲部署,也可現場部署,能以基於問卷的界面自動化風險及需求分析,並設計出威脅模型和技術性安全要求。IriusRisk還可幫助用戶管理代碼構建及安全測試階段。

2. ThreatModeler

(https://threatmodeler.com/)

該自動化威脅建模系統有兩個版本:AppSec版和雲版。在提供了用戶應用或系統的功能性信息後,ThreatModeler會基於更新的威脅情報自動就整個攻擊界面進行數據分析和潛在威脅識別。

3. OWASP Threat Dragon

(https://www.owasp.org/index.php/OWASP_Threat_Dragon)

一款基於Web的開源工具,提供系統圖解和用於自動化威脅建模與緩解的規則引擎。Threat Dragon 承諾可與其他軟體開發生命周期(SDLC)工具無縫集成,且界面易於使用。

在開發過程中測試應用以找出潛在漏洞是DevSecOps的關鍵部分,能夠事先發現安全漏洞,避免漏洞被黑客利用。盡管其他工具往往包含了測試功能,比如Parasoft出品的那些,下列工具仍然在應用安全測試上表現強勁。

1. BDD-Security

(https://continuumsecurity.net/bdd-security/)

該出自 Continuum Security 的開源框架可使安全人員在敏捷開發過程中測試行為驅動開發(BDD)語言編寫的功能及非功能性安全場景。此BDD框架旨在使安全功能獨立於應用特定的導航邏輯,讓同樣的安全要求能夠更容易地應用到多個應用程序上。

2. Checkmarx CxSAST

(https://www.checkmarx.com/procts/static-application-security-testing/)

可對25種編程及腳本語言進行未編譯/未構建源代碼掃描的靜態應用安全測試(SAST)工具,能在SDLC早期發現成百上千種安全漏洞。CxSAST兼容所有集成開發環境(IDE),是Checkmarx軟體暴露平台的一部分——該平台可在DevOps所有階段植入安全。Checkmarx的互動式應用安全測試(IAST)工具可檢測運行中應用的安全漏洞。

3. Chef InSpec

(https://github.com/inspec/inspec)

整個開發過程中的每一階段都可以運用該開源工具自動化安全測試以確保針對傳統伺服器及容器和雲API的合規、安全及其他政策要求。

4. Fortify

(https://www.microfocus.com/en-us/solutions/application-security)

Micro Focus 出品,提供端到端應用安全,可供進行覆蓋整個軟體開發生命周期的現場及按需測試。Fortify on Demand 是 Micro Focus 的應用安全即服務產品,提供靜態、動態和移動應用安全測試,以及生產環境中Web應用的持續監視。

5. Gauntlt

(http://gauntlt.org/)

流行測試框架,旨在推動易操作的安全測試及安全、開發和運營團隊間的溝通。GauntIt便於產生攻擊測試用例,且能方便地鉤入現有工具及進程。

6. Synopsys suite

(https://www.synopsys.com/)

Synopsys提供多個應用安全測試工具,包括:

1)SAST工具Coverity

(https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html)

自動化測試且融入持續集成/持續交付(CI/CD)管道;

2)SCA工具 Black Duck

(https://www.synopsys.com/software-integrity/security-testing/software-composition-analysis.html)

採用容器及應用中的開源和第三方代碼檢測並管理安全;

3)SeekerIAST

(https://www.synopsys.com/software-integrity/security-testing/interactive-application-security-testing.html)

識別可暴露敏感數據的運行時安全漏洞;

以及一系列用於應用安全測試的託管服務。

以下DevSecOps工具同樣含有上述工具提供的功能,但或多或少略有不同。

1. Aqua Security

(https://www.aquasec.com/)

在整個CI/CD管道和運行時環境中管理端到端安全,可用於所有平台和雲環境的容器及雲原生應用。

2. Dome9 Arc

(https://www.checkpoint.com/solutions/devops-security/)

被 Check Point 收購,提供自動化測試及安全實施,使開發人員能夠將安全及合規融入公共雲應用的構建、部署及運營。

3. GitLab

(https://about.gitlab.com/)

該工具可將DevSecOps架構融入CI/CD過程,在提交時測試每一塊代碼,使開發人員能夠在編程期間緩解安全漏洞,並提供涵蓋所有漏洞的儀錶板。

4. Red Hat OpenShift

(https://www.redhat.com/en/technologies/cloud-computing/openshift)

為基於容器的應用提供內置安全,比如基於角色的訪問控制、以安全增強的linux(SELinux)實現隔離,以及貫穿整個容器構建過程的核查。

5. RedLock

(https://www.paloaltonetworks.com/procts/secure-the-cloud/redlock/cloud-security-governance)(前身為Evident.io)

Palo Alto Networks 出品,適用於部署階段,幫助開發人員快速發現並緩解資源配置、網路架構及用戶活動中的安全威脅,尤其是在亞馬遜S3存儲桶和彈性塊存儲(EBS)卷上。

6. SD Elements

(https://www.securitycompass.com/sdelements/)

出品自 Security Compass 的自動化平台,旨在收集客戶軟體信息,發現威脅及對策,突出相關安全控制措施以幫助公司企業實現其安全和合規目標。

7. WhiteHat Sentinel 應用安全平台

(https://www.whitehatsec.com/procts/solutions/devsecops/)

該解決方案提供貫穿整個SDLC的應用安全,適用於需將安全集成進工具中的敏捷開發團隊,以及需持續測試以保證生產環境應用安全的安全團隊。

8. WhiteSource

(https://www.whitesourcesoftware.com/)

用於解決開源漏洞,可集成進用戶的生成過程,無論用戶採用什麼編程語言、生成工具或開發環境。WhiteSource使用經常更新的開源代碼資料庫持續檢查開源組件的安全及授權。

『貳』 關於詩人 文學

珀西·比西·雪萊(Percy Bysshe Shelley)

生卒:1792年8月4日-1822年7月8日

一般譯作雪萊,英國浪漫主義詩人,出生於英格蘭薩塞克斯郡霍舍姆附近的沃恩漢,其祖父是受封的男爵,其父是議員。

主要作品

詩歌
愛爾蘭人之歌(The Irishman`s Song,1809)
戰爭(War,1810)
魔鬼出行(The Devil`s Walk,1812)
麥布女王(Queen Mab,1813)
一個共和主義者有感於波拿巴的傾覆(Feelings Of A Republican On The Fall Of Bonaparte,1816)
瑪麗安妮的夢(Marianne`s` Dream,1817)
致大法官(To The Lord Chancellor,1817)
奧西曼迭斯(Ozymandias,1817)
逝(The Past,1818)
一朵枯萎的紫羅蘭(On A Faded Violet,1818)
召苦難(Invocation To Misery,1818)
致瑪麗(To Mary,1818)
伊斯蘭的反叛(The Revolt of Islam,1818)
西風頌(Ode To The West Wind,1819)
飢餓的母親(A Starving Mother,1819)
羅薩林和海倫(Rosalind and Helen,1819)
含羞草(The Sensitive Plant,1820)
雲(The Cloud,1820)
致雲雀(To A Skylark,1820)
自由頌(Ode To Liberty,1820)
解放的普羅米修斯(Prometheus Unbound,1820)
阿多尼(Adonais,1821)
一盞破碎的明燈(Lines,1822)

『叄』 推薦如何系統的學習JAVA

如何系統學習java體系

學java首先要學 J2SE,它是java體系的基礎,也是重中之重。很多人往往不重視基礎,其實這是捨本逐末的做法。說這么多就是希望大家能重視基礎,能在這條路上走的更遠。

學j2se有下面幾個目標:
1、你要能真正理解面向對象的優勢,理解為什麼不是面向過程。
2、掌握java語法基礎。包括異常處理、多線程、網路編程、GUI編程等
3、如果你對swing不感興趣,可以跳過它。
這一階段結束後,你需要能獨立寫一個小游戲,比如坦克大戰、俄羅斯方塊、貪吃蛇等。
當你完成J2SE的學習之後,你就要開始學習java web了。
你需要掌握web基礎知識:html、css、javascript、ajax、jQuery。
別怕,這些技術看起來很多,其實也沒要你精通它們,只是要你能在用到它們的時候,能通過快速查閱相關文檔,能正確使用它們。如果這一階段順利的話,你可能還用不到一個月。
學習servlet、jsp、jdbc。
這些是javaweb的基礎,如果你自學有難度,可以在網上下載一些相關視頻,幫助理解,降低學習難度曲線。
當你完成上一階段的學習後,你就可以進入J2EE的階段了。
這一階段,你可能會見到很多各種各樣的框架,會讓你眼花繚亂,頭暈目眩。不過別擔心,你只需要學習三個就足夠了。它們是struts2、hibernate、spring。這些框架為搭建具有可伸縮性、靈活性、易維護性的商務系統提供了良好的機制。
首先你需要學習三個框架的基本配置和使用,直到你能熟練搭建一個ssh項目。
如果學有餘力,你可以深入學習這些框架的設計模式。
學習完三大框架之後,其實你學的已經足夠多了。如果對移動應用的開發感興趣,你可以接著學習安卓開發。安卓開發不需要其他知識,只要你j2se學的不錯,學安卓開發對你就沒太大難度了。

『肆』 2020-08-25

Prometheus 實現郵件告警(Prometheus+Alertmanager+QQ郵箱或者網易163郵箱,目前測試過這兩種郵箱都可以發送告警郵件)

Prometheus實現郵件告警原理如下:

Prometheus官方有一個附帶的中間件:alertmanager,通過設置rules規則和路由轉發可以實現郵件告警,前提是你需要有一個可以發送郵件的郵件服務端(可以自建或者使用互聯網公司提供的免費郵箱)

告警原理圖

Prometheus完整架構圖

我之前得出的錯誤結論如下:

推薦直接在虛擬機操作系統上直接安裝Prometheus和Alertmanager,不推薦其中任何一方在容器中運行,因為測試過在容器中運行Prometheus和alertmanager,結果出現如下錯誤情況

第一種情況是:我的node-exporter掉線跌機了(手動關機,模擬突然掉線跌機),Prometheus卻提示節點依然在線?有時候卻能夠正常顯示節點掉線跌機,生成告警發送郵件

第二種情況是:我的node-exporter掉線跌機了(手動關機,模擬突然掉線跌機),Prometheus提示節點掉線,告警生成,但是沒有發送郵件,我手動恢復node-exporter後,告警解除,郵件能正常發送郵件提示告警已經解除。。。。

第三種情況是:我的node-exporter掉線跌機了(手動關機,模擬突然掉線跌機),Prometheus提示節點掉線,告警生成,正常成功發送郵件,我手動恢復node-exporter後,告警解除,郵件沒有發送出來。。。。

以上三種情況之前經常出現,當時第一步以為是自己設置的scrape_interval不合理導致的,結果調試幾次,問題沒有解決,第二步以為是自己的伺服器時間沒有做到精確同步,然後我去設置和阿里雲的ntp伺服器同步,結果問題依然沒有解決,第三步,換個方向,把alertmanager遷移到虛擬機操作系統上安裝運行,問題解決!

北京時間是GMT+8小時,有些同志的時間可能是UTC的,但是如果是在要求不太十分精確的情況下,UTC時間是剛剛好等於GMT時間

為了避免時區的混亂,prometheus所有的組件內部都強制使用Unix時間,對外展示使用GMT時間。

要改時區有兩個辦法

1 .修改源碼,重新編譯。

2. 使用 docker 運行 Prometheus,掛載本地時區文件

docker run --restart always -e TZ=Asia/Shanghai --hostname prometheus --name prometheus-server -d -p 9090:9090 -v /data/prometheus/server/data:/prometheus -v /data/prometheus/server/conf/prometheus.yml:/etc/prometheus/prometheus.yml -u root prom/prometheus:v2.5.0

正文開始

安裝alertmanager

容器安裝方式:

docker run -d --name alertmanager -p 9093:9093 -v /usr/local/Prometheus/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager:latest

先在宿主機/usr/local/Prometheus下創建一個文件夾alertmanager,然後在文件夾里創建alertmanager.yml配置文件,待會才能映射到alertmanager容器里的/etc/alertmanager目錄下

global:全局配置

   resolve_timeout: 問題解決的超時時間

   smtp_from: 發送告警郵件的郵箱賬號

   smtp_smarthost: 郵箱 SMTP 服務地址,這里是以QQ郵箱為例,也可以用網易163郵箱,這個和我之前設置zabbix郵件告警時的配置一樣

   smtp_auth_username: 如果沒有設置郵箱別名,那就是賬戶名

   smtp_auth_password:  郵箱的授權碼,不是 賬戶密碼,你可以在QQ郵箱或者網易163郵箱網頁端設置,開啟 POP3/SMTP 服務時會提示,和配置zabbix郵件告警的時候幾乎一樣

   smtp_require_tls: 是否使用 tls,根據環境不同,來選擇開啟和關閉。如果提示報錯 email.loginAuth failed: 530 Must issue a STARTTLS command first,那麼就需要設置為 true。著重說明一下,如果開啟了 tls,提示報錯 starttls failed: x509: certificate signed by unknown authority,需要在 email_configs 下配置 insecure_skip_verify: true 來跳過 tls 驗證。

templates: 告警模板目錄,可以不編寫模板,有默認模板

    Subject: '{{ template "email.default.subject" . }}'

    html: '{{ template "email.default.html" . }}'

route:報警的分發設置

    group_by:分組

    group_wait: 分組等待時間

    group_interval: 5m 每組時間間隔

    repeat_interval: 10m 重復間隔

    receiver: 接收方式,請注意!這里的名字要對應下面receivers中的任何一個名字,不然會報錯,這里其實就是選擇方式,有郵箱,企業微信,wehook,victorops等等

receivers:接受方式匯總,即告警方式匯總

例子:

receivers:

- name:'default-receiver' 

email_configs:

- to:'[email protected]'    

  html: '{{ template "alert.html" . }}'    

  headers: { Subject: "[WARN] 報警郵件test"}

inhibit_rules:   抑制規則

當存在與另一組匹配的警報(源)時,抑制規則將禁用與一組匹配的警報(目標)。

包括源匹配和目標匹配

alertmanager官方是這樣說的

Inhibition

Inhibition is a concept of suppressing notifications for certain alerts if certain other alerts are already firing.

Example:  An alert is firing that informs that an entire cluster is not reachable. Alertmanager can be configured to mute all other alerts concerning this cluster if that particular alert is firing. This prevents notifications for hundreds or thousands of firing alerts that are unrelated to the actual issue.

Inhibitions are configured through the Alertmanager's configuration file.

當存在與另一組匹配器匹配的警報(源)時,禁止規則會使與一組匹配器匹配的警報(目標)靜音。目標警報和源警報的equal列表中的標簽名稱都必須具有相同的標簽值。

在語義上,缺少標簽和帶有空值的標簽是同一件事。因此,如果equal源警報和目標警報都缺少列出的所有標簽名稱,則將應用禁止規則。

為了防止警報禁止自身,與規則的目標和源端 都 匹配的警報不能被警報(包括其本身)為真來禁止。但是,我們建議選擇目標匹配器和源匹配器,以使警報永遠不會同時匹配雙方。這很容易進行推理,並且不會觸發此特殊情況。

接著是規則rules

不解釋了,自己研究官方文檔

alertmanager的非容器安裝方式是

 wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz

tar xf alertmanager-0.20.0.linux-amd64.tar.gz

mv alertmanager-0.20.0.linux-amd64 /usr/local/alertmanager

vim /usr/lib/systemd/system/alertmanager.service

[Unit]

Description=alertmanager

Documentation=https://github.com/prometheus/alertmanager

After=network.target

[Service]

Type=simple

User=root

ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml

Restart=on-failure

[Install]

WantedBy=multi-user.target

Alertmanager 安裝目錄下默認有 alertmanager.yml 配置文件,可以創建新的配置文件,在啟動時指定即可。

其餘方式和上面一樣

接著是Prometheus,我之前的博客里有寫了容器安裝和非容器安裝的方法,自己去翻閱

然後是在prometheus.yml里修改相關配置

首先去掉alertmanager的注釋,改成IP加你設置的埠號,默認是9093

接著在rule_files: 下面寫下規則文件的絕對路徑,可以是具體文件名,也可以是*,也可以分幾級文件,*默認是全部匹配

接著是被監控項的設置,這里設置完成可以在Prometheus網頁里的targets里看得到

請注意,這里設置的參數名字要和rule規則中設置的參數名字一模一樣,否則你的prometheus服務會無法啟動,然後報錯

如果不在特定的job下設置scrape_interval(優先順序高於全局),則默認採用gobal下的scrape_interval

最後模擬節點掉線,手動關閉node-exporter或者Cadvisor

docker stop node-exporter 或者容器ID

docker stop cadvisor 或者容器ID

或者把up{{job='prometheus'}} == 1 設置成1,反向設置,不用關掉服務,就可以看看告警成不成功

說明一下 Prometheus Alert 告警狀態有三種狀態:Inactive、Pending、Firing。

Inactive:非活動狀態,表示正在監控,但是還未有任何警報觸發。

Pending:表示這個警報必須被觸發。由於警報可以被分組、壓抑/抑制或靜默/靜音,所以等待驗證,一旦所有的驗證都通過,則將轉到 Firing 狀態。

Firing:將警報發送到 AlertManager,它將按照配置將警報的發送給所有接收者。一旦警報解除,則將狀態轉到 Inactive,如此循環。

沒有配置告警模板時的默認告警格式是這樣的

節點恢復後郵件告知是這樣的

寫了模板後是這樣的

還要重新映射模板文件夾路徑到alertmanager容器里的相對路徑,然後重啟alertmanager,當然,如果目錄下沒有模板文件,則不顯示

告警模板

在alertmanager.yml中修改相關設置

重啟alertmanager

docker restart alertmanager

最終效果不是很好

『伍』 NPD原理解析

節點問題檢測器(Node Problem Detector) 是一個守護程序,用於監視和報告節點的健康狀況(包括內核死鎖、OOM、系統線程數壓力、系統文件描述符壓力等指標)。 你可以將節點問題探測器以 DaemonSet 或獨立守護程序運行。 節點問題檢測器從各種守護進程收集節點問題,並以 NodeCondition 和 Event 的形式報告給 API Server。
您可以通過檢測相應的指標,提前預知節點的資源壓力,可以在節點開始驅逐 Pod 之前手動釋放或擴容節點資源壓力,防止 Kubenetes 進行資源回收或節點不可用可能帶來的損失。

Git 倉庫地址: https://github.com/kubernetes/node-problem-detector

當kubernetes中節點發生上述問題,在整個集群中,k8s服務組件並不會感知以上問題,就會導致pod仍會調度至問題節點。

為了解決這個問題,我們引入了這個新的守護進程node-problem-detector,從各個守護進程收集節點問題,並使它們對上游層可見。一旦上游層面發現了這些問題,我們就可以討論補救措施。

NPD使用Go moles管理依賴,因此構建它需要Go SDK 1.11+:

構建節點問題檢測器的 docker 鏡像時,會嵌入 默認配置 。

不過,你可以像下面這樣使用 ConfigMap 將其覆蓋:

1、更改 config/ 中的配置文件

2、創建 ConfigMap node-strick-detector-config:

3、更改 node-problem-detector.yaml 以使用 ConfigMap:

4、使用新的配置文件重新創建節點問題檢測器:

說明: 此方法僅適用於通過 kubectl 啟動的節點問題檢測器。

如果節點問題檢測器作為集群插件運行,則不支持覆蓋配置。 插件管理器不支持 ConfigMap。

通常這些錯誤是比較難真實測試,只能通過發送消息到journal來模擬。

然後通過k8s控制台,你可以看到對應的信息:

然後通過以下命令來對應的event

Problem Daemon 是監控任務子守護進程,NPD 會為每一個 Problem Daemon 配置文件創建一個守護進程,這些配置文件通過 --config.custom-plugin-monitor、--config.system-log-monitor、--config.system-stats-monitor 參數指定。每個 Problem Daemon監控一個特定類型的節點故障,並報告給NPD。目前 Problem Daemon 以 Goroutine 的形式運行在NPD中,未來會支持在獨立進程(容器)中運行並編排為一個Pod。在編譯期間,可以通過相應的標記禁用每一類 Problem Daemon。

ProblemDaemonHandler 定義了 Problem Daemon 的初始化方法

在NPD啟動時,init()方法中完成了 ProblemDaemonHandler 的注冊:

Exporter 用於上報節點健康信息到某種控制面。在 NPD 啟動時,會根據需求初始化並啟動各種 Exporter。Exporter 分為三類:

ExporterHandler 和 ProblemDaemonHandler 功能類似,其定義了 Exporter 的初始化方法。也是在NPD啟動時,init()方法中完成了 ExporterHandler 的注冊

K8s Exporter 獲取到的異常 Condition 信息會上報給 Condition Manager, Condition Manager 每秒檢查 Condition 的變化,並同步到 API Server 的 Node 對象中。

Problem Client 負責與 API Server 交互,並將巡檢過程中生成的 Events 和 Conditions 上報給 API Server。

Problem Detector 是 NPD 的核心對象,它負責啟動所有的 Problem Daemon(也可以叫做 Monitor),並利用 channel 收集 Problem Daemon中發現的異常信息,然後將異常信息提交給 Exporter,Exporter 負責將這些異常信息上報到指定的控制面(如 API Server、Prometheus、 Stackdriver 等)。

Status 是 Problem Daemon 向 Exporter 上報的異常信息對象。

用於從外部控制協程的生命周期, 它的邏輯很簡單,准備結束生命周期時:

NPD 啟動過程完成的工作有:

採集節點的健康狀態是為了能夠在業務Pod不可用之前提前發現節點異常,從而運維或開發人員可以對Docker、Kubelet或節點進行修復。在NPDPlus中,為了減輕運維人員的負擔,提供了根據採集到的節點狀態從而進行不同自愈動作的能力。集群管理員可以根據節點不同的狀態配置相應的自愈能力,如重啟Docker、重啟Kubelet或重啟CVM節點等。同時為了防止集群中的節點雪崩,在執行自愈動作之前做了嚴格的限流,防止節點大規模重啟。同時為了防止集群中的節點雪崩,在執行自愈動作之前做了嚴格的限流。具體策略為:

在同一時刻只允許集群中的一個節點進行自愈行為,並且兩個自愈行為之間至少間隔1分鍾

當有新節點添加到集群中時,會給節點2分鍾的容忍時間,防止由於節點剛剛添加到集群的不穩定性導致錯誤自愈

此Problem Daemon為NPD提供了一種插件化機制,允許基於任何語言來編寫監控腳本,只需要這些腳本遵循NPD關於退出碼和標准輸出的規范。通過調用用戶配置的腳本來檢測各種節點問題

腳本退出碼:

腳本輸出應該小於80位元組,避免給Etcd的存儲造成壓力

使用標記禁用:disable_custom_plugin_monitor

plugin 是NPD或用戶自定義的一些異常檢查程序,可以用任意語言編寫。custom-plugin-monitor 在執行過程中會執行這些異常檢測程序,並根據返回結果來判斷是否存在異常。NPD提供了三個 plugin,分別是:

health-checker 的執行流程可以分為三個步驟:

依賴的插件是 journald,其作用是統計指定的 journal 日誌中近一段時間滿足正則匹配的歷史日誌條數。

檢查 conntrack table 的使用率是否超過 90%

system-log-monitor 用於監控系統和內核日誌,根據預定義規則來報告問題、指標。它支持基於文件的日誌、Journald、kmsg。要監控其它日誌,需要實現LogWatcher介面

LogWatcher 的主要作用的監聽文件更新,並將追加的文件內容寫入 LogBuffer 中供 LogMonitor 處理。NPD 中提供了三種 LogWatcher 的實現:

LogWatcher 也需要在 init() 方法中完成注冊。

filelog 通過監控指定的文件更新,並對日誌內容進行正則匹配,以發現異常日誌,從而判斷組件是否正常。

journald 底層依賴 sdjournal 包,監控系統日誌的更新,並且可以從指定的歷史時間點開始讀取。如果未指定 journal 日誌路徑,則從系統默認路徑讀取。讀取到的日誌會轉換成 logtypes.Log 對象,並寫入 logCh 通道中。journal 通過監控 journal 文件更新,並對日誌內容進行正則匹配,以發現異常日誌,從而判斷組件是否正常。

kmsg 和 journald 的實現原理類似,它底層依賴 kmsgparser 包,實現內核日誌的監控更新和回溯。默認的文件路徑是 /dev/kmsg。kmsg 通過監控系統日誌文件更新,並對日誌內容進行正則匹配,以發現異常日誌,從而判斷組件是否正常。

LogBuffer 是一個可循環寫入的日誌隊列,max 欄位控制可記錄日誌的最大條數,當日誌條數超過 max 時,就會從頭覆蓋寫入。LogBuffer 也支持正則匹配 buffer 中的日誌內容。

將各種健康相關的統計信息報告為Metrics

目前支持的組件僅僅有主機信息、磁碟:

使用標記禁用:disable_system_stats_monitor

health-checker-kubelet.json

kernel-monitor.json

node-problem-detector使用 Event 和 NodeCondition 將問題報告給apiserver。

通過配置 metricsReporting 可以選擇是否開啟 System Log Monitor 的指標上報功能。該欄位默認為 true。

臨時異常只會上報 counter 指標,如下:

永久異常會上報 gauge 指標和 counter 指標,如下:

Counter是一個累計類型的數據指標,它代表單調遞增的計數器。
Gauge是可以任意上下波動數值的指標類型。

NPD對指標這一概念也進行了封裝,它依賴OpenCensus而不是Prometheus這樣具體的實現的API。

所有指標如下:

其中ProblemCounterID 和 ProblemGaugeID 是針對所有Problem的Counter/Gauge,其他都是SystemStatsMonitor暴露的指標。

在NPD的術語中,治癒系統(Remedy System)是一個或一組進程,負責分析NPD檢測出的問題,並且採取補救措施,讓K8S集群恢復健康狀態。

目前官方提及的治癒系統有隻有Draino。NPD項目並沒有提供對Draino的集成,你需要手工部署和配置Draino。

Draino 是Planet開源的小項目,最初在Planet用於解決GCE上運行的K8S集群的持久卷相關進程(mkfs.ext4、mount等)永久卡死在不可中斷睡眠狀態的問題。Draino的工作方式簡單粗暴,只是檢測到NodeCondition並Cordon、Drain節點。

基於Label和NodeCondition自動的Drain掉故障K8S節點:

Draino可以聯用Cluster Autoscaler,自動的終結掉Drained的節點。

在Descheler項目成熟以後,可以代替Draino。

kubernetes addons之node-problem-detector

Kubernetes故障檢測和自愈

『陸』 go是什麼編程語言主要應用於哪些方面

Go語言由Google公司開發,並於2009年開源,相比Java/Python/C等語言,Go尤其擅長並發編程,性能堪比C語言,開發效率肩比Python,被譽為「21世紀的C語言」。
Go語言在雲計算、大數據、微服務、高並發領域應用應用非常廣泛。BAT大廠正在把Go作為新項目開發的首選語言。
Go語言能幹什麼?
1、服務端開發:以前你使用C或者C++做的那些事情,用Go來做很合適,例如日誌處理、文件系統、監控系統等;
2、DevOps:運維生態中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go語言開發;
3、網路編程:大量優秀的Web框架如Echo、Gin、Iris、beego等,而且Go內置的 net/http包十分的優秀;
4、Paas雲平台領域:Kubernetes和Docker Swarm等;
5、分布式存儲領域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;
6、區塊鏈領域:區塊鏈裡面有兩個明星項目以太坊和fabric都使用Go語言;
7、容器虛擬化:大名鼎鼎的Docker就是使用Go語言實現的;
8、爬蟲及大數據:Go語言天生支持並發,所以十分適合編寫分布式爬蟲及大數據處理。

『柒』 黑馬程序員Linux運維培訓怎麼樣

1、什麼是運維工程師?

運維工程師,伺服器與系統安全穩定的掌舵者!當一個產品(如Web網站、APP軟體、網路游戲等)正式上線後,產品、開發、測試類的工作就正式結束了,接下來的維護和管理工作就會全部移交給運維工程師。

運維工程師的主要工作職責就是負責伺服器的架構設計以及雲計算平台管理,保障軟體的穩定運行。沒有開發以及測試類工作復雜且工作解決方案相對固定。更重要的是沒有年齡以及學歷的限制,隨著工作年限和工作經驗地增長,也會越老越吃香。

2、運維工程師工作場景

運維學科2019全年所有班級就業率93.5%,平均薪資8.7k起,最高薪資25k* 14薪

三、運維課程

1、第一階段:Linux運維基礎功

運維基礎:運維發展史、計算機概述、計算機組成、操作系統學完此階段可掌握的核心能力:熟練掌握Linux操作系統的安裝(CentOS7.6)、配置、基礎命令、VIM編輯器、用戶管理、許可權管理、自有服務、進程檢測與控制、阿里雲平台管理、開源CMS項目上線部署實戰。

Linux操作系統:Linux系統概述、虛擬機、CentOS7.6系統安裝,Linux基礎命令

Linux下文件管理(上):文件命名規則、目錄管理、文件管理、文件復制與剪切、重命名、Linux文件打包與壓縮、文件處理命令

Linux下文件管理(下):VIM編輯器介紹、VI與VIM的區別、VIM安裝與配置、四種工作模式(命令模式,編輯模式,末行模式,可視化模式)、相關VIM指令、VIM擴展功能、VIM總結

Linux下用戶管理:用戶和組的相關概念、用戶組管理、用戶管理、用戶密碼設置、切換用戶、Linux用戶管理實戰

Linux下許可權管理:許可權的基本概念、許可權在生產環境中的作用、Linux許可權類別(rwx)、Linux文件所有者類別(ugo)、普通許可權設置(字母+數字)、文件屬主與屬組設置、高級許可權、ACL許可權控制、umask

Linux下自有服務+軟體包管理:自由服務概述、systemctl管理服務命令、ntp時間同步服務、firewalld防火牆、crond計劃任務、設備掛載與解掛、rpm包管理工具

Linux進程檢測與控制:進程與程序的概念、進程管理命令(top命令,free命令,df命令,ps命令,netstat命令,kill命令與killall命令)、進程優先順序設置

阿里雲平台管理與開發CMS項目上線部署實戰:雲計算平台概述、阿里雲平台注冊、登錄與管理、項目背景、LAMP環境概述、YUM指令、LAMP環境搭建、開源CMS項目上線部署實戰

學完此階段可解決的現實問題:能夠根據企業實際項目需求實現伺服器部署與架構。

學完此階段可擁有的市場價值:熟練掌握之後,可以滿足市場對初級運維工程師的需求,但是市場就業工資相對較低,還是建議繼續學習就業班課程。

2、第二階段:Linux系統服務篇

Linux高級指令:基礎命令回顧、find命令之高級搜索、tree命令、scp文件上傳與下載、計劃任務crontab + tar實現定時備份、用戶管理高級、文件許可權管理高級

Linux下軟體包管理:軟體包管理任務背景、Linux下軟體包概述、RPM包管理工具、YUM包管理工具、YUM源配置(公網YUM源,本地YUM源、自建YUM源倉庫)、源碼安裝概述、源碼安裝三步走、源碼安裝實戰

Linux遠程管理服務SSH:SSH任務背景、SSH服務概述,yum源配置,SSH服務安裝與配置實戰,公私鑰概念,SSH免密碼登錄

Linux數據同步RSYNC:RSYNC任務背景、RSYNC介紹、RSYNC基本語法、本機同步與遠程同步、把RSYNC作為系統服務、RSYNC結合INOTIFY實現實時同步、RSYNC託管XINETD

Linux下文件共享服務FTP、NFS、SAMBA:文件共享任務背景、FTP服務介紹、FTP工作模式(主動模式+被動模式)、FTP服務搭建、客戶端工具(ftp、lftp使用)、FTP訪問控制、NFS服務介紹、NFS服務搭建、配置文件詳解、NFS任務背景及解決方案、SAMBA服務介紹、SAMBA服務搭建、配置文件詳解、文件共享服務總結

DNS域名管理服務:DNS服務介紹、DNS的作用、DNS服務搭建、正向解析、反向解析、多域搭建、NTP時間伺服器、主從DNS架構

源碼構建LAMP環境及部署業務應用:LAMP任務背景、Web伺服器環境准備、軟體編譯回顧、編譯安裝MySQL、編譯安裝Apache、編譯安裝PHP、後期配置、Web應用系統部署實戰

Linux下日誌管理服務RSYSLOG:日誌管理任務背景、查看日誌、日誌管理服務(RSYSLOG概述,日誌列表,日誌級別,相關符號,配置文件)、RSYSLOG本地日誌管理、RSYSLOG遠程日誌管理、日誌管理應用實踐

Linux 磁碟管理:磁碟管理任務背景、磁碟管理概述、fdisk命令詳解、Linux分區概述、Linux分區實戰、邏輯卷介紹、邏輯卷基本概念(PV、VG、PE、LV)、邏輯卷LVM應用操作實戰、RAID介紹、RAID常見級別、軟硬RAID、軟RAID應用實踐

Shell腳本編程:Shell概述、變數、Shell流程式控制制、Shell數組、Shell函數、Shell特殊用法、正則表達式、Shell編程實戰

資料庫DBA:MySQL概述,MySQL5.7安裝,MySQL配置,MySQL基本操作、SQL語句詳解、MySQL索引、MySQL備份與還原、MySQL主從復制、MHA高可用架構、MySQL企業級應用實戰

學完此階段課掌握的核心能力:

1、了解Linux系統運行原理,實現Linux伺服器的維護與管理;

2、了解Linux系統相關服務,能根據企業需求實現企業運維工作。

學完此階段可解決的現實問題:能實現企業Linux伺服器的日常維護與管理,搭建SSH、文件共享、DNS、Apache等服務、能獨立完成系統日誌分析、Shell腳本編程、資料庫DBA等相關工作。

學完此階段可擁有的市場價值:熟練學習和掌握後,可滿足企業運維的初中級需求。

3、第三階段:千萬級商城系統架構設計

源碼構建企業級LNMP架構及電商系統上線部署:千萬級商城系統架構設計任務背景、Web項目開發流程、Linux伺服器環境准備、LNMP環境概述、MySQL資料庫服務搭建、Nginx軟體服務搭建、PHP軟體服務搭建、Web商城項目部署上線

大型WEB服務軟體Nginx部署介紹使用:Nginx軟體概述、Nginx平滑升級、nginx.conf配置文件詳解、虛擬主機配置、Nginx默認官方模塊詳解(GZIP壓縮,客戶端緩存,反向代理,基於IP/用戶的訪問控制,目錄顯示)、日誌管理、日誌輪轉、第三方日誌管理軟體GoAccess、Location區塊、URL重寫、第三方模塊安裝與配置、Nginx安全管理、Nginx其他衍生版本(Tengine,OpenResty)

WEB高可用集群架構設計及實現(keepalived):WEB高可用集群架構設計任務背景、單點資料庫遷移、HA高可用集群概述、Keepalived軟體介紹、Keepalived組成和原理、VRRP協議、安裝與配置Keepalived、Nginx服務高可用實踐、Keepalived擴展內容(非搶占模式、VIP腦裂、單播模式)

WEB負載均衡伺服器集群架構設計及實現LB(Nginx/LVS/HAProxy):WEB負載均衡伺服器集群架構設計任務背景、為什麼需要LB負載均衡技術、LB負載均衡架構圖、負載均衡分類、常見負載均衡實現方式、LB負載均衡環境准備、Nginx負載均衡實現、負載均衡演算法、Session共享解決方案、高可用負載實踐; LVS概述、LVS工作原理、LVS核心組件、LVS三種工作模式(NAT模式、DR模式、TUN隧道模式)、LVS/NAT原理和特點、LVS/DR原理和特點、LVS/TUN原理和特點、LVS的十種調度演算法、LVS/NAT模式部署實踐、LVS/DR模式部署實踐; HAProxy概述、HAProxy安裝與部署、haproxy.cfg配置文件詳解、常見問題分析、HAProxy調度演算法、HAProxy負載均衡應用實踐

MyCAT讀寫分離:MySQL讀寫分離任務背景、讀寫分離的目的、讀寫分離常見的實現方式、搭建M-S主從復制、代碼實現讀寫分離、MyCAT實現讀寫分離實戰(JDK配置、MyCAT配置文件詳解、讀寫分離實踐、高可用實踐、分庫分表、MyCAT企業級案例實踐)

非關系型資料庫NoSQL(Memcache/Redis/MongoDB):非關系型資料庫任務背景、Web項目訪問流程、優化方案、緩存技術引入、memcached介紹、memcached安裝與部署、telnet客戶端使用、memcached指令詳解、memcached tools工具使用、LRU失效機制、PHP memcached擴展安裝、Session入memcached、緩存項目的熱點數據; Redis介紹、Redis應用場景、Redis源碼安裝、客戶端工具使用、Redis數據結構詳解、數據持久化操作(快照+AOF)、企業級案例(主從,安全限制,PHP Redis擴展,Session入Redis);MongoDB任務背景、MongoDB安裝和配置、數據結構類型操作CURD、MongoDB安全設置、PHP擴展、桌面管理軟體、企業級日誌統計實踐

JAVA項目架構設計實戰(LNTM架構):Java項目任務背景、Tomcat概述、Tomcat安裝與部署、Tomcat企業級管理、Host虛擬主機配置、Server Status伺服器狀態、應用管理、Nginx動靜分離、Nginx+Tomcat負載均衡、Maven概述、Maven項目打包、Maven項目部署

存儲(NAS/SAN/GlusterFS/Ceph):存儲概述、Linux存儲分層、存儲的分類(DAS,NAS,SAN)、存儲類型的分類(文件存儲、塊存儲、對象存儲)、SAN的分類、IP-SAN之iscsi實現; 分布式存儲、Glusterfs介紹、raid級別回顧、常見卷的模式、Glusterfs集群、環境准備、集群部署、創建glusterfs存儲卷、客戶端使用、卷的刪除、常見卷類型(stripe模式、distributed模式、distributed-replica模式、dispersed模式、distributed-dispersed模式)、其它卷類型、glusterfs分部署存儲應用實戰; 認識Ceph、Ceph架構原理圖、Ceph集群、Ceph集群組件、Ceph集群環境准備、Ceph集群部署實踐、RADOS原生數據存取、Ceph文件存儲、Ceph塊存儲、Ceph對象存儲、Ceph對象存儲+owncloud打造雲盤系統、Ceph Dashboard(拓展)

配置自動化(Ansible/SaltStack):自動化運維任務背景、認識ansible、ansible安裝與配置、伺服器分組、ansible模塊(hostname模塊,file模塊,模塊,yum模塊,service模塊,command和shell模塊,scriYAML格式pt模塊)、playbook介紹、playbook實例、playbook編排應用、roles介紹、roles的目錄結構、roles應用案例; saltstack介紹、saltstack安裝與配置、saltstack遠程執行命令、grains、pillar、配置管理文件、配置管理目錄、配置管理命令、配置管理計劃任務、其他命令、salt-ssh使用

企業級監控平台(Zabbix/Prometheus):企業級監控任務背景、監控的目的、主流的開源監控平台、Zabbix概述、Zabbix伺服器安裝、Zabbix監控本機與遠程主機、模板、監控項與應用集、圖形、觸發器、報警、Zabbix代理、主動監控與被動監控、Zabbix應用部署實戰; 認識Prometheus、Prometheus原理架構圖、Prometheus監控安裝部署、Prometheus監控遠程主機、遠程MySQL、Grafana介紹、Grafana安裝與登錄、Prometheus結合Grafana實現Linux系統監控、CPU監控、MySQL監控等等、Grafana報警系統實踐

企業級日誌分析(ELK/Kafka):ELK任務背景、ELK概述、elasticsearch部署、elasticsearch基礎概念、elaticsearch基礎API操作、ES查詢語句、elasticsearch-head、logstash簡介、logstash部署、日誌採集、採集messages日誌、採集多日誌源、kibana介紹、kibana部署、kibana漢化、通過kibana查看集群信息、通過kibana查看logstash收集的日誌索引、通過kibana做可視化圖形、filebeat介紹、filebeat收集日誌、filebeat傳輸給logstash、filebeat收集nginx日誌、filebeat日誌過濾

CI/CD(Git、Gitlab、Jenkins):CI/CD任務背景、版本控制概念、Git安裝、Git身份設置、Git創建本地倉庫、Git暫存區、Git版本控制、Git分支管理、擴展:Windows版Git; Github概述、GitHub注冊、創建項目、遠程倉庫、免密push、分支、多人協作; GitLab介紹、GitLab下載、安裝與配置、GitLab配置、倉庫管理、持續集成(CI)、持續交付(CD)、藍綠部署、滾動更新、灰度發布

運維安全(SSL與CA認證/防火牆/ VPN/JumpServer與Teleport跳板機):運維安全任務背景、運維安全概述、硬碟分區加密(擴展)、對稱加密、非對稱加密、數字簽名、SSL與CA認證、SSL介紹、CA認證介紹、https應用實踐; 防火牆概述、iptables的應用、iptables防火牆結構、iptables基本語法、iptables四表五鏈、企業級防火牆規則設置、firewalld包過濾、firewalld與iptables的區別、firewalld防火牆規則設置、firewall-config圖形模式; VPN任務背景、隧道介紹、net-to-net隧道通訊、VPN介紹、IPSec協議、libreswan實現net-to-netVPN、三網路VPN互聯、roadwarrior VPN(libreswan實現點對網VPN,openvpn實現點對網vpn,使用pptpd實現VPN),PAM認證,LDAP,開源堡壘機jumpserver,輕量級開源堡壘機teleport(拓展)

學完此階段可掌握的核心能力:

1、 具備Linux伺服器架構設計能力,保證應用架構合理可控;

2、具備監控檢查系統軟硬體運行狀態,保證系統安全穩定運行的能力;

3、具備CI/CD持續集成/持續支付能力;

4、具備配置自動化以及日誌分析能力;

5、具備解決復雜問題和技術難點的能力。

學完此階段可解決的現實問題:

1、掌握Java、PHP伺服器架構能力;

2、能夠獨立搭建企業級高可用伺服器(集群、高可用、負載均衡、緩存、存儲);

3、掌握阿里雲/華為雲產品實戰;

4、能使用Zabbix/Prometheus搭建企業級監控;

5、能夠熟練掌握CI/CD持續集成/持續支付工具;

6、能夠使用Ansible/SaltStack實現運維自動化;

7、能使用ELK實現企業級日誌分析;

8、能夠掌握常見運維安全防護手段。

學完此階段可擁有的市場價值:熟練掌握和學習後,可滿足Linux運維行業中高級需求。

4、第四階段:Linux雲計算運維

KVM虛擬化:KVM任務背景、計算機工作原理、虛擬化概述與分類、KVM環境准備、KVM安裝、使用KVM安裝虛擬機、KVM基礎管理命令、KVM配置文件、KVM克隆、KVM網路管理、快照、設備管理、存儲池管理、磁碟鏡像管理、虛擬機快速創建腳本

公有雲運維(阿里雲[ECS/RDS/SLB/CDN/OSS/NFS]):公有雲任務背景、阿里雲概述、VPC專有網路、阿里雲安全組、雲伺服器ECS、自定義鏡像、阿里雲SLB、阿里雲RDS、阿里雲存儲(NAS與OSS)、CDN、域名與域名解析、SSL證書、數據傳輸DTS、雲監控、DDOS高防、容器服務、公有雲企業級案例應用實踐

私有雲運維之OpenStack平台:私有雲任務背景、OpenStack概述、OpenStack組件及其作用(Compute 計算服務、Networking 網路服務、Object Storage 對象存儲、Block Storage 塊存儲服務、Identity 身份認證、Image Service 鏡像服務、Dashboard UI頁面、Metering 測量服務、Orchestration 編排部署、Database Service 雲資料庫)、OpenStack自動部署、OpenStack手工部署、OpenStack雲平台應用實踐

Docker容器技術:Docker容器技術任務背景、PAAS平台介紹、認識容器、Docker介紹、Docker內核技術(NameSpace,Control Group,LXC與docker區別)、Docker環境准備、Docker軟體安裝、Docker Daemon管理、鏡像、容器、倉庫、Docker存儲驅動、Docker應用實踐、Dockerfile概述、使用Dockerfile構建鏡像、單宿主機容器互聯方式、Docker網路、Docker的Web管理平台、Docker三劍客(Docker machine、Docker compose、Docker swarm)、Docker容器應用部署實踐

Kubernetes(K8S)容器編排工具:Kubernetes(K8S)容器編排任務背景、認識容器編排、Kubernetes概述、Kubernetes架構、集群部署方式、Kubeadm部署Kubernetes集群、集群與節點信息、節點標簽、namespace命名空間、工作負載(workloads)、pod概述、pod分類、pod的YAML格式、pod資源限制、pod調度、pod生命周期、pod控制器、service、ingress controller、kubernetes存儲卷、ceph集群部署、ConfigMap、Secret、PV與PVC、API網關 kong、包管理方案 helm2、存儲解決方案 GlusterFS、服務網格 istio、監控解決方案 heapster、應用實踐 gitlab-ce、應用實踐 jenkins、應用實踐 kafka、應用實踐 zookeeper應用實踐 配置中心Apollo

綜合案例:Docker+K8S企業級項目應用實踐

學完此階段可掌握的核心能力:

1、熟練掌握虛擬化技術;

2、掌握公有雲與私有雲架構實戰;

3、熟練使用容器與容器編排工具;

4、熟練掌握企業級雲計算技術應用實踐。

學完此階段可解決的現實問題:

1、能夠使用KVM實現虛擬化;

2、能夠掌握公有雲與私有雲伺服器架構實戰;

3、能夠熟練使用Docker容器;

4、能夠熟練使用Kubernetes(K8S)容器編排工具;

5、能夠熟練掌握Docker+Kubernetes(K8S)項目架構設計

學完此階段可擁有的市場價值:熟練掌握和學習後,可滿足Linux雲計算架構工程師的高級需求。

5、第五階段:Python CMDB運維開發(DevOps)

HTML5:HTML簡介、HTML標簽詳解、字元編碼的奧秘、HTML5新特性與常用標簽

CSS3:CSS簡介、CSS的引入方式、CSS基本選擇器、CSS屬性、盒子模型、CSS浮動、CSS3新特性與常用屬性、CSS應用案例

Bootstrap:Bootstrap環境搭建、全局樣式、網頁排版、表單、圖片及輔助類、網頁布局、Bootstrap組件、CMDB後檯布局實戰

JavaScript/Ajax/jQuery:JavaScript簡介、Javascipt語法基礎、BOM模型、DOM模型、Ajax概述、Ajax中的get與post請求、Ajax案例、jQuery框架概述、jQuery選擇器、jQuery事件、jQuery與Ajax、JavaScript應用實踐

Python基礎:Python概述、Python環境部署、變數、標識符和關鍵字、輸入和輸出、數據類型轉換、條件控制語句和循環語句、容器類型、函數、文件操作

Python高級:面向對象、異常處理、模塊和包、Python與MySQL應用實踐

Django框架:Django框架介紹、Django模型、ORM及資料庫操作、視圖及模板、Django中間件

綜合項目:Python+Django實現CMDB企業自動化運維平台

學完此階段可掌握的核心能力:

1、掌握Web前端開發相關技術如HTML5/CSS3/JavaScript;

2、掌握Python運維相關模塊;

3、掌握Python Django框架;

4、具備一定的Python運維開發能力。

學完此階段可解決的現實問題:

1、具備一定的編程思維,為未來系統架構師鋪路搭橋;

2、能夠熟練掌握Python運維相關模塊實現運維管理;

3、能夠使用Python+Django開發企業自動化運維平台。

學完此階段可擁有的市場價值:熟練掌握和學習後,可滿足Linux運維行業的高級需求。

閱讀全文

與編譯Prometheus相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:768
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:843
安卓怎麼下載60秒生存 瀏覽:802
外向式文件夾 瀏覽:235
dospdf 瀏覽:430
怎麼修改騰訊雲伺服器ip 瀏覽:387
pdftoeps 瀏覽:492
為什麼鴻蒙那麼像安卓 瀏覽:735
安卓手機怎麼拍自媒體視頻 瀏覽:185
單片機各個中斷的初始化 瀏覽:723
python怎麼集合元素 瀏覽:480
python逐條解讀 瀏覽:832
基於單片機的濕度控制 瀏覽:498
ios如何使用安卓的帳號 瀏覽:882
程序員公園采訪 瀏覽:811
程序員實戰教程要多長時間 瀏覽:974
企業數據加密技巧 瀏覽:134
租雲伺服器開發 瀏覽:813
程序員告白媽媽不同意 瀏覽:335
攻城掠地怎麼查看伺服器 瀏覽:600