国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Filebeat 自動(dòng)安裝部署&一鍵配置實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了Filebeat 自動(dòng)安裝部署&一鍵配置實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Filebeat簡(jiǎn)介

Filebeat 是使用 Golang 實(shí)現(xiàn)的輕量型日志采集器,也是 Elasticsearch stack 里面的一員。

Filebeat本質(zhì)上是一個(gè) agent ,可以安裝在各個(gè)節(jié)點(diǎn)上,根據(jù)配置讀取對(duì)應(yīng)位置的日志,并上報(bào)到相應(yīng)的日志管理平臺(tái)上去

前言

平時(shí)接到將某一服務(wù)的日志接入到日志管理平臺(tái)的需求

通常的做法都是:

  • 在目標(biāo)主機(jī)(即需要將日志接入到管理平臺(tái)的服務(wù)器)上手動(dòng)下載 filebeat 壓縮包
  • 將壓縮包上傳到目標(biāo)主機(jī)
  • 解壓縮
  • 執(zhí)行安裝腳本

這個(gè)過(guò)程不但需要人工操作,還比較耗時(shí)

如果目標(biāo)主機(jī)后期有其他服務(wù)需要接入日志管理平臺(tái),還得手動(dòng)修改配置文件

這個(gè)過(guò)程會(huì)有配置字段寫(xiě)錯(cuò)或者格式錯(cuò)誤的風(fēng)險(xiǎn)

于是我打算寫(xiě)一個(gè)自動(dòng)部署腳本

結(jié)合自動(dòng)化運(yùn)維工具——saltstack

以此來(lái)實(shí)現(xiàn)首次安裝 filebeat 以及后續(xù)新增配置字段的自動(dòng)化

首先在 salt-master 的家目錄(一般是 /home/salt)創(chuàng)建一個(gè) filebeat 目錄,用來(lái)存放部署腳本以及配置文件模板

mkdir /home/salt/filebeat

Filebeat 自動(dòng)安裝部署&一鍵配置實(shí)現(xiàn)

  • append.sh:如果后面有新增服務(wù)需要接入日志,且目標(biāo)主機(jī)已經(jīng)安裝filebeat,此腳本可以將新的配置字段寫(xiě)進(jìn)配置文件里(需要下發(fā)給minio)
  • filebeat-7.1.1-linux-x86_64.tar.gz:filebeat安裝包(需要下發(fā)給minio)
  • filebeat.yml:配置文件模板(需要下發(fā)給minio)
  • install.sls:部署腳本;里面有兩個(gè)邏輯:1、首次安裝;2、后續(xù)新增配置字段

完整腳本如下:

{% set PACKAGE = 'filebeat-7.1.1-linux-x86_64' %}
{% set SERVICE_NAME = 'nginx' %}
{% set LOG_PATH = '/var/log/nginx/access.log' %}
{% set NEW_SERVICE_NAME = 'keepalived' %}
{% set NEW_LOG_PATH = '/var/log/keepalived.log' %}


filebeat_source:
  file.managed:
    - name: /tmp/{{PACKAGE}}.tar.gz
    - source: salt://filebeat/{{PACKAGE}}.tar.gz
    - onlyif:
      - cmd: rpm -qi filebeat && exit 127

filebeat_extract:
  cmd.run:
    - cwd: /tmp
    - names:
      - tar zxf {{PACKAGE}}.tar.gz
    - require:
      - file: filebeat_source
    - unless:
      - test -d /tmp/{{PACKAGE}}
      
filebeat_install:
  cmd.run:
    - cwd: /tmp/{{PACKAGE}}
    - names: 
      - /bin/bash install.sh
    - require:
      - cmd: filebeat_extract
    - unless:
      - test -d /etc/filebeat
      
copy_yml:
  cmd.run:
    - cwd: /etc/filebeat
    - names: 
      - mv filebeat.yml filebeat.yml.bak
    - require:
      - cmd: filebeat_install
    - unless:
      - test -e /etc/filebeat/filebeat.yml.bak
      
filebeat_yml:
  file.managed:
    - name: /etc/filebeat/filebeat.yml
    - source: salt://filebeat/filebeat.yml
    - require:
      - cmd: copy_yml
    - template: jinja
    - defaults:
      server_name: {{ SERVICE_NAME }}
      log_path: {{ LOG_PATH }} 
    - unless:
      - test -e /etc/filebeat/filebeat.yml

filebeat_start:
  cmd.run:
    - name: systemctl start filebeat
    - require:
      - file: filebeat_yml
    - unless:
      - systemctl status filebeat
       
script_source:
  file.managed:
    - name: /etc/filebeat/append.sh
    - source: salt://filebeat/append.sh
    - onlyif:
      - cmd: rpm -qi filebeat
    - unless:
      - test -e /etc/filebeat/append.sh
      
yml_append:
  cmd.run:
    - cwd: /etc/filebeat
    - names:
      - /bin/bash append.sh {{NEW_SERVICE_NAME}} {{NEW_LOG_PATH}}
    - require:
      - file: script_source

filebeat_restart:
  cmd.run:
    - name: systemctl restart filebeat
    - require:
      - cmd: yml_append

我們分別來(lái)看一下

腳本實(shí)現(xiàn)

append.sh

append.sh

我們先來(lái)看一下append.sh

append.sh腳本實(shí)現(xiàn)的功能就是判斷新增的服務(wù)在配置文件里面是否存在,如果不存在的話就添加到配置文件里去,如果存在則不做任何操作

首先對(duì)傳進(jìn)來(lái)的第一個(gè)參數(shù)——新增的服務(wù)標(biāo)識(shí)進(jìn)行 grep 過(guò)濾,來(lái)看一下當(dāng)前配置文件里面是否有要新增的字段

$?表示執(zhí)行g(shù)rep $1 filebeat.yml返回的狀態(tài)碼,如果返回0則表示字段存在,返回非0表示字段不存在

grep $1 filebeat.yml

接著是一個(gè)條件判斷:

1、如果配置文件里沒(méi)有該服務(wù)標(biāo)識(shí)(代表是新增的,狀態(tài)碼返回0),則使用 sed 將內(nèi)容寫(xiě)入配置文件里面

( $1表示傳入shell腳本的第一個(gè)參數(shù)——服務(wù)標(biāo)識(shí),$2表示傳入shell腳本的第一個(gè)參數(shù)——服務(wù)對(duì)應(yīng)的完整日志路徑)

2、如果配置文件里有該服務(wù)標(biāo)識(shí)(代表是以前就有的,狀態(tài)碼返回非0),則輸出提示語(yǔ)

#!/bin/bash
grep $1 filebeat.yml
if [ $? -eq 0 ]
then
echo "service is alreadty exist!"
else
sed -i '/filebeat.inputs:/a\
- type: log\
  enabled: true\
  encoding: utf-8\
  tail_files: false\
  paths:\
    - '${2}'\
  fields:\
    log_topic: '${1}'\

' filebeat.yml
fi

install.sls

install.sls里面有兩個(gè)功能邏輯:首次安裝部署和后續(xù)新增配置

1、首次部署filebeat并修改filebeat配置文件,將需要監(jiān)控的服務(wù)配置字段添加進(jìn)去

2、后續(xù)有新增服務(wù)需要接入日志,則將服務(wù)標(biāo)識(shí)和對(duì)應(yīng)日志路徑添加到filebeat配置文件里

腳本開(kāi)頭定義了五個(gè)變量,方便我們后續(xù)維護(hù)

{% set PACKAGE = 'filebeat-7.1.1-linux-x86_64' %}
{% set SERVICE_NAME = 'nginx' %}
{% set LOG_PATH = '/var/log/nginx/access.log' %}
{% set NEW_SERVICE_NAME = 'keepalived' %}
{% set NEW_LOG_PATH = '/var/log/keepalived.log' %}

首次安裝:

  • PACKAGE:filebeat安裝包
  • SERVICE_NAME:服務(wù)標(biāo)識(shí)
  • LOG_PATH:服務(wù)對(duì)應(yīng)日志

后續(xù)新增:

  • NEW_SERVICE_NAME:新增的服務(wù)標(biāo)識(shí)
  • NEW_LOG_PATH:新增的服務(wù)對(duì)應(yīng)日志

在腳本開(kāi)始執(zhí)行之前,會(huì)對(duì)目標(biāo)主機(jī)做一個(gè)判斷,判斷是否已經(jīng)安裝了filebeat,如果已經(jīng)安裝了則不走首次安裝的邏輯,走后續(xù)新增的邏輯

如果沒(méi)有安裝則走首次安裝的邏輯

如果目標(biāo)主機(jī)已經(jīng)安裝了filebeat但不需要新增服務(wù)接入日志,但是還是走了一遍后續(xù)新增的邏輯,這是不影響的,因?yàn)樵赼ppend.sh里面會(huì)有一個(gè)判斷

執(zhí)行首次安裝部署邏輯

filebeat_source:
  file.managed:
    - name: /tmp/{{PACKAGE}}.tar.gz
    - source: salt://filebeat/{{PACKAGE}}.tar.gz
    - onlyif:
      - cmd: rpm -qi filebeat && exit 127

PS:注意這里

 - onlyif:
      - cmd: rpm -qi filebeat && exit 127

這段字段邏輯是在目標(biāo)主機(jī)執(zhí)行rpm -qi filebeat語(yǔ)句,檢查是否已經(jīng)安裝過(guò)filebeat,如果沒(méi)有安裝則返回一個(gè)非0的狀態(tài)碼(這里我設(shè)成返回127)

然后onlyif字段是指返回非0就執(zhí)行filebeat_source:對(duì)應(yīng)的內(nèi)容,返回0就不執(zhí)行

又因?yàn)橄旅娴恼Z(yǔ)句是依賴于filebeat_source的,所以如果目標(biāo)主機(jī)安裝了filebeat,就不會(huì)執(zhí)行filebeat_source語(yǔ)句,也不會(huì)執(zhí)行后面所依賴的語(yǔ)句

完整腳本如下:

filebeat_source:
  file.managed:
    - name: /tmp/{{PACKAGE}}.tar.gz
    - source: salt://filebeat/{{PACKAGE}}.tar.gz
    - onlyif:
      - cmd: rpm -qi filebeat && exit 127

filebeat_extract:
  cmd.run:
    - cwd: /tmp
    - names:
      - tar zxf {{PACKAGE}}.tar.gz
    - require:
      - file: filebeat_source
    - unless:
      - test -d /tmp/{{PACKAGE}}

filebeat_install:
  cmd.run:
    - cwd: /tmp/{{PACKAGE}}
    - names: 
      - /bin/bash install.sh
    - require:
      - cmd: filebeat_extract
    - unless:
      - test -d /etc/filebeat

copy_yml:
  cmd.run:
    - cwd: /etc/filebeat
    - names: 
      - mv filebeat.yml filebeat.yml.bak
    - require:
      - cmd: filebeat_install
    - unless:
      - test -e /etc/filebeat/filebeat.yml.bak

filebeat_yml:
  file.managed:
    - name: /etc/filebeat/filebeat.yml
    - source: salt://filebeat/filebeat.yml
    - require:
      - cmd: copy_yml
    - template: jinja
    - defaults:
      server_name: {{ SERVICE_NAME }}
      log_path: {{ LOG_PATH }} 
    - unless:
      - test -e /etc/filebeat/filebeat.yml

filebeat_start:
  cmd.run:
    - name: systemctl start filebeat
    - require:
      - file: filebeat_yml
    - unless:
      - systemctl status filebeat

執(zhí)行后續(xù)新增邏輯

我們來(lái)看下后續(xù)新增腳本的邏輯

script_source:
  file.managed:
    - name: /etc/filebeat/append.sh
    - source: salt://filebeat/append.sh
    - onlyif:
      - cmd: rpm -qi filebeat
    - unless:
      - test -e /etc/filebeat/append.sh

開(kāi)始執(zhí)行之前會(huì)先在目標(biāo)主機(jī)上執(zhí)行rpm -qi filebeat語(yǔ)句,如果存在返回0,就會(huì)執(zhí)行后面的語(yǔ)句

完整腳本如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-400231.html

script_source:
  file.managed:
    - name: /etc/filebeat/append.sh
    - source: salt://filebeat/append.sh
    - onlyif:
      - cmd: rpm -qi filebeat
    - unless:
      - test -e /etc/filebeat/append.sh
      
yml_append:
  cmd.run:
    - cwd: /etc/filebeat
    - names:
      - /bin/bash append.sh {{NEW_SERVICE_NAME}} {{NEW_LOG_PATH}}
    - require:
      - file: script_source

filebeat_restart:
  cmd.run:
    - name: systemctl restart filebeat
    - require:
      - cmd: yml_append

到了這里,關(guān)于Filebeat 自動(dòng)安裝部署&一鍵配置實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Centos7.9寶塔搭建Hexo博客,實(shí)現(xiàn)本地一鍵自動(dòng)化部署到服務(wù)器

    Centos7.9寶塔搭建Hexo博客,實(shí)現(xiàn)本地一鍵自動(dòng)化部署到服務(wù)器

    有問(wèn)題可以留言相互討論 ,我的hexo博客地址,請(qǐng)勿頻繁訪問(wèn)或者攻擊,僅供學(xué)習(xí)和參考。 用于存放下載的git包 會(huì)顯示一堆.o類型的文件,表示正在從源碼編譯。 未顯示錯(cuò)誤直接跳到“ 安裝 ”步驟 如果出現(xiàn)錯(cuò)誤collect2: error: ld returned 1 exit status. 原因是gcc版本較低所致,與所

    2024年02月06日
    瀏覽(46)
  • 【第1章】Stable Diffuison WebUI 安裝(配置要求/一鍵安裝/云端部署/手動(dòng)私有化部署/N卡/A卡/Mac電腦)

    Stable Diffusion是一種 穩(wěn)定擴(kuò)散模型 ,是2022年發(fā)布的深度學(xué)習(xí) 文本到圖像 生成模型 。它主要用于根據(jù)文本的描述產(chǎn)生詳細(xì)圖像,后來(lái)也支持了圖生圖、圖片放大、圖片修復(fù)等等功能。 它是由初創(chuàng)公司StabilityAI,CompVis與Runway合作開(kāi)發(fā)的,并得到EleutherAI和LAION的支持。 Stable Di

    2024年04月08日
    瀏覽(33)
  • 【運(yùn)維知識(shí)高級(jí)篇】超詳細(xì)的Jenkins教程1(安裝部署+配置插件+創(chuàng)建自由風(fēng)格項(xiàng)目+配合gitlab實(shí)現(xiàn)Jenkins自動(dòng)觸發(fā))

    【運(yùn)維知識(shí)高級(jí)篇】超詳細(xì)的Jenkins教程1(安裝部署+配置插件+創(chuàng)建自由風(fēng)格項(xiàng)目+配合gitlab實(shí)現(xiàn)Jenkins自動(dòng)觸發(fā))

    Jenkins是一個(gè)開(kāi)源軟件項(xiàng)目,是基于Java開(kāi)發(fā)的一種持續(xù)集成的工具,用于監(jiān)控持續(xù)重復(fù)的工作,?旨在提供一個(gè)開(kāi)放易用的平臺(tái),使軟件的持續(xù)集成變成可能,是持續(xù)集成的核心,可以與其他軟件進(jìn)行協(xié)作,例如,gitlab推送給測(cè)試環(huán)境代碼,可以通過(guò)Jenkins省略步驟,實(shí)現(xiàn)自動(dòng)

    2024年02月05日
    瀏覽(40)
  • SpringBoot整合Freemaker結(jié)合Vue實(shí)現(xiàn)頁(yè)面填寫(xiě)一鍵自動(dòng)生成Redis的配置文件

    SpringBoot整合Freemaker結(jié)合Vue實(shí)現(xiàn)頁(yè)面填寫(xiě)一鍵自動(dòng)生成Redis的配置文件

    ?????作者名稱:DaenCode ??作者簡(jiǎn)介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗(yàn)、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 ??所屬專欄:SpringBoot實(shí)戰(zhàn) 標(biāo)題 一文帶你學(xué)會(huì)使用SpringBoot+Avue實(shí)現(xiàn)短信通知功能(含重要文件代碼) 一張思維導(dǎo)圖帶你學(xué)會(huì)Springboot創(chuàng)

    2024年02月10日
    瀏覽(41)
  • FileBeat安裝配置

    FileBeat安裝配置

    Filebeat 是屬于 Beats 家族的日志傳送器——一組安裝在主機(jī)上的輕量級(jí)傳送器,用于將不同類型的數(shù)據(jù)傳送到 ELK 堆棧中進(jìn)行分析。每個(gè)節(jié)拍都專用于傳送不同類型的信息——例如,Winlogbeat 傳送 Windows 事件日志,Metricbeat 傳送主機(jī)指標(biāo)等等。Filebeat,顧名思義,提供日志文件。

    2024年02月04日
    瀏覽(23)
  • 私有部署ELK,搭建自己的日志中心(二)-- filebeat的介紹與安裝

    私有部署ELK,搭建自己的日志中心(二)-- filebeat的介紹與安裝

    在搭建ELK系統(tǒng)之前,你有必要去了解下,為何大家在agent端普遍青睞filebeat,而把logstash放置于更加靠后端。 輕量級(jí)的filebeat,作為agent角色,是安裝在每臺(tái)虛擬機(jī)上。 filebeat的學(xué)習(xí)分為兩大部分: 安裝(二進(jìn)制或docker) 配置文件filebeat.yml 本文主要介紹docker安裝方式,對(duì)于其

    2024年02月03日
    瀏覽(20)
  • ELK之Filebeat安裝配置及日志抓取

    ELK之Filebeat安裝配置及日志抓取

    輕量型日志采集器 無(wú)論您是從安全設(shè)備、云、容器、主機(jī)還是 OT 進(jìn)行數(shù)據(jù)收集,F(xiàn)ilebeat 都將為您提供一種輕量型方法,用于轉(zhuǎn)發(fā)和匯總?cè)罩九c文件,讓簡(jiǎn)單的事情不再繁雜。 Filebeat 隨附可觀測(cè)性和安全數(shù)據(jù)源模塊,這些模塊簡(jiǎn)化了常見(jiàn)格式的日志的收集、解析和可視化過(guò)程

    2024年02月02日
    瀏覽(24)
  • k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin實(shí)現(xiàn)多個(gè)服務(wù)日志鏈路追蹤聚合到es

    k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin實(shí)現(xiàn)多個(gè)服務(wù)日志鏈路追蹤聚合到es

    如今2023了,大多數(shù)javaweb架構(gòu)都是springboot微服務(wù),一個(gè)前端功能請(qǐng)求后臺(tái)可能是多個(gè)不同的服務(wù)共同協(xié)做完成的。例如用戶下單功能,js轉(zhuǎn)發(fā)到后臺(tái) 網(wǎng)關(guān)gateway服務(wù) ,然后到 鑒權(quán)spring-sercurity服務(wù) ,然后到 業(yè)務(wù)訂單服務(wù) ,然后到 支付服務(wù) ,后續(xù)還有發(fā)貨、客戶標(biāo)簽等等服務(wù)

    2024年02月16日
    瀏覽(27)
  • jenkins的安裝和配置(flask結(jié)合jenkins半自動(dòng)化部署流程)

    jenkins的安裝和配置(flask結(jié)合jenkins半自動(dòng)化部署流程)

    Jenkins 是一款流行的開(kāi)源持續(xù)集成(Continuous Integration)工具,廣泛用于項(xiàng)目開(kāi)發(fā),具有自動(dòng)化構(gòu)建、測(cè)試和部署等功能。 Jenkins官網(wǎng): http://jenkins-ci.org/ Jenkins 特征 開(kāi)源的Java語(yǔ)言開(kāi)發(fā)持續(xù)集成工具,支持持續(xù)集成,持續(xù)部署。 易于安裝部署配置:可通過(guò)yum安裝,或下載war包以

    2024年02月03日
    瀏覽(27)
  • DM Ticket-大麥網(wǎng)自動(dòng)購(gòu)票工具 支持Docker一鍵部署

    DM Ticket-大麥網(wǎng)自動(dòng)購(gòu)票工具 支持Docker一鍵部署

    DM Ticket,一個(gè)大麥網(wǎng)演唱會(huì)自動(dòng)購(gòu)票工具,支持Docker一鍵部署,不過(guò)小白想要操作的話需要一點(diǎn)命令知識(shí),作者的GitHub項(xiàng)目頁(yè)面有很詳細(xì)的介紹,感興趣的同學(xué)可以到GitHub頁(yè)面進(jìn)行交流學(xué)習(xí),低調(diào)學(xué)習(xí)。 DM Ticket是一個(gè)自動(dòng)購(gòu)票工具,專門針對(duì)中國(guó)的在線票務(wù)平臺(tái)大麥網(wǎng)(Da

    2024年02月12日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包