Linux系統(tǒng)監(jiān)控細則_第1頁
Linux系統(tǒng)監(jiān)控細則_第2頁
Linux系統(tǒng)監(jiān)控細則_第3頁
Linux系統(tǒng)監(jiān)控細則_第4頁
Linux系統(tǒng)監(jiān)控細則_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Linux系統(tǒng)監(jiān)控細則一、Linux系統(tǒng)監(jiān)控概述

Linux系統(tǒng)監(jiān)控是保障系統(tǒng)穩(wěn)定運行、優(yōu)化性能和資源管理的重要手段。通過實時收集、分析和展示系統(tǒng)狀態(tài)信息,管理員能夠及時發(fā)現(xiàn)并解決潛在問題,確保業(yè)務連續(xù)性。本細則旨在提供一套系統(tǒng)化、規(guī)范化的監(jiān)控方法,涵蓋關鍵性能指標、常用監(jiān)控工具及實施步驟。

二、核心監(jiān)控指標

(一)系統(tǒng)資源使用情況

1.CPU使用率

(1)實時監(jiān)控:使用`top`、`htop`等工具查看各核CPU占用情況

(2)告警閾值:建議設置長期閾值為85%,短期峰值閾值為95%

(3)異常表現(xiàn):持續(xù)高負載可能提示線程數(shù)過多或硬件瓶頸

2.內(nèi)存使用情況

(1)關鍵指標:總內(nèi)存、可用內(nèi)存、緩存、交換空間

(2)工具命令:`free-m`、`vmstat`可展示內(nèi)存分配細節(jié)

(3)異常診斷:內(nèi)存泄漏表現(xiàn)為持續(xù)增長的Swap使用率

3.磁盤I/O性能

(1)監(jiān)控項:讀寫速率、IOPS、延遲

(2)命令參考:`iostat-x1`每秒更新一次數(shù)據(jù)

(3)性能基準:SSD建議IOPS>50K,HDD>200

(二)網(wǎng)絡狀態(tài)監(jiān)控

1.接口流量

(1)基礎命令:`ifconfig`、`ipaddr`查看鏈路狀態(tài)

(2)流量分析:`nload`或`iftop`實時展示帶寬占用

(3)問題排查:流量突增需檢查DDoS攻擊或服務異常

2.網(wǎng)絡延遲與丟包

(1)測試工具:`ping`、`mtr`追蹤路由路徑

(2)正常范圍:延遲<20ms為良好,丟包率<0.1%為可接受

(3)環(huán)境影響:高延遲可能由路由跳數(shù)或中間設備引起

三、常用監(jiān)控工具

(一)系統(tǒng)自帶工具

1.基礎監(jiān)控

(1)`vmstat`:每間隔指定秒數(shù)輸出CPU、內(nèi)存、磁盤狀態(tài)

(2)`dmesg`:查看內(nèi)核日志,用于硬件故障排查

(3)`sar`:系統(tǒng)活動歷史記錄工具,需預先開啟采集

2.性能分析

(1)`iotop`:按進程展示磁盤占用情況

(2)`netstat`:分析網(wǎng)絡連接狀態(tài)和端口使用

(3)`pidstat`:監(jiān)控進程資源使用趨勢

(二)第三方專業(yè)工具

1.基礎版監(jiān)控套件

(1)`NagiosCore`:輕量級企業(yè)級監(jiān)控系統(tǒng)

(2)`Zabbix`:支持分布式架構,帶可視化界面

(3)`Prometheus+Grafana`:時序數(shù)據(jù)采集與展示組合

2.高級功能工具

(1)`Ganglia`:專為HPC環(huán)境設計的監(jiān)控平臺

(2)`Collectd`:模塊化數(shù)據(jù)收集器,可定制擴展

(3)`ELKStack`:日志聚合分析解決方案

四、實施監(jiān)控步驟

(一)準備工作

1.環(huán)境配置

(1)確認目標系統(tǒng)內(nèi)核版本>=2.6.32

(2)檢查磁盤空間:建議預留10%系統(tǒng)盤容量

(3)防火墻設置:開放監(jiān)控端口(默認9876/9090)

2.權限規(guī)劃

(1)監(jiān)控工具運行賬戶需sudo權限

(2)數(shù)據(jù)存儲目錄需屬主可寫

(3)告警通知賬戶需SMTP配置

(二)部署實施

1.基礎監(jiān)控部署

(1)安裝命令:`yuminstall-ysysstat`或`apt-getinstallsysstat`

(2)啟動服務:`systemctlstartsysstat`并設置開機自啟

(3)配置采集周期:編輯`/etc/sysconfig/sysstat`修改`SAinterval`

2.告警系統(tǒng)配置

(1)基礎告警:編輯`/etc/nagios/commands.conf`定義監(jiān)控命令

(2)觸發(fā)條件:設置CPU>90%持續(xù)5分鐘觸發(fā)告警

(3)通知方式:集成SMS網(wǎng)關或郵件服務器

(三)日常維護

1.數(shù)據(jù)清理

(1)定期歸檔:每周壓縮歷史采集數(shù)據(jù)至`/var/log/sa/saXX`

(2)清除周期:`sa-del`命令可刪除30天前數(shù)據(jù)

(3)磁盤占用:監(jiān)控工具自身不超過5%系統(tǒng)資源

2.視覺化配置

(1)Grafana接入:`http://host:3000`默認賬戶admin/admin

(2)儀表盤模板:導入Prometheus官方模板`linux-server`

(3)自動刷新:設置每5分鐘更新一次數(shù)據(jù)

五、性能優(yōu)化建議

(一)參數(shù)調(diào)優(yōu)

1.內(nèi)存優(yōu)化

(1)調(diào)整參數(shù):`vm.swappiness`值建議設為60

(2)緩存策略:`echo1>/sys/kernel/mm/transparent_hugepage/enabled`

(3)應用場景:Web服務器可設置`numa_balancing=0`

2.磁盤優(yōu)化

(1)I/O調(diào)度:`echodeadline>/sys/block/sda/queue/scheduler`

(2)雙緩沖:`echo3>/sys/block/sda/queue/rotational`

(3)順序讀寫:針對日志文件啟用`noatime`掛載選項

(二)資源隔離

1.容器化部署

(1)Docker建議:設置`--cpus`和`--memory`限制

(2)網(wǎng)絡隔離:使用自定義網(wǎng)橋而非bridge

(3)存儲優(yōu)化:推薦使用overlayFS而非bindmount

2.傳統(tǒng)方案

(1)SELinux:啟用強制訪問控制,建議permissive模式測試

(2)chroot環(huán)境:為特殊服務創(chuàng)建獨立運行空間

(3)cgroups:使用`cgcreate`創(chuàng)建自定義資源組

六、異常處理流程

(一)告警響應機制

1.初步排查

(1)收集信息:記錄告警時間、指標閾值、歷史趨勢

(2)快速驗證:執(zhí)行`top-H`檢查線程狀態(tài)

(3)自動恢復:對可自愈問題設置腳本自動重啟

2.人工干預

(1)嚴重等級:將告警分為綠/黃/紅三級處理優(yōu)先級

(2)處理周期:普通告警4小時內(nèi)響應,嚴重告警15分鐘內(nèi)

(3)記錄規(guī)范:在`/var/log/monitoring.log`記錄處理過程

(二)性能瓶頸診斷

1.系統(tǒng)診斷流程

(1)檢查磁盤:`df-h`確認可用空間

(2)查看負載:`uptime`結合`w`命令分析歷史峰值

(3)進程分析:`psauxf`查找僵尸進程

2.專用診斷工具

(1)`perftop`:分析熱點函數(shù)調(diào)用

(2)`strace`:追蹤進程系統(tǒng)調(diào)用

(3)`ftrace`:內(nèi)核事件跟蹤工具

七、安全注意事項

(一)數(shù)據(jù)采集安全

1.數(shù)據(jù)傳輸加密

(1)Nagios建議:使用SSL證書保護NRPE傳輸

(2)Zabbix配置:`StartTLS=true`參數(shù)啟用

(3)接口限制:僅允許指定IP訪問監(jiān)控端口

2.存儲安全

(1)訪問控制:監(jiān)控數(shù)據(jù)庫使用`REPL`模式隔離

(2)數(shù)據(jù)脫敏:對敏感指標使用`grep-v`過濾

(3)定期審計:每月檢查`/var/log/syslog`中的監(jiān)控操作

(二)系統(tǒng)加固

1.最小化原則

(1)服務禁用:卸載`rsyslog`替換為`journald`

(2)端口關閉:默認關閉139/445/SMB等協(xié)議

(3)腳本安全:監(jiān)控腳本使用`set-e`防止錯誤執(zhí)行

2.定期檢查

(1)漏洞掃描:每月執(zhí)行`nikto`基礎檢測

(2)配置校驗:使用`auditd`記錄關鍵文件修改

(3)更新策略:監(jiān)控工具組件按季度升級

七、安全注意事項(續(xù))

(一)數(shù)據(jù)采集安全(續(xù))

1.數(shù)據(jù)傳輸加密(續(xù))

(1)Nagios建議(續(xù)):除SSL證書外,可配置HTTPS代理`nginx`實現(xiàn)反向加密,需創(chuàng)建`/etc/ssl/certs/nagios.crt`文件并設置`ssl_certificate`和`ssl_certificate_key`參數(shù)

(2)Zabbix配置(續(xù)):在`zabbix.conf.php`中啟用`PhpSessionHandler=cookie`避免明文傳輸,同時配置`TLSAccept`為`yes`接受客戶端證書

(3)接口限制(續(xù)):使用`iptables`規(guī)則`-mconntrack--ctstateESTABLISHED-jACCEPT`僅允許已建立連接的監(jiān)控請求,`-mrecent--set`記錄源IP訪問日志

2.存儲安全(續(xù))

(1)訪問控制(續(xù)):對于Prometheus,配置`--storage.tsdb.path`目錄權限為`640`,創(chuàng)建`prometheus`用戶屬主,使用`--storage.tsdb.retention`限制數(shù)據(jù)保存7天

(2)數(shù)據(jù)脫敏(續(xù)):在ELKStack中,通過`logstash`添加`filter`插件處理敏感字段,如`grok`匹配并刪除信用卡號正則`(?i)\b(?:\d[-]?){13,16}\b`

(3)定期審計(續(xù)):使用`auditctl`監(jiān)控監(jiān)控工具目錄訪問,規(guī)則如`-w/var/lib/zabbix/-pwarx-kmonitor審計`,每周通過`ausearch`生成報告

(二)系統(tǒng)加固(續(xù))

1.最小化原則(續(xù))

(1)服務禁用(續(xù)):對于Docker宿主機,使用`yumgroupinstall"DevelopmentTools"`安裝編譯工具后立即`yumgroupremove"DevelopmentTools"`,禁用`cgroups`通過`sed-i'/cgroup/d'/boot/grub/grub.conf`

(2)端口關閉(續(xù)):使用`firewalld`默認區(qū)域`public`,執(zhí)行`firewall-cmd--permanent--remove-service=http`移除HTTP服務,設置自定義規(guī)則`-AINPUT-mconntrack--ctstateRELATED,ESTABLISHED-jACCEPT`

(3)腳本安全(續(xù)):所有監(jiān)控腳本添加`shebang`聲明,使用`trap"echo'Abnormalexitat$(date)'>&2;exit1"SIGINTSIGTERM`捕獲退出信號,禁止執(zhí)行權限通過`find/var/log-perm/4000-execchmodu-s{}\;`

2.定期檢查(續(xù))

(1)漏洞掃描(續(xù)):使用`OpenVAS`配置掃描任務,設置每周三凌晨執(zhí)行,掃描范圍限定為`/24`網(wǎng)段,報告存儲在`/var/lib/openvas/reporting/storage/`

(2)配置校驗(續(xù)):創(chuàng)建`/etc/monitoring-checks.sh`腳本,包含以下檢查:

```bash

檢查Nagios主配置文件

if!grep-q"cfg_file=/etc/nagios/nagios.cfg"/etc/nagios/nagios.cfg;then

echo"WARNING:Nagiosconfigfilemissingrequireddirective"

fi

檢查Prometheus存儲目錄權限

if["$(stat-c"%a"/var/lib/prometheus)"!="700"];then

echo"ERROR:Prometheusstoragedirectorypermissionsincorrect"

fi

```

(3)更新策略(續(xù)):創(chuàng)建`/etc/cron.daily/prometheus-update`,內(nèi)容為:

```bash

!/bin/bash

cd/tmp||exit1

curl-shttps://prometheus.io/download/prometheus-2.35.0.linux-amd64.tar.gz|tarxz

systemctlstopprometheus

mv/usr/local/prometheus/usr/local/prometheus.bak

mv/tmp/prometheus-2.35.0.linux-amd64/prometheus/usr/local/

systemctlstartprometheus

rm-rf/tmp/prometheus-2.35.0.linux-amd64

```

八、自動化運維集成

(一)Ansible集成方案

1.基礎部署

(1)安裝Ansible:`pipinstallansible`或通過`yuminstallepel-release`后`yuminstallansible`

(2)配置控制節(jié)點:編輯`/etc/ansible/hosts`添加`[monitors]`組

(3)密鑰生成:`ssh-keygen-trsa-f~/.ssh/ansible`后分發(fā)到被管理節(jié)點`ssh-copy-id-i~/.ssh/ansible.pubnode1`

2.監(jiān)控模塊開發(fā)

(1)基礎模板:創(chuàng)建`site.yml`包含以下內(nèi)容:

```yaml

-name:DeployZabbixagent

hosts:monitors

become:yes

tasks:

-name:InstallZabbixagent

yum:

name:zabbix-agent

state:present

-name:Enableandstartservice

service:

name:zabbix-agent

state:started

enabled:yes

-name:ConfigureGrafana

hosts:monitors

become:yes

tasks:

-name:CopyGrafanaconfig

copy:

src:/etc/grafana/grafana.ini.j2

dest:/etc/grafana/grafana.ini

notify:RestartGrafana

handlers:

-name:RestartGrafana

service:

name:grafana

state:restarted

```

(2)動態(tài)庫存:使用`inventory.ini`存儲IP和自定義變量

```ini

[monitors]

01ansible_user=rootansible_ssh_private_key_file=/root/.ssh/id_rsa

02ansible_user=rootansible_ssh_private_key_file=/root/.ssh/id_rsa

```

(二)Jenkins集成方案

1.基礎配置

(1)安裝Jenkins:`yuminstalljava-1.8.0-openjdk`后`amazon-linux-extrasinstalljenkins-y`

(2)初始密碼:`sudocat/var/lib/jenkins/secrets/initialAdminPassword`

(3)插件安裝:安裝"Pipeline","Git","Ansible"插件

2.自動化流程

(1)Jenkinsfile示例:

```groovy

pipeline{

agentany

stages{

stage('MonitorUpdate'){

steps{

script{

defversion=sh(

script:'curl-s/repos/prometheus/prometheus/tags|grepname|head-1|cut-d\"-f4',

returnStdout:true

).trim()

sh"yuminstall-ygit"

sh"gitclone/prometheus/prometheus.git--branch${version}"

sh"cp-rfprometheus/usr/local/"

}

}

}

stage('RestartService'){

steps{

ansiblePlaybook:

playbook:'site.yml'

colorized:true

tags:['restart']

}

}

}

}

```

(三)CI/CD集成要點

1.觸發(fā)策略

(1)持續(xù)集成:配置GitLabCI的`docker-compose.yml`包含監(jiān)控組件

(2)手動觸發(fā):通過JenkinsDashboard中的"BuildNow"按鈕

(3)自動觸發(fā):設置GitLab的Webhook在push時觸發(fā)`monitoring.yml`

2.環(huán)境隔離

(1)容器化部署:使用`docker-compose.yml`定義監(jiān)控服務

```yaml

version:'3.7'

services:

prometheus:

image:prom/prometheus

volumes:

-./prometheus.yml:/etc/prometheus/prometheus.yml

-prometheus_data:/prometheus

volumes:

prometheus_data:

```

(2)資源限制:為每個服務設置`deploy.resources.limits`和`deploy.resources.reservations`

(3)網(wǎng)絡配置:使用自定義網(wǎng)絡`dockernetworkcreatemonitoring_net`

九、高級監(jiān)控技術

(一)分布式追蹤

1.Jaeger部署

(1)安裝步驟:

```bash

安裝Go環(huán)境

yuminstall-ygolang

下載并啟動Jaeger

curl-Lhttps://jaegertracing.io/downloads/jaeger-all-1.34.0-linux-amd64.tar.gz|tarxz

cpjaeger-all-1.34.0-linux-amd64/jaeger-all/usr/local/

/usr/local/jaeger-all/bin/jaeger-allstart

```

(2)集成配置:在Go微服務中添加`jaeger-client-go`庫

```go

import(

"/opentracing/opentracing-go"

"/opentracing/opentracing-go/log"

)

funcmain(){

tracer,closer:=jaeger.NewTracer(

jaeger.WithCollectorEndpoint("http://localhost:14250/api/traces"),

jaeger.SetSampler(jaeger.NewConstSampler(jaeger.DecimalSamplingRate(1))))

defercloser.Close()

spans:=make([]opentracing.Span,0)

deferfunc(){

opentracing.SetGlobalTracer(tracer)

for_,span:=rangespans{

span.Finish()

}

}()

//創(chuàng)建Span

opentracing.SetGlobalTracer(tracer)

span:=tracer.StartSpan("example-service")

deferspan.Finish()

span.LogFields(log.String("user","admin"))

}

```

(二)鏈路追蹤

1.SkyWalking部署

(1)環(huán)境要求:準備3臺服務器作為Agent節(jié)點、Collector節(jié)點和UI節(jié)點

(2)安裝流程:

```bash

Agent安裝

curl-L/apache/skywalking/releases/download/skywalking-bundle-8.9.0/skywalking-agent-8.9.0-linux-amd64.tar.gz|tarxz

Collector安裝

curl-L/apache/skywalking/releases/download/skywalking-bundle-8.9.0/skywalking-collector-8.9.0-linux-amd64.tar.gz|tarxz

UI安裝

curl-L/apache/skywalking/releases/download/skywalking-bundle-8.9.0/skywalking-ui-8.9.0-linux-amd64.tar.gz|tarxz

```

(3)配置要點:在SkyWalkingAgent配置中設置`collector_host`為Collector節(jié)點IP

(4)服務注冊:在服務啟動腳本中添加`-javaagent:/path/to/skywalking-agent.jar`參數(shù)

(三)日志聚合分析

1.EFK部署方案

(1)安裝步驟:

```bash

Elasticsearch

dockerrun-d--nameelasticsearch\

-p9200:9200-p9300:9300\

-e"discovery.type=single-node"\

docker.elastic.co/elasticsearch/elasticsearch:7.10.1

Fluentd

dockerrun-d--namefluentd\

-v/var/log:/var/log\

-v/etc/fluentd/conf.d:/etc/fluentd/conf.d\

docker.elastic.co/fluent/fluentd:0.14.3

Kibana

dockerrun-d--namekibana\

-p5601:5601\

-e"ELASTICSEARCH_HOSTS=http://elasticsearch:9200"\

docker.elastic.co/kibana/kibana:7.10.1

```

(2)配置Fluentd:創(chuàng)建`/etc/fluentd/conf.d/syslog.conf`

```xml

<sourcetype="syslog">

port5140

tagsyslog

</source>

<filtersyslog>

@typetail

path/var/log/messages

pos_file/var/log/fluentd/fluentd.pos

tagsyslog_file

<parse>

@typenone

</parse>

</filter>

<matchsyslog>

@typeelasticsearch

hostelasticsearch

port9200

logstash_formattrue

include_tag_keytrue

tagelasticsearch

<buffer>

@typefile

path/var/log/fluentd/buffer

chunk_limit_size2M

queue_limit_size1G

retry_limit_size0

flush_modeinterval

flush_interval5s

retry_typeon_error

retry_forevertrue

</buffer>

</match>

```

(3)Kibana使用:在Kibana界面創(chuàng)建索引模式`syslog-`,使用默認`fluentd`索引模板

十、最佳實踐

(一)監(jiān)控設計原則

1.層次化監(jiān)控

(1)核心層:CPU、內(nèi)存、磁盤等基礎資源

(2)應用層:HTTP狀態(tài)碼、響應時間、錯誤率

(3)業(yè)務層:訂單處理量、用戶活躍度等

2.報警分級

(1)嚴重:服務中斷、數(shù)據(jù)庫死鎖

(2)重要:資源使用率超過閾值、性能下降

(3)警告:配置變更、磁盤空間不足

3.可視化設計

(1)儀表盤布局:使用水平滾動而非垂直堆疊

(2)關鍵指標:將P95響應時間用紅色高亮顯示

(3)歷史趨勢:設置3個月滾動窗口展示變化趨勢

(二)資源優(yōu)化建議

1.磁盤管理

(1)文件系統(tǒng)選擇:生產(chǎn)環(huán)境推薦`xfs`或`ext4`

(2)掛載選項:對日志文件使用`noatime`減少I/O

(3)空間預警:設置`df-h|grep-vE'^Filesystem|tmpfs|cdrom'|awk'{print$5}'|whilereadoutput;do

usep=$(echo$output|tr-d'%');usep=${usep%%.}

if[$usep-ge85];then

echo"Runningoutofdiskspace:$output"

fi

done`定期檢查

2.內(nèi)存優(yōu)化

(1)緩存策略:為數(shù)據(jù)庫設置合適的`innodb_buffer_pool_size`

(2)內(nèi)存回收:使用`systemd`的`OOMscore`調(diào)整進程優(yōu)先級

(3)透明大頁:在`/sys/kernel/mm/transparent_hugepage/enabled`設置`always`、`madvise`或`never`

(三)文檔規(guī)范

1.監(jiān)控文檔模板

(1)系統(tǒng)信息:型號、序列號、部署日期

(2)資源配置:內(nèi)存大小、CPU核心數(shù)、磁盤規(guī)格

(3)監(jiān)控項清單:包含指標名稱、單位、告警閾值

2.變更管理

(1)閾值變更:在`monitoring-changes.xlsx`記錄所有閾值調(diào)整

(2)配置變更:使用Git管理監(jiān)控配置文件版本

(3)測試流程:每次變更后執(zhí)行`curlhttp://localhost:8080/health`驗證服務狀態(tài)

一、Linux系統(tǒng)監(jiān)控概述

Linux系統(tǒng)監(jiān)控是保障系統(tǒng)穩(wěn)定運行、優(yōu)化性能和資源管理的重要手段。通過實時收集、分析和展示系統(tǒng)狀態(tài)信息,管理員能夠及時發(fā)現(xiàn)并解決潛在問題,確保業(yè)務連續(xù)性。本細則旨在提供一套系統(tǒng)化、規(guī)范化的監(jiān)控方法,涵蓋關鍵性能指標、常用監(jiān)控工具及實施步驟。

二、核心監(jiān)控指標

(一)系統(tǒng)資源使用情況

1.CPU使用率

(1)實時監(jiān)控:使用`top`、`htop`等工具查看各核CPU占用情況

(2)告警閾值:建議設置長期閾值為85%,短期峰值閾值為95%

(3)異常表現(xiàn):持續(xù)高負載可能提示線程數(shù)過多或硬件瓶頸

2.內(nèi)存使用情況

(1)關鍵指標:總內(nèi)存、可用內(nèi)存、緩存、交換空間

(2)工具命令:`free-m`、`vmstat`可展示內(nèi)存分配細節(jié)

(3)異常診斷:內(nèi)存泄漏表現(xiàn)為持續(xù)增長的Swap使用率

3.磁盤I/O性能

(1)監(jiān)控項:讀寫速率、IOPS、延遲

(2)命令參考:`iostat-x1`每秒更新一次數(shù)據(jù)

(3)性能基準:SSD建議IOPS>50K,HDD>200

(二)網(wǎng)絡狀態(tài)監(jiān)控

1.接口流量

(1)基礎命令:`ifconfig`、`ipaddr`查看鏈路狀態(tài)

(2)流量分析:`nload`或`iftop`實時展示帶寬占用

(3)問題排查:流量突增需檢查DDoS攻擊或服務異常

2.網(wǎng)絡延遲與丟包

(1)測試工具:`ping`、`mtr`追蹤路由路徑

(2)正常范圍:延遲<20ms為良好,丟包率<0.1%為可接受

(3)環(huán)境影響:高延遲可能由路由跳數(shù)或中間設備引起

三、常用監(jiān)控工具

(一)系統(tǒng)自帶工具

1.基礎監(jiān)控

(1)`vmstat`:每間隔指定秒數(shù)輸出CPU、內(nèi)存、磁盤狀態(tài)

(2)`dmesg`:查看內(nèi)核日志,用于硬件故障排查

(3)`sar`:系統(tǒng)活動歷史記錄工具,需預先開啟采集

2.性能分析

(1)`iotop`:按進程展示磁盤占用情況

(2)`netstat`:分析網(wǎng)絡連接狀態(tài)和端口使用

(3)`pidstat`:監(jiān)控進程資源使用趨勢

(二)第三方專業(yè)工具

1.基礎版監(jiān)控套件

(1)`NagiosCore`:輕量級企業(yè)級監(jiān)控系統(tǒng)

(2)`Zabbix`:支持分布式架構,帶可視化界面

(3)`Prometheus+Grafana`:時序數(shù)據(jù)采集與展示組合

2.高級功能工具

(1)`Ganglia`:專為HPC環(huán)境設計的監(jiān)控平臺

(2)`Collectd`:模塊化數(shù)據(jù)收集器,可定制擴展

(3)`ELKStack`:日志聚合分析解決方案

四、實施監(jiān)控步驟

(一)準備工作

1.環(huán)境配置

(1)確認目標系統(tǒng)內(nèi)核版本>=2.6.32

(2)檢查磁盤空間:建議預留10%系統(tǒng)盤容量

(3)防火墻設置:開放監(jiān)控端口(默認9876/9090)

2.權限規(guī)劃

(1)監(jiān)控工具運行賬戶需sudo權限

(2)數(shù)據(jù)存儲目錄需屬主可寫

(3)告警通知賬戶需SMTP配置

(二)部署實施

1.基礎監(jiān)控部署

(1)安裝命令:`yuminstall-ysysstat`或`apt-getinstallsysstat`

(2)啟動服務:`systemctlstartsysstat`并設置開機自啟

(3)配置采集周期:編輯`/etc/sysconfig/sysstat`修改`SAinterval`

2.告警系統(tǒng)配置

(1)基礎告警:編輯`/etc/nagios/commands.conf`定義監(jiān)控命令

(2)觸發(fā)條件:設置CPU>90%持續(xù)5分鐘觸發(fā)告警

(3)通知方式:集成SMS網(wǎng)關或郵件服務器

(三)日常維護

1.數(shù)據(jù)清理

(1)定期歸檔:每周壓縮歷史采集數(shù)據(jù)至`/var/log/sa/saXX`

(2)清除周期:`sa-del`命令可刪除30天前數(shù)據(jù)

(3)磁盤占用:監(jiān)控工具自身不超過5%系統(tǒng)資源

2.視覺化配置

(1)Grafana接入:`http://host:3000`默認賬戶admin/admin

(2)儀表盤模板:導入Prometheus官方模板`linux-server`

(3)自動刷新:設置每5分鐘更新一次數(shù)據(jù)

五、性能優(yōu)化建議

(一)參數(shù)調(diào)優(yōu)

1.內(nèi)存優(yōu)化

(1)調(diào)整參數(shù):`vm.swappiness`值建議設為60

(2)緩存策略:`echo1>/sys/kernel/mm/transparent_hugepage/enabled`

(3)應用場景:Web服務器可設置`numa_balancing=0`

2.磁盤優(yōu)化

(1)I/O調(diào)度:`echodeadline>/sys/block/sda/queue/scheduler`

(2)雙緩沖:`echo3>/sys/block/sda/queue/rotational`

(3)順序讀寫:針對日志文件啟用`noatime`掛載選項

(二)資源隔離

1.容器化部署

(1)Docker建議:設置`--cpus`和`--memory`限制

(2)網(wǎng)絡隔離:使用自定義網(wǎng)橋而非bridge

(3)存儲優(yōu)化:推薦使用overlayFS而非bindmount

2.傳統(tǒng)方案

(1)SELinux:啟用強制訪問控制,建議permissive模式測試

(2)chroot環(huán)境:為特殊服務創(chuàng)建獨立運行空間

(3)cgroups:使用`cgcreate`創(chuàng)建自定義資源組

六、異常處理流程

(一)告警響應機制

1.初步排查

(1)收集信息:記錄告警時間、指標閾值、歷史趨勢

(2)快速驗證:執(zhí)行`top-H`檢查線程狀態(tài)

(3)自動恢復:對可自愈問題設置腳本自動重啟

2.人工干預

(1)嚴重等級:將告警分為綠/黃/紅三級處理優(yōu)先級

(2)處理周期:普通告警4小時內(nèi)響應,嚴重告警15分鐘內(nèi)

(3)記錄規(guī)范:在`/var/log/monitoring.log`記錄處理過程

(二)性能瓶頸診斷

1.系統(tǒng)診斷流程

(1)檢查磁盤:`df-h`確認可用空間

(2)查看負載:`uptime`結合`w`命令分析歷史峰值

(3)進程分析:`psauxf`查找僵尸進程

2.專用診斷工具

(1)`perftop`:分析熱點函數(shù)調(diào)用

(2)`strace`:追蹤進程系統(tǒng)調(diào)用

(3)`ftrace`:內(nèi)核事件跟蹤工具

七、安全注意事項

(一)數(shù)據(jù)采集安全

1.數(shù)據(jù)傳輸加密

(1)Nagios建議:使用SSL證書保護NRPE傳輸

(2)Zabbix配置:`StartTLS=true`參數(shù)啟用

(3)接口限制:僅允許指定IP訪問監(jiān)控端口

2.存儲安全

(1)訪問控制:監(jiān)控數(shù)據(jù)庫使用`REPL`模式隔離

(2)數(shù)據(jù)脫敏:對敏感指標使用`grep-v`過濾

(3)定期審計:每月檢查`/var/log/syslog`中的監(jiān)控操作

(二)系統(tǒng)加固

1.最小化原則

(1)服務禁用:卸載`rsyslog`替換為`journald`

(2)端口關閉:默認關閉139/445/SMB等協(xié)議

(3)腳本安全:監(jiān)控腳本使用`set-e`防止錯誤執(zhí)行

2.定期檢查

(1)漏洞掃描:每月執(zhí)行`nikto`基礎檢測

(2)配置校驗:使用`auditd`記錄關鍵文件修改

(3)更新策略:監(jiān)控工具組件按季度升級

七、安全注意事項(續(xù))

(一)數(shù)據(jù)采集安全(續(xù))

1.數(shù)據(jù)傳輸加密(續(xù))

(1)Nagios建議(續(xù)):除SSL證書外,可配置HTTPS代理`nginx`實現(xiàn)反向加密,需創(chuàng)建`/etc/ssl/certs/nagios.crt`文件并設置`ssl_certificate`和`ssl_certificate_key`參數(shù)

(2)Zabbix配置(續(xù)):在`zabbix.conf.php`中啟用`PhpSessionHandler=cookie`避免明文傳輸,同時配置`TLSAccept`為`yes`接受客戶端證書

(3)接口限制(續(xù)):使用`iptables`規(guī)則`-mconntrack--ctstateESTABLISHED-jACCEPT`僅允許已建立連接的監(jiān)控請求,`-mrecent--set`記錄源IP訪問日志

2.存儲安全(續(xù))

(1)訪問控制(續(xù)):對于Prometheus,配置`--storage.tsdb.path`目錄權限為`640`,創(chuàng)建`prometheus`用戶屬主,使用`--storage.tsdb.retention`限制數(shù)據(jù)保存7天

(2)數(shù)據(jù)脫敏(續(xù)):在ELKStack中,通過`logstash`添加`filter`插件處理敏感字段,如`grok`匹配并刪除信用卡號正則`(?i)\b(?:\d[-]?){13,16}\b`

(3)定期審計(續(xù)):使用`auditctl`監(jiān)控監(jiān)控工具目錄訪問,規(guī)則如`-w/var/lib/zabbix/-pwarx-kmonitor審計`,每周通過`ausearch`生成報告

(二)系統(tǒng)加固(續(xù))

1.最小化原則(續(xù))

(1)服務禁用(續(xù)):對于Docker宿主機,使用`yumgroupinstall"DevelopmentTools"`安裝編譯工具后立即`yumgroupremove"DevelopmentTools"`,禁用`cgroups`通過`sed-i'/cgroup/d'/boot/grub/grub.conf`

(2)端口關閉(續(xù)):使用`firewalld`默認區(qū)域`public`,執(zhí)行`firewall-cmd--permanent--remove-service=http`移除HTTP服務,設置自定義規(guī)則`-AINPUT-mconntrack--ctstateRELATED,ESTABLISHED-jACCEPT`

(3)腳本安全(續(xù)):所有監(jiān)控腳本添加`shebang`聲明,使用`trap"echo'Abnormalexitat$(date)'>&2;exit1"SIGINTSIGTERM`捕獲退出信號,禁止執(zhí)行權限通過`find/var/log-perm/4000-execchmodu-s{}\;`

2.定期檢查(續(xù))

(1)漏洞掃描(續(xù)):使用`OpenVAS`配置掃描任務,設置每周三凌晨執(zhí)行,掃描范圍限定為`/24`網(wǎng)段,報告存儲在`/var/lib/openvas/reporting/storage/`

(2)配置校驗(續(xù)):創(chuàng)建`/etc/monitoring-checks.sh`腳本,包含以下檢查:

```bash

檢查Nagios主配置文件

if!grep-q"cfg_file=/etc/nagios/nagios.cfg"/etc/nagios/nagios.cfg;then

echo"WARNING:Nagiosconfigfilemissingrequireddirective"

fi

檢查Prometheus存儲目錄權限

if["$(stat-c"%a"/var/lib/prometheus)"!="700"];then

echo"ERROR:Prometheusstoragedirectorypermissionsincorrect"

fi

```

(3)更新策略(續(xù)):創(chuàng)建`/etc/cron.daily/prometheus-update`,內(nèi)容為:

```bash

!/bin/bash

cd/tmp||exit1

curl-shttps://prometheus.io/download/prometheus-2.35.0.linux-amd64.tar.gz|tarxz

systemctlstopprometheus

mv/usr/local/prometheus/usr/local/prometheus.bak

mv/tmp/prometheus-2.35.0.linux-amd64/prometheus/usr/local/

systemctlstartprometheus

rm-rf/tmp/prometheus-2.35.0.linux-amd64

```

八、自動化運維集成

(一)Ansible集成方案

1.基礎部署

(1)安裝Ansible:`pipinstallansible`或通過`yuminstallepel-release`后`yuminstallansible`

(2)配置控制節(jié)點:編輯`/etc/ansible/hosts`添加`[monitors]`組

(3)密鑰生成:`ssh-keygen-trsa-f~/.ssh/ansible`后分發(fā)到被管理節(jié)點`ssh-copy-id-i~/.ssh/ansible.pubnode1`

2.監(jiān)控模塊開發(fā)

(1)基礎模板:創(chuàng)建`site.yml`包含以下內(nèi)容:

```yaml

-name:DeployZabbixagent

hosts:monitors

become:yes

tasks:

-name:InstallZabbixagent

yum:

name:zabbix-agent

state:present

-name:Enableandstartservice

service:

name:zabbix-agent

state:started

enabled:yes

-name:ConfigureGrafana

hosts:monitors

become:yes

tasks:

-name:CopyGrafanaconfig

copy:

src:/etc/grafana/grafana.ini.j2

dest:/etc/grafana/grafana.ini

notify:RestartGrafana

handlers:

-name:RestartGrafana

service:

name:grafana

state:restarted

```

(2)動態(tài)庫存:使用`inventory.ini`存儲IP和自定義變量

```ini

[monitors]

01ansible_user=rootansible_ssh_private_key_file=/root/.ssh/id_rsa

02ansible_user=rootansible_ssh_private_key_file=/root/.ssh/id_rsa

```

(二)Jenkins集成方案

1.基礎配置

(1)安裝Jenkins:`yuminstalljava-1.8.0-openjdk`后`amazon-linux-extrasinstalljenkins-y`

(2)初始密碼:`sudocat/var/lib/jenkins/secrets/initialAdminPassword`

(3)插件安裝:安裝"Pipeline","Git","Ansible"插件

2.自動化流程

(1)Jenkinsfile示例:

```groovy

pipeline{

agentany

stages{

stage('MonitorUpdate'){

steps{

script{

defversion=sh(

script:'curl-s/repos/prometheus/prometheus/tags|grepname|head-1|cut-d\"-f4',

returnStdout:true

).trim()

sh"yuminstall-ygit"

sh"gitclone/prometheus/prometheus.git--branch${version}"

sh"cp-rfprometheus/usr/local/"

}

}

}

stage('RestartService'){

steps{

ansiblePlaybook:

playbook:'site.yml'

colorized:true

tags:['restart']

}

}

}

}

```

(三)CI/CD集成要點

1.觸發(fā)策略

(1)持續(xù)集成:配置GitLabCI的`docker-compose.yml`包含監(jiān)控組件

(2)手動觸發(fā):通過JenkinsDashboard中的"BuildNow"按鈕

(3)自動觸發(fā):設置GitLab的Webhook在push時觸發(fā)`monitoring.yml`

2.環(huán)境隔離

(1)容器化部署:使用`docker-compose.yml`定義監(jiān)控服務

```yaml

version:'3.7'

services:

prometheus:

image:prom/prometheus

volumes:

-./prometheus.yml:/etc/prometheus/prometheus.yml

-prometheus_data:/prometheus

volumes:

prometheus_data:

```

(2)資源限制:為每個服務設置`deploy.resources.limits`和`deploy.resources.reservations`

(3)網(wǎng)絡配置:使用自定義網(wǎng)絡`dockernetworkcreatemonitoring_net`

九、高級監(jiān)控技術

(一)分布式追蹤

1.Jaeger部署

(1)安裝步驟:

```bash

安裝Go環(huán)境

yuminstall-ygolang

下載并啟動Jaeger

curl-Lhttps://jaegertracing.io/downloads/jaeger-all-1.34.0-linux-amd64.tar.gz|tarxz

cpjaeger-all-1.34.0-linux-amd64/jaeger-all/usr/local/

/usr/local/jaeger-all/bin/jaeger-allstart

```

(2)集成配置:在Go微服務中添加`jaeger-client-go`庫

```go

import(

"/opentracing/opentracing-go"

"/opentracing/opentracing-go/log"

)

funcmain(){

tracer,closer:=jaeger.NewTracer(

jaeger.WithCollectorEndpoint("http://localhost:14250/api/traces"),

jaeger.SetSampler(jaeger.NewConstSampler(jaeger.DecimalSamplingRate(1))))

defercloser.Close()

spans:=make([]opentracing.Span,0)

deferfunc(){

opentracing.SetGlobalTracer(tracer)

for_,span:=rangespans{

span.Finish()

}

}()

//創(chuàng)建Span

opentracing.SetGlobalTracer(tracer)

span:=tracer.StartSpan("example-service")

deferspan.Finish()

span.LogFields(log.String("user","admin"))

}

```

(二)鏈路追蹤

1.SkyWalking部署

(1)環(huán)境要求:準備3臺服務器作為Agent節(jié)點、Collector節(jié)點和UI節(jié)點

(2)安裝流程:

```bash

Agent安裝

curl-L/apache/skywalking/releases/download/skywalking-bundle-8.9.0/skywalking-agent-8.9.0-linux-amd64.tar.gz|tarxz

Collector安裝

curl-L/apache/skywalking/releases/download/skywalking-bundle-8.9.0/skywalking-collector-8.9.0-linux-amd64.tar.gz|tarxz

UI安裝

curl-L/apache/skywalking/releases/download/skywalking-bundle-8.9.0/skywalking-ui-8.9.0-linux-amd64.tar.gz|tarxz

```

(3)配置要點:在SkyWalkingAgent配置中設置`collector_host`為Collector節(jié)點IP

(4)服務注冊:在服務啟動腳本中添加`-javaagent:/path/to/skywalking-agent.jar`參數(shù)

(三)日志聚合分析

1.EFK部署方案

(1)安裝步驟:

```bash

Elasticsearch

dockerrun-d--nameelasticsearch\

-p9200:9200-p9300:9300\

-e"discovery.type=single-node"\

docker.elastic.co/elasticsearch/elasticsearch:7.10.1

Fluentd

dockerrun-d--namefluentd\

-v/var/log:/var/log\

-v/etc/fluentd/conf.d:/etc/fluentd/conf.d\

docker.elastic.co/fluent/fluentd:0.14.3

Kibana

dockerrun-d--namekibana\

-p5601:5601\

-e"ELASTICSEARCH_HOSTS=http://elasticsearch:9200"\

docker.elastic.co/kibana/kibana:7.10.1

```

(2)配置Fluentd:創(chuàng)建`/etc/fluentd/conf.d/syslog.conf`

```xml

<sourcetype="syslog">

port5140

tagsyslog

</source>

<filtersyslog>

@typetail

path/var/log/messages

pos_file/var/log/fluentd/fluentd.pos

tagsyslog_file

<parse>

@typenone

</parse>

</filter>

<matchsyslog>

@typeelasticsearch

hostelasticsearch

port9200

logstash_formattrue

include_tag_keytrue

tagelasticsearch

<buffer>

@typefile

path/var/log/fluentd/buffer

chunk_limit_size2M

queue_limit_size1G

retry_limit_size0

flush_modeinterval

flush_interval5s

retry_typeon_error

retry_forevertrue

</buffer>

</match>

```

(3)Kibana使用:在Kibana界面創(chuàng)建索引模式`syslog-`,使用默認`fluentd`索引模板

十、最佳實踐

(一)監(jiān)控設計原則

1.層次化監(jiān)控

(1)核心層:CPU、內(nèi)存、磁盤等基礎資源

(2)應用層:HTTP狀態(tài)碼、響應時間、錯誤率

(3)業(yè)務層:訂單處理量、用戶活躍度等

2.報警分級

(1)嚴重:服務中斷、數(shù)據(jù)庫死鎖

(2)重要:資源使用率超過閾值、性能下降

(3)警告:配置變更、磁盤空間不足

3.可視化設計

(1)儀表盤布局:使用水平滾動而非垂直堆疊

(2)關鍵指標:將P95響應時間用紅色高亮顯示

(3)歷史趨勢:設置3個月滾動窗口展示變化趨勢

(二)資源優(yōu)化建議

1.磁盤管理

(1)文件系統(tǒng)選擇:生產(chǎn)環(huán)境推薦`xfs`或`ext4`

(2)掛載選項:對日志文件使用`noatime`減少I/O

(3)空間預警:設置`df-h|grep-vE'^Filesystem|tmpfs|cdrom'|awk'{print$5}'|whilereadoutput;do

usep=$(echo$output|tr-d'%');usep=${usep%%.}

if[$usep-ge85];then

echo"Runningoutofdiskspace:$output"

fi

done`定期檢查

2.內(nèi)存優(yōu)化

(1)緩存策略:為數(shù)據(jù)庫設置合適的`innodb_buffer_pool_size`

(2)內(nèi)存回收:使用`systemd`的`OOMscore`調(diào)整進程優(yōu)先級

(3)透明大頁:在`/sys/kernel/mm/transparent_hugepage/enabled`設置`always`、`madvise`或`never`

(三)文檔規(guī)范

1.監(jiān)控文檔模板

(1)系統(tǒng)信息:型號、序列號、部署日期

(2)資源配置:內(nèi)存大小、CPU核心數(shù)、磁盤規(guī)格

(3)監(jiān)控項清單:包含指標名稱、單位、告警閾值

2.變更管理

(1)閾值變更:在`monitoring-changes.xlsx`記錄所有閾值調(diào)整

(2)配置變更:使用Git管理監(jiān)控配置文件版本

(3)測試流程:每次變更后執(zhí)行`curlhttp://localhost:8080/health`驗證服務狀態(tài)

一、Linux系統(tǒng)監(jiān)控概述

Linux系統(tǒng)監(jiān)控是保障系統(tǒng)穩(wěn)定運行、優(yōu)化性能和資源管理的重要手段。通過實時收集、分析和展示系統(tǒng)狀態(tài)信息,管理員能夠及時發(fā)現(xiàn)并解決潛在問題,確保業(yè)務連續(xù)性。本細則旨在提供一套系統(tǒng)化、規(guī)范化的監(jiān)控方法,涵蓋關鍵性能指標、常用監(jiān)控工具及實施步驟。

二、核心監(jiān)控指標

(一)系統(tǒng)資源使用情況

1.CPU使用率

(1)實時監(jiān)控:使用`top`、`htop`等工具查看各核CPU占用情況

(2)告警閾值:建議設置長期閾值為85%,短期峰值閾值為95%

(3)異常表現(xiàn):持續(xù)高負載可能提示線程數(shù)過多或硬件瓶頸

2.內(nèi)存使用情況

(1)關鍵指標:總內(nèi)存、可用內(nèi)存、緩存、交換空間

(2)工具命令:`free-m`、`vmstat`可展示內(nèi)存分配細節(jié)

(3)異常診斷:內(nèi)存泄漏表現(xiàn)為持續(xù)增長的Swap使用率

3.磁盤I/O性能

(1)監(jiān)控項:讀寫速率、IOPS、延遲

(2)命令參考:`iostat-x1`每秒更新一次數(shù)據(jù)

(3)性能基準:SSD建議IOPS>50K,HDD>200

(二)網(wǎng)絡狀態(tài)監(jiān)控

1.接口流量

(1)基礎命令:`ifconfig`、`ipaddr`查看鏈路狀態(tài)

(2)流量分析:`nload`或`iftop`實時展示帶寬占用

(3)問題排查:流量突增需檢查DDoS攻擊或服務異常

2.網(wǎng)絡延遲與丟包

(1)測試工具:`ping`、`mtr`追蹤路由路徑

(2)正常范圍:延遲<20ms為良好,丟包率<0.1%為可接受

(3)環(huán)境影響:高延遲可能由路由跳數(shù)或中間設備引起

三、常用監(jiān)控工具

(一)系統(tǒng)自帶工具

1.基礎監(jiān)控

(1)`vmstat`:每間隔指定秒數(shù)輸出CPU、內(nèi)存、磁盤狀態(tài)

(2)`dmesg`:查看內(nèi)核日志,用于硬件故障排查

(3)`sar`:系統(tǒng)活動歷史記錄工具,需預先開啟采集

2.性能分析

(1)`iotop`:按進程展示磁盤占用情況

(2)`netstat`:分析網(wǎng)絡連接狀態(tài)和端口使用

(3)`pidstat`:監(jiān)控進程資源使用趨勢

(二)第三方專業(yè)工具

1.基礎版監(jiān)控套件

(1)`NagiosCore`:輕量級企業(yè)級監(jiān)控系統(tǒng)

(2)`Zabbix`:支持分布式架構,帶可視化界面

(3)`Prometheus+Grafana`:時序數(shù)據(jù)采集與展示組合

2.高級功能工具

(1)`Ganglia`:專為HPC環(huán)境設計的監(jiān)控平臺

(2)`Collectd`:模塊化數(shù)據(jù)收集器,可定制擴展

(3)`ELKStack`:日志聚合分析解決方案

四、實施監(jiān)控步驟

(一)準備工作

1.環(huán)境配置

(1)確認目標系統(tǒng)內(nèi)核版本>=2.6.32

(2)檢查磁盤空間:建議預留10%系統(tǒng)盤容量

(3)防火墻設置:開放監(jiān)控端口(默認9876/9090)

2.權限規(guī)劃

(1)監(jiān)控工具運行賬戶需sudo權限

(2)數(shù)據(jù)存儲目錄需屬主可寫

(3)告警通知賬戶需SMTP配置

(二)部署實施

1.基礎監(jiān)控部署

(1)安裝命令:`yuminstall-ysysstat`或`apt-getinstallsysstat`

(2)啟動服務:`systemctlstartsysstat`并設置開機自啟

(3)配置采集周期:編輯`/etc/sysconfig/sysstat`修改`SAinterval`

2.告警系統(tǒng)配置

(1)基礎告警:編輯`/etc/nagios/commands.conf`定義監(jiān)控命令

(2)觸發(fā)條件:設置CPU>90%持續(xù)5分鐘觸發(fā)告警

(3)通知方式:集成SMS網(wǎng)關或郵件服務器

(三)日常維護

1.數(shù)據(jù)清理

(1)定期歸檔:每周壓縮歷史采集數(shù)據(jù)至`/var/log/sa/saXX`

(2)清除周期:`sa-del`命令可刪除30天前數(shù)據(jù)

(3)磁盤占用:監(jiān)控工具自身不超過5%系統(tǒng)資源

2.視覺化配置

(1)Grafana接入:`http://host:3000`默認賬戶admin/admin

(2)儀表盤模板:導入Prometheus官方模板`linux-server`

(3)自動刷新:設置每5分鐘更新一次數(shù)據(jù)

五、性能優(yōu)化建議

(一)參數(shù)調(diào)優(yōu)

1.內(nèi)存優(yōu)化

(1)調(diào)整參數(shù):`vm.swappiness`值建議設為60

(2)緩存策略:`echo1>/sys/kernel/mm/transparent_hugepage/enabled`

(3)應用場景:Web服務器可設置`numa_balancing=0`

2.磁盤優(yōu)化

(1)I/O調(diào)度:`echodeadline>/sys/block/sda/queue/scheduler`

(2)雙緩沖:`echo3>/sys/block/sda/queue/rotational`

(3)順序讀寫:針對日志文件啟用`noatime`掛載選項

(二)資源隔離

1.容器化部署

(1)Docker建議:設置`--cpus`和`--memory`限制

(2)網(wǎng)絡隔離:使用自定義網(wǎng)橋而非bridge

(3)存儲優(yōu)化:推薦使用overlayFS而非bindmount

2.傳統(tǒng)方案

(1)SELinux:啟用強制訪問控制,建議permissive模式測試

(2)chroot環(huán)境:為特殊服務創(chuàng)建獨立運行空間

(3)cgroups:使用`cgcreate`創(chuàng)建自定義資源組

六、異常處理流程

(一)告警響應機制

1.初步排查

(1)收集信息:記錄告警時間、指標閾值、歷史趨勢

(2)快速驗證:執(zhí)行`top-H`檢查線程狀態(tài)

(3)自動恢復:對可自愈問題設置腳本自動重啟

2.人工干預

(1)嚴重等級:將告警分為綠/黃/紅三級處理優(yōu)先級

(2)處理周期:普通告警4小時內(nèi)響應,嚴重告警15分鐘內(nèi)

(3)記錄規(guī)范:在`/var/log/monitoring.log`記錄處理過程

(二)性能瓶頸診斷

1.系統(tǒng)診斷流程

(1)檢查磁盤:`df-h`確認可用空間

(2)查看負載:`uptime`結合`w`命令分析歷史峰值

(3)進程分析:`psauxf`查找僵尸進程

2.專用診斷工具

(1)`perftop`:分析熱點函數(shù)調(diào)用

(2)`strace`:追蹤進程系統(tǒng)調(diào)用

(3)`ftrace`:內(nèi)核事件跟蹤工具

七、安全注意事項

(一)數(shù)據(jù)采集安全

1.數(shù)據(jù)傳輸加密

(1)Nagios建議:使用SSL證書保護NRPE傳輸

(2)Zabbix配置:`StartTLS=true`參數(shù)啟用

(3)接口限制:僅允許指定IP訪問監(jiān)控端口

2.存儲安全

(1)訪問控制:監(jiān)控數(shù)據(jù)庫使用`REPL`模式隔離

(2)數(shù)據(jù)脫敏:對敏感指標使用`grep-v`過濾

(3)定期審計:每月檢查`/var/log/syslog`中的監(jiān)控操作

(二)系統(tǒng)加固

1.最小化原則

(1)服務禁用:卸載`rsyslog`替換為`journald`

(2)端口關閉:默認關閉139/445/SMB等協(xié)議

(3)腳本安全:監(jiān)控腳本使用`set-e`防止錯誤執(zhí)行

2.定期檢查

(1)漏洞掃描:每月執(zhí)行`nikto`基礎檢測

(2)配置校驗:使用`auditd`記錄關鍵文件修改

(3)更新策略:監(jiān)控工具組件按季度升級

七、安全注意事項(續(xù))

(一)數(shù)據(jù)采集安全(續(xù))

1.數(shù)據(jù)傳輸加密(續(xù))

(1)Nagios建議(續(xù)):除SSL證書外,可配置HTTPS代理`nginx`實現(xiàn)反向加密,需創(chuàng)建`/etc/ssl/certs/nagios.crt`文件并設置`ssl_certificate`和`ssl_certificate_key`參數(shù)

(2)Zabbix配置(續(xù)):在`zabbix.conf.php`中啟用`PhpSessionHandler=cookie`避免明文傳輸,同時配置`TLSAccept`為`yes`接受客戶端證書

(3)接口限制(續(xù)):使用`iptables`規(guī)則`-mconntrack--ctstateESTABLISHED-jACCEPT`僅允許已建立連接的監(jiān)控請求,`-mrecent--set`記錄源IP訪問日志

2.存儲安全(續(xù))

(1)訪問控制(續(xù)):對于Prometheus,配置`--storage.tsdb.path`目錄權限為`640`,創(chuàng)建`prometheus`用戶屬主,使用`--storage.tsdb.retention`限制數(shù)據(jù)保存7天

(2)數(shù)據(jù)脫敏(續(xù)):在ELKStack中,通過`logstash`添加`filter`插件處理敏感字段,如`grok`匹配并刪除信用卡號正則`(?i)\b(?:\d[-]?){13,16}\b`

(3)定期審計(續(xù)):使用`auditctl`監(jiān)控監(jiān)控工具目錄訪問,規(guī)則如`-w/var/lib/zabbix/-pwarx-kmonitor審計`,每周通過`ausearch`生成報告

(二)系統(tǒng)加固(續(xù))

1.最小化原則(續(xù))

(1)服務禁用(續(xù)):對于Docker宿主機,使用`yumgroupinstall"DevelopmentTools"`安裝編譯工具后立即`yumgroupremove"DevelopmentTools"`,禁用`cgroups`通過`sed-i'/cgroup/d'/boot/grub/grub.conf`

(2)端口關閉(續(xù)):使用`firewalld`默認區(qū)域`public`,執(zhí)行`firewall-cmd--permanent--remove-service=http`移除HTTP服務,設置自定義規(guī)則`-AINPUT-mconntrack--ctstateRELATED,ESTABLISHED-jACCEPT`

(3)腳本安全(續(xù)):所有監(jiān)控腳本添加`shebang`聲明,使用`trap"echo'Abnormalexitat$(date)'>&2;exit1"SIGINTSIGTERM`捕獲退出信號,禁止執(zhí)行權限通過`find/var/log-perm/4000-execchmodu-s{}\;`

2.定期檢查(續(xù))

(1)漏洞掃描(續(xù)):使用`OpenVAS`配置掃描任務,設置每周三凌晨執(zhí)行,掃描范圍限定為`/24`網(wǎng)段,報告存儲在`/var/lib/openvas/reporting/storage/`

(2)配置校驗(續(xù)):創(chuàng)建`/etc/monitoring-checks.sh`腳本,包含以下檢查:

```bash

檢查Nagios主配置文件

if!grep-q"cfg_file=/etc/nagios/nagios.cfg"/etc/nagios/nagios.cfg;then

echo"WARNING:Nagiosconfigfilemissingrequireddirective"

fi

檢查Prometheus存儲目錄權限

if["$(stat-c"%a"/var/lib/prometheus)"!="700"];then

echo"ERROR:Prometheusstoragedirectorypermissionsincorrect"

fi

```

(3)更新策略(續(xù)):創(chuàng)建`/etc/cron.daily/prometheus-update`,內(nèi)容為:

```bash

!/bin/bash

cd/tmp||exit1

curl-shttps://prometheus.io/download/prometheus-2.35.0.linux-amd64.ta

溫馨提示

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

評論

0/150

提交評論