Prometheus安裝完整詳細(xì)_第1頁
Prometheus安裝完整詳細(xì)_第2頁
Prometheus安裝完整詳細(xì)_第3頁
Prometheus安裝完整詳細(xì)_第4頁
Prometheus安裝完整詳細(xì)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

目錄安裝docker-ce 1Prometheus安裝9090 1物理機(jī)安裝 1這里是基于1.6版本進(jìn)行安裝 1啟動PrometheusServer 2容器化安裝 4Prometheus服務(wù)重載 4Prometheus服務(wù)修改存儲位置 4Grafana安裝3000 5物理機(jī)安裝 5容器化安裝 5連接prometheus 5NodeExporter安裝9100 7物理機(jī)安裝 7容器化安裝 7Grafana模板添加地址 8Mysqlexporter安裝9104 8容器化安裝 8Grafana模板添加地址 9Nginxexporter安裝9913 9容器化安裝 9修改nginx配置 9Grafana模板添加地址 11Redisexporter安裝9121 11容器化安裝 11Grafana模板添加地址 11Pushgateway安裝 11物理機(jī)安裝 12容器化安裝 12Alertmanager安裝9093 12物理機(jī)安裝 12容器化安裝 13配置QQ郵件報警1.6版本 13修改alertmanager.yml配置文件 13在prometheus下添加alert.rules文件 14修改prometheus.yml新加配置 14企業(yè)微信報警2.0版本 15修改prometheus.yml配置文件 17修改alertmanager.yml配置文件 17在prometheus文件夾下添加rules.yml文件 18Prometheus-server的讀寫分離 19測試效果 20新建一個node-exporter來驗(yàn)證效果 21安裝docker-ce#安裝dockeryuminstall-yyum-utilsdevice-mapper-persistent-datalvm2yum-config-manager\--add-repo\/linux/centos/docker-ce.repoyummakecachefastyuminstall-ydocker-ce#編輯systemctl的Docker啟動文件sed-i"13iExecStartPost=/usr/sbin/iptables-PFORWARDACCEPT"/usr/lib/systemd/system/docker.service#啟動dockersystemctldaemon-reloadsystemctlenabledockersystemctlstartdockerPrometheus安裝9090物理機(jī)安裝這里是基于1.6版本進(jìn)行安裝下載地址wget/prometheus/prometheus/releases/download/v1.6.2/prometheus-1.6.2.linux-amd64.tar.gz使用tar解壓縮prometheus-1.6.2.linux-amd64.tar.gztar-xvzf~/Download/prometheus-1.6.2.linux-amd64.tar.gzcdprometheus-1.6.2.linux-amd64當(dāng)解壓縮成功后,可以運(yùn)行version檢查運(yùn)行環(huán)境是否正常./prometheus–version如果你看到類似輸出,表示你已安裝成功:prometheus,version1.6.2(branch:master,revision:b38e977fd8cc2a0d13f47e7f0e17b82d1a908a9a)builduser:root@c99d9d650cf4builddate:20170511-12:59:13goversion:go1.8.12.5版本下載地址/prometheus/prometheus/releases/download/v2.5.0/prometheus-2.5.0.linux-amd64.tar.gz啟動PrometheusServer./prometheus如果prometheus正常啟動,你將看到如下信息:INFO[0000]Startingprometheus(version=1.6.2,branch=master,revision=b38e977fd8cc2a0d13f47e7f0e17b82d1a908a9a)source=main.go:88INFO[0000]Buildcontext(go=go1.8.1,user=root@c99d9d650cf4,date=20170511-12:59:13)source=main.go:89INFO[0000]Loadingconfigurationfileprometheus.ymlsource=main.go:251INFO[0000]Loadingseriesmapandheadchunks...source=storage.go:421INFO[0000]0seriesloaded.source=storage.go:432INFO[0000]Startingtargetmanager...source=targetmanager.go:61INFO[0000]Listeningon:9090source=web.go:259從上述啟動方式來看,我們可以用screen或者&方式后臺運(yùn)行啟動通過啟動日志,可以看到PrometheusServer默認(rèn)端口是9090。當(dāng)Prometheus啟動后,你可以通過瀏覽器來訪問http://IP:9090,將看到如下頁面記住關(guān)閉防火墻或者定義策略放掉9090端口在默認(rèn)配置中,我們已經(jīng)添加了PrometheusServer的監(jiān)控,所以我們現(xiàn)在可以使用PromQL(PrometheusQueryLanguage)來查看,比如總結(jié):可以看出Prometheus二進(jìn)制安裝非常方便,沒有依賴,自帶查詢web界面容器化安裝dockerrun-d--restart=always\-p9090:9090\--nameprometheus\-v/root/prometheus:/etc/prometheus\quay.io/prometheus/prometheus\--config.file=/etc/prometheus/prometheus.yml--web.enable-lifecycle這時候我們再次查詢版本就是最新版Prometheus服務(wù)重載Prometheus一般更新服務(wù)都是重啟,這不適合生產(chǎn)環(huán)境,所以需要重載配置文件curl-XPOSThttp://IP/-/reload從2.0開始,hotreload功能是默認(rèn)關(guān)閉的,如需開啟,需要在啟動Prometheus的時候,添加--web.enable-lifecycle參數(shù)。curl-XPOST0:9090/-/reloadPrometheus服務(wù)修改存儲位置--storage.tsdb.path:這決定了Prometheus寫入數(shù)據(jù)庫的位置。默認(rèn)為data/。鏡像中定義的是/prometheus/data--storage.tsdb.retention:這決定了何時刪除舊數(shù)據(jù)。默認(rèn)為15d。dockerrun-d--restart=always\-p9090:9090\--nameprometheus\-v/root/prometheus:/etc/prometheus:rw\-v/root/prometheus/data:/etc/prometheus/data\quay.io/prometheus/prometheus\--config.file=/etc/prometheus/prometheus.yml--web.enable-lifecycle--storage.tsdb.path=/etc/prometheus/data--storage.tsdb.retention=15dGrafana安裝3000物理機(jī)安裝wget/grafana-releases/release/grafana-5.2.4-1.x86_64.rpmsudoyumlocalinstallgrafana-5.2.4-1.x86_64.rpm容器化安裝dockerrun--restart=always-dit-v/etc/localtime:/etc/localtime--name=grafana-p3000:3000grafana/grafana連接prometheus沒有開啟prometheus的認(rèn)證,這里采用代理方式,即瀏覽器方式,注意URL地址有http://,如果不能訪問在切換到default的方式嘗試下。添加dashboard模板NodeExporter安裝9100node_exporter主要用于UNIX系統(tǒng)監(jiān)控物理機(jī)安裝下載地址wget/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.14.0.linux-amd64.tar.gz解壓tarzxfnode_exporter-0.14.0.linux-amd64.tar.gz進(jìn)入后運(yùn)行./node_exporter即可訪問0:9100/metrics即可看到時序數(shù)據(jù)。容器化安裝老命令是這樣dockerrun-d\-v"/proc:/host/proc:ro"\-v"/sys:/host/sys:ro"\-v"/:/rootfs:ro"\--net="host"\quay.io/prometheus/node-exporter\-cfs/host/proc\-collector.sysfs/host/sys\-collector.filesystem.ignored-mount-points"^/(sys|proc|dev|host|etc)($|/)"新命令dockerrun-d--name=node-exporter--restart=always\-v"/proc:/host/proc"\-v"/sys:/host/sys"\-v"/:/rootfs"\--net="host"quay.io/prometheus/node-exporter--cfs/host/proc--path.sysfs/host/sys--collector.filesystem.ignored-mount-points"^/(sys|proc|dev|host|etc)($|/)"讀取node數(shù)據(jù)在prometheus.yml文件中新加-job_name:"node-exporter"static_configs:-targets:[":9100"]查詢promQL{job=”node-exporter”}Grafana模板添加地址/dashboards/5573上面地址中json下載后導(dǎo)入到grafana的dashboard中即可Mysqlexporter安裝9104容器化安裝dockerrun-d--restart=always\-p9104:9104\--namemysqld-exporter\-v/root/prometheus/mysqld:/etc/mysqld\prom/mysqld-exporter--config.my-cnf="/etc/mysqld/f"f[client]user=rootpassword=數(shù)據(jù)庫密碼host=服務(wù)器所在地址port=3306參考/prometheus/mysqld_exporter/blob/master/mysqld_exporter_test.go在prometheus.yml文件中新加-job_name:"mysql"static_configs:-targets:[":9104"]Grafana模板添加地址/dashboards/6239上面地址中json下載后導(dǎo)入到grafana的dashboard中即可Nginxexporter安裝9913容器化安裝dockerrun-d--restart=always\--namenginx-exporter-p9913:9913\--envNGINX_STATUS="/status/format/json"\sophos/nginx-vts-exporter在prometheus.yml文件中新加-job_name:"nginx"static_configs:-targets:[":9913"]修改nginx配置一.nginx添加vts模塊(重新編譯后進(jìn)行安裝)下載模塊gitclonegit:///vozlt/nginx-module-vts.git在nginx編譯時添加vts模塊

--add-module=nginx-module-vts編譯并安裝nginx安裝包解壓后路徑下,此處$PWD是因?yàn)槲业膙ts模塊git到了nginx包路徑下./configure--prefix=/software/nginx--add-module=$PWD/nginx-module-vts&&make&&makeinstall二.NginxConf配置更改NginxConf的配置,添加監(jiān)控接口/status/:http{vhost_traffic_status_zone;vhost_traffic_status_filter_by_hoston;...server{...location/status{vhost_traffic_status_display;vhost_traffic_status_display_formathtml;}}}配置建議:打開vhost過濾:vhost_traffic_status_filter_by_hoston;開啟此功能,在Nginx配置有多個server_name的情況下,會根據(jù)不同的server_name進(jìn)行流量的統(tǒng)計,否則默認(rèn)會把流量全部計算到第一個server_name上。在不想統(tǒng)計流量的server區(qū)域禁用vhost_traffic_status,配置示例:server{...vhost_traffic_statusoff;...}假如nginx沒有規(guī)范配置server_name或者無需進(jìn)行監(jiān)控的server上,那么建議在此vhost上禁用統(tǒng)計監(jiān)控功能。否則會出現(xiàn)“”,hostname等的域名監(jiān)控信息。重啟nginx,不是重載Grafana模板添加地址/dashboards/2949上面地址中json下載后導(dǎo)入到grafana的dashboard中即可Redisexporter安裝9121容器化安裝dockerrun-d--nameredis-exporter-p9121:9121--envREDIS_ADDR="44:6379"oliver006/redis_exporter環(huán)境變量名稱描述REDIS_ADDRRedis節(jié)點(diǎn)的地址REDIS_PASSWORD驗(yàn)證Redis時使用的密碼REDIS_ALIASRedis節(jié)點(diǎn)的別名REDIS_FILE包含Redis節(jié)點(diǎn)的文件路徑在prometheus.yml文件中新加-job_name:"redis"static_configs:-targets:[":9121"]Grafana模板添加地址/dashboards/763上面地址中json下載后導(dǎo)入到grafana的dashboard中即可SpringBoot2.x監(jiān)控監(jiān)控java項(xiàng)目的jvm、緩沖區(qū)等修改java代碼,使其可以生成時序數(shù)據(jù)參考鏈接地址/MyHerux/article/details/80667524?tdsourcetag=s_pcqq_aiomsg在prometheus.yml文件中新加-job_name:"webhook"metrics_path:'可訪問的時序數(shù)據(jù)路徑'static_configs:-targets:["項(xiàng)目地址"]labels:instance:項(xiàng)目名Grafana模板添加地址/dashboards/6756上面地址中json下載后導(dǎo)入到grafana的dashboard中即可Pushgateway安裝Pushgateway是Prometheus生態(tài)中一個重要工具,使用它的原因主要是:Prometheus采用pull模式,可能由于不在一個子網(wǎng)或者防火墻原因,導(dǎo)致Prometheus無法直接拉取各個target數(shù)據(jù)。在監(jiān)控業(yè)務(wù)數(shù)據(jù)的時候,需要將不同數(shù)據(jù)匯總,由Prometheus統(tǒng)一收集。由于以上原因,不得不使用pushgateway,但在使用之前,有必要了解一下它的一些弊端:將多個節(jié)點(diǎn)數(shù)據(jù)匯總到pushgateway,如果pushgateway掛了,受影響比多個target大。Prometheus拉取狀態(tài)up只針對pushgateway,無法做到對每個節(jié)點(diǎn)有效。Pushgateway可以持久化推送給它的所有監(jiān)控數(shù)據(jù)。因此,即使你的監(jiān)控已經(jīng)下線,prometheus還會拉取到舊的監(jiān)控數(shù)據(jù),需要手動清理pushgateway不要的數(shù)據(jù)。物理機(jī)安裝下載地址wget/prometheus/pushgateway/releases/download/v0.4.0/pushgateway-0.4.0.linux-amd64.tar.gz和其他服務(wù)一樣,也是解壓后運(yùn)行服務(wù)即可容器化安裝dockerrun-d--restart=always--name=pushgateway-p9091:9091prom/pushgatewayAlertmanager安裝9093物理機(jī)安裝下載地址wget/prometheus/alertmanager/releases/download/v0.14.0/alertmanager-0.14.0.linux-amd64.tar.gz解壓后創(chuàng)建配置文件alertmanager.ymlglobal:resolve_timeout:2hroute:group_by:['alertname']group_wait:5sgroup_interval:10srepeat_interval:1hreceiver:'webhook'receivers:-name:'webhook'webhook_configs:-url:'/xxxx'send_resolved:true說明:這里我們使用Alertmanager的webhook_configs選項(xiàng)來接收消息,當(dāng)接收到新的告警信息,它會將消息轉(zhuǎn)發(fā)到配置的url地址。容器化安裝dockerrun-d--restart=always-p9093:9093--name=alertmanager-v/root/prometheus/alertmanager:/etc/alertmanager\quay.io/prometheus/alertmanager--config.file=/etc/alertmanager/alertmanager.yml配置QQ郵件報警1.6版本Prometheus版本:prometheus-1.6Alertmanager版本:alertmanager-0.8發(fā)送告警郵件的郵箱:qqemail修改alertmanager.yml配置文件alertmanager.ymlglobal:smtp_smarthost:':587'smtp_from:'發(fā)件人郵箱'//xxx@smtp_auth_username:'發(fā)件人郵箱'//xxx@smtp_auth_password:'QQ郵箱授權(quán)碼'//QQ郵箱設(shè)置中心生成route:repeat_interval:10sreceiver:'收件人信息'//xxxXreceivers:-name:'收件人信息'//xxxXemail_configs:-to:'收件人郵箱'//xxxX@在prometheus下添加alert.rules文件alert.rulesALERTmemory_highIFprometheus_local_storage_memory_series>=0FOR15sANNOTATIONS{summary="Prometheususingmorememorythanitshould{{$labels.instance}}",description="{{$labels.instance}}haslotsofmemoryman(currentvalue:{{$value}}s)",}修改prometheus.yml新加配置rule_files:#-"first.rules"#-"second.rules"-"alert.rules"重啟兩個服務(wù)./alertmanager-config.file=simple.yml./prometheus-alertmanager.url=http://localhost:9093企業(yè)微信報警2.0版本step1:訪問網(wǎng)站/注冊企業(yè)微信賬號(不需要企業(yè)認(rèn)證)。step2:訪問apps創(chuàng)建應(yīng)用,點(diǎn)擊創(chuàng)建應(yīng)用按鈕->填寫應(yīng)用信息:prometheus:2.0node_exporter:0.15alertmanager:0.14至此,所有服務(wù)插件使用容器化安裝!?。⌒薷膒rometheus.yml配置文件global:scrape_interval:15s#Setthescrapeintervaltoevery15seconds.Defaultisevery1minute.evaluation_interval:15s#Evaluaterulesevery15seconds.Thedefaultisevery1minute.scrape_configs:-job_name:'prometheus'static_configs:-targets:['localhost:9090']-job_name:"node"static_configs:-targets:["0:9100"]#Alertmanagerconfigurationalerting:alertmanagers:-static_configs:-targets:-0:9093rule_files:-"/etc/prometheus/rules.yml"修改alertmanager.yml配置文件route:group_by:['alertname']receiver:'wechat'receivers:-name:'wechat'wechat_configs:-corp_id:'xxx'to_party:'1'agent_id:'1000002'api_secret:'xxxx'corp_id:企業(yè)微信賬號唯一ID,可以在"我的企業(yè)"中查看。to_party:需要發(fā)送的組。agent_id:第三方企業(yè)應(yīng)用的ID,可以在自己創(chuàng)建的第三方企業(yè)應(yīng)用詳情頁面查看。api_secret:第三方企業(yè)應(yīng)用的密鑰,可以在自己創(chuàng)建的第三方企業(yè)應(yīng)用詳情頁面查看。在prometheus文件夾下添加rules.yml文件rules.ymlgroups:-name:noderules:-alert:Server_Statusexpr:up{job="node"}==0for:15sannotations:summary:"機(jī)器{{$labels.instance}}掛了"然后重啟prometheus和alertmanager容器,再關(guān)閉node-exporter容器,即可在企業(yè)微信接收到報警信息也可不斷刷新alertmanager的web頁面0:9093/#/alerts進(jìn)行查看企業(yè)微信接收到的報警信息釘釘webhook報警2.0版本8060安裝釘釘插件物理機(jī)安裝/timonwong/prometheus-webhook-dingtalk/releases/download/v0.3.0/prometheus-webhook-dingtalk-0.3.0.linux-amd64.tar.gz解壓并啟動nohup./prometheus-webhook-dingtalk\--file="ops_dingding=/robot/send?access_token=*****"\2>&11>dingding.log&容器化安裝dockerrun-d--restart=always-p8060:8060--name=prometheus-webhook-dingtalktimonwong/prometheus-webhook-dingtalk\--file="ops_dingding=/robot/send?access_token=釘釘機(jī)器人webhook"修改alertmanager.ymlglobal:resolve_timeout:5sroute:receiver:webhookgroup_wait:30sgroup_interval:5srepeat_interval:90sgroup_by:[alertname]routes:-receiver:webhookgroup_wait:10smatch:team:nodereceivers:-name:webhookwebhook_configs:-url:44:8060/dingtalk/ops_dingding/sendsend_resolved:truePrometheus-server的讀寫分離建立三個文件夾prometheus1(讀)prometheus2(寫)prometheus3(寫)讀prometheus.ymlglobal:scrape_interval:15s#Setthescrapeintervaltoevery15seconds.Defaultisevery1minute.evaluation_interval:15s#Evaluaterulesevery15seconds.Thedefaultisevery1minute.remote_read:-url:'0:9191/api/v1/read'remote_timeout:8s-url:'0:9192/api/v1/read'remote_timeout:8s寫prometheus.yml兩個相同global:scrape_interval:15s#Setthescrapeintervaltoevery15seconds.Defaultisevery1minute.evaluation_interval:15s#Evaluaterulesevery15seconds.Thedefaultisevery1minute.scrape_configs:-job_name:'prometheus'static_configs:-targets:['localhost:9090']-job_name:"node"static_configs:-targets:["0:9100"]容器化建立三個服務(wù)dockerrun-d--restart=always\-p9190:9090\--nameprometheus-read\-v/root/prometheus/prometheus1:/etc/prometheus\quay.io/prometheus/prometheus\--config.file=/etc/prometheus/prometheus.yml--web.enable-lifecycledockerrun-d--restart=always\-p9191:9090\--nameprometheus-write-1\-v/root/prometheus/prometheus2:/etc/prometheus\quay.io/prometheus/prometheus\--config.file=/etc/prometheus/prometheus.yml--web.enable-lifecycledockerrun-d--restart=always\-p9192:9090\--nameprometheus-write-2\-v/root/prometheus/prometheus3:/etc/prometheus\quay.io/prometheus/prometheus\--config.file=/etc/prometheus/prometheus.yml--web.enable-lifecycle測試效果訪問讀所在web頁面進(jìn)行測試三個web頁面將會相同新建一個node-exporter來驗(yàn)證效果dockerrun-d--name=node-exporter-test--restart=always\-v"/proc:/host/proc"\-v"/sys:/host/sys"\-v"/:/rootfs"\-p9101:9100quay.io/prometheus/node-exporter--cfs/host/proc--path.sysfs/host/sys--collector.filesystem.ignored-mount-points"^/(sys|proc|dev|host|etc)($|/)"然后修改其中一個寫的配置文件global:scrape_interval:15s#Setthescrapeintervaltoevery15seconds.Defaultisevery1minute.evaluation_interval:15s#Evaluaterulesevery15seconds.Thedefaultisevery1minute.scrape_configs:-job_name:'prometheus'static_configs:-targets:['localhost:9090']-job_name:"sample"static_configs:-targets:["0:8080"]-job_name:"node"static_configs:-targets:["0:9100"]-targets:["0:9101"]重載服務(wù)curl-XPOST0:9191/-/reload測試效果prometheus-operator操作者安裝/v1api(prometheus-operator)gitclone/coreos/prometheus-operator.gitcdprometheus-operator/contrib/kube-prometheuskubectlapply-fmanifests/kubectlgetpod--all-namespaceskubectlapi-versions如果整個集群是否設(shè)置tain,解除即可foriinkube-apikube-node1kube-node2;dokubectltaintnodes$inode-role.kubernetes.io/master:NoSchedule-;done集群狀態(tài)查看是否建立并啟動好所有容器kubectlgetpod--all-namespaces-owide或者kubectlgetpod-nmonitoring查看建立的service,我們需要訪問prometheus數(shù)據(jù)源和grafana的監(jiān)控展示web-UI界面,如何訪問呢,可以使用service的Nodeport方式,顯然這是非常lose的,這里我使用traefik代理方式(traefik安裝就不贅述了),建立ingress第一步,查看servicekubectlgetsvc--all-namespaces第二步,查看ingresskubectlgetingress--all-namespaces新建一個ingress在命名空間monitoring下的apiVersion:extensions/v1beta1kind:Ingressmetadata:name:prometheus-k8s-grafananamespace:monitoringspec:rules:-host:http:paths:-backend:serviceName:prometheus-k8sservicePort:9090path:/-host:http:paths:-backend:serviceName:grafanaservicePort:3000path:/給客戶機(jī)的hosts添加本地解析記錄0打開瀏覽器進(jìn)行訪問需要密碼驗(yàn)證用戶名admin密碼admin并提示修改初始密碼grafana已經(jīng)添加了k8s集群的監(jiān)控上述的數(shù)據(jù)源是從prometheus獲取的,那么prometheus是如何獲取k8s中這些數(shù)據(jù)的呢?經(jīng)過prometheus-operator的其中一個資源類型ServiceMonitor來定義添加的要被監(jiān)控的k8s的服務(wù)service,然后使用operator工具來定義一個資源類型Prometheus進(jìn)行篩選ServiceMonitor進(jìn)行服務(wù)監(jiān)控。解析prometheus-operator原理新加了兩個apiversion,如下metrics.k8s.io//v1新加了四個資源類型kind,如下/v1是作為四個資源對象的組而添加到api中,metrics.k8s.io/v1beta1是使用資源對象APIService進(jìn)行建立的,這個apiversion需要podprometheus-adapter建立成功才會成功建立,所以記住需要使用kubectlapi-versions命令關(guān)注是否建立成功獲取命令如下kubectlgetServicemonitor--all-namespaceskubectlgetPrometheus--all-namespaces資源類型Prometheus這里我們來深度解析下這個資源類型為PrometheuskubectlgetPrometheus--all-namespaces-oyaml>k8s-prometheus.yaml去除一些不必要的信息后,apiVersion:v1items:-apiVersion:/v1kind:Prometheusmetadata:labels:prometheus:k8sname:k8snamespace:monitoringspec:alerting:alertmanagers:-name:alertmanager-mainnamespace:monitoringport:webbaseImage:quay.io/prometheus/prometheusnodeSelector:beta.kubernetes.io/os:linuxreplicas:2resources:requests:memory:400MiruleSelector:matchLabels:prometheus:k8srole:alert-rulessecurityContext:fsGroup:2000runAsNonRoot:truerunAsUser:1000serviceAccountName:prometheus-k8sserviceMonitorNamespaceSelector:{}serviceMonitorSelector:{}version:v2.5.0kind:Listmetadata:resourceVersion:""selfLink:"" apiVersion:v1items:……kind:Listmetadata:resourceVersion:""selfLink:""這一段是定義多個,不必在意。-apiVersion:/v1kind:Prometheusmetadata:labels:prometheus:k8sname:k8snamespace:monitoring這是基礎(chǔ)的頭定義,定義了api類型,資源對象類型,標(biāo)簽,名稱,命名空間。alerting:alertmanagers:-name:alertmanager-mainnamespace:monitoringport:web這是定義告警方式的alertmanager的k8s服務(wù)service名稱(kubectlgetsvc–all-namespaces)獲取查看,web是定義service時spec.ports下的一個名稱name(kubectlgetsvcalertmanager-main-nmonitoring-oyaml)獲取查看。baseImage:quay.io/prometheus/prometheusnodeSelector:beta.kubernetes.io/os:linuxreplicas:2resources:requests:memory:400Mi設(shè)置prometheus建立pod時的參數(shù),基礎(chǔ)鏡像,節(jié)點(diǎn)選擇,副本因子數(shù),資源配額。ruleSelector:matchLabels:prometheus:k8srole:alert-rules規(guī)則選擇器,依照標(biāo)簽來選擇規(guī)則列表,獲取規(guī)則列表可以(kubectlgetprometheusruleprometheus-k8s-rules-nmonitoring),prometheus-operator添加api時候定義了一個新的資源類型PrometheusRule,如何查看添加哪些新的kind呢,我是依照安裝prometheus-operator時候會建立資源對象推斷出的securityContext:fsGroup:2000runAsNonRoot:truerunAsUser:1000安全上下文配置,這里我猜測應(yīng)該是基于容器container的安全上下文配置。具體參考官方/security-context-pspserviceAccountName:prometheus-k8sRBAC認(rèn)證賬戶serviceMonitorNamespaceSelector:{}服務(wù)監(jiān)控(ServiceMonitor)命名空間選擇,這里是匹配所有serviceMonitorSelector:{}對(ServiceMonitor)進(jìn)行篩選,這里也是匹配所有version:v2.5.0鏡像的版本號,即prometheus的版本號建立的pod是使用statefulsets部署的資源類型prometheusrule專門用于prometheus的rules配置kubectlgetprometheusruleprometheus-k8s-rules-nmonitoring-oyaml來參照修改資源類型servicemonitorkubectlgetServicemonitor--all-namespaces

以下舉例三個不同namespace下的service進(jìn)行說明kubectlgetServicemonitorkube-apiserver-nmonitoring-oyaml>kube-apiserver-servicemonitor.yamlapiVersion:/v1kind:ServiceMonitormetadata:labels:k8s-app:apiservername:kube-apiservernamespace:monitoringspec:endpoints:-bearerTokenFile:/var/run/secrets/kubernetes.io/serviceaccount/tokeninterval:30smetricRelabelings:-action:dropregex:etcd_(debugging|disk|request|server).*sourceLabels:-__name__port:httpsscheme:httpstlsConfig:caFile:/var/run/secrets/kubernetes.io/serviceaccount/ca.crtserverName:kubernetesjobLabel:componentnamespaceSelector:matchNames:-defaultselector:matchLabels:component:apiserverprovider:kuberneteskubectlgetServicemonitornode-exporter-nmonitoring-oyaml>node-exporter-servicemonitor.yamlapiVersion:/v1kind:ServiceMonitormetadata:labels:k8s-app:node-exportername:node-exporternamespace:monitoringspec:endpoints:-bearerTokenFile:/var/run/secrets/kubernetes.io/serviceaccount/tokeninterval:30sport:httpsscheme:httpstlsConfig:insecureSkipVerify:truejobLabel:k8s-appselector:matchLabels:k8s-app:node-exporterkubectlgetServicemonitorcoredns-nmonitoring-oyaml>coredns-servicemonitor.yamlapiVersion:/v1kind:ServiceMonitormetadata:labels:k8s-app:corednsname:corednsnamespace:monitoringspec:endpoints:-bearerTokenFile:/var/run/secrets/kubernetes.io/serviceaccount/tokeninterval:15sport:metricsnamespaceSelector:matchNames:-kube-systemselector:matchLabels:k8s-app:kube-dnsendpoints:#端點(diǎn)配置-bearerTokenFile:/var/run/secrets/kubernetes.io/serviceaccount/token#serviceaccount自動建立的tokeninterval:30s#間隔時間metricRelabelings:-action:dropregex:etcd_(debugging|disk|request|server).*sourceLabels:-__name__port:https#端點(diǎn)配置中的port定義名稱,使用kubectlgetepep名稱-oyaml可以查看到scheme:https#訪問metrics的方式,一般是http和htt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論