使用ELK實時分析SSH暴力破解 : https://blog.csdn.net/qq_40907977/article/details/112175034
正則不錯:
grok正則:
.*sshd\[\d+\]: %{WORD:status} .* %{USER:username} from.*%{IP:clientip}.*
日志樣例:
Mar 1 15:01:26 flexcc-1531 sshd[21794]: Failed password for root from 10.69.10.156 port 60122 ssh2
# 過濾後
{
"clientip": "10.69.10.156",
"status": "Failed",
"username": "root"
}
# alertmanager 配置檔案詳解 -- 暫時沒心情搞 alertmanager 報警
global:
smtp_smarthost: 'localhost:25'
smtp_from: '[email protected]' #用于郵件通知的P發件人
route: #每個輸入警報進入根路由
receiver: 'team-X-mails' #根路由不得包含任何比對項,因為它是所有警報的入口點
group_by: ['alertname', 'cluster'] #将傳入警報分組的标簽。例如,将有個針對cluster = A和alertname = LatencyHigh的警報進入批處理成一個組
group_wait: 30s #當傳入的警報建立了一組新的警報時,請至少等待多少秒發送初始通知
group_interval: 5m #發送第一個通知時,請等待多少分鐘發送一批已開始為該組觸發的新警報
repeat_interval: 3h #如果警報已成功發送,請等待多少小時以重新發送警報
routes: #子路由,父路由的所有屬性都會被子路由繼承
- match_re: #此路由在警報标簽上執行正規表達式比對,以捕獲與服務清單相關的警報
service: ^(foo1|foo2|baz)$
receiver: team-X-mails
routes: #服務有嚴重警報,任何警報子路徑不比對,即通過父路由配置直接發送給收件人
- match:
severity: critical
receiver: team-X-pager
routes: #此路由處理來自資料庫服務的所有警報
- match:
severity: critical
receiver: team-Y-pager
- match:
service: database
receiver: team-DB-pager #還可以按受影響的資料庫對警報進行分組
group_by: [alertname, cluster, database]
routes:
- match:
owner: team-X
receiver: team-X-pager
#如果另一個警報正在觸發,則禁止規則允許将一組警報靜音,如果同一警報已經嚴重,我們将使用此選項禁用任何警告級别的通知
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname']
#如果警報名稱相同,則應用抑制,如果源警報和目标警報中均缺少“equal”中列出的所有标簽名稱,則将應用禁止規則!
receivers:
- name: 'team-X-mails'
email_configs:
- to: '[email protected], [email protected]'
- name: 'team-X-pager'
email_configs:
- to: 'team-X+alerts-crit[email protected]'
pagerduty_configs:
- routing_key: <team-X-key>
es日志告警插件 python3開發- ElastAlert :
安裝:https://www.cnblogs.com/sanduzxcvbnm/p/13139809.html
用法:https://www.cnblogs.com/sanduzxcvbnm/p/13625261.html
Prometheus告警插件 - alertmanager : https://www.cnblogs.com/xiao987334176/p/13203164.html?utm_source=tuicool