7.3版本ELk搭建以及日志告警到zabbix全流程


ELK:一套組件

1:安裝elasticsearch,需要先安裝jdk

  (1)這里我安裝的是jdk11.0.1

  鏈接: https://pan.baidu.com/s/1E1MTgTyNFskHbahzBgNfjg 提取碼: iutb

  解壓jdk,解壓命令為#tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz

為了使后續使用將解壓的文件夾改名為jdk:#mv jdk-12.0.2/  jdk

(2):配置環境變量,輸入命令

#vim /etc/profile

在文件尾部加入以下內容:

export JAVA_HOME=/usr/local/jdk

export JRE_HOME=/$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

修改完成后,保存文件,退出。

通過source命令重新加載/etc/profile文件,使得修改后的內容生效,命令如下。

# source /etc/profile

輸入java –version查看jdk版本,輸出成功,這代表安裝成功。

 

 

       值得注意的是:export JAVA_HOME=/usr/local/jdk  這個路徑是看你吧你的jdk安裝在那個路徑下,改為你安裝的路徑。
2:elasticsearch的安裝

(1)去官網下載7.3版本的elasticsearch,其他組件也建議使用相同版本。選擇linux版本然后上傳至服務器,選擇你要上傳的目錄,然后解壓

tar -zxvf elasticsearch-7.3.0-linux-86_64.tar.gz

(2)修改配置文件

  1. network.host: 0.0.0.0 這樣寫是全局訪問,你也可以寫成讓某個主機訪問,全局訪問需要打開防火牆的端口,或者關閉防火牆
  2.  http.port: 9200

(3)啟動elasticsearch需要非root用戶

useradd test         #創建用戶test

groupadd test#創建組test

useradd test-g test#將用戶添加到組

然后需要把該組建的權限賦予新建的非root用戶

chown test:test  /elasticsearch/*  這是我得文件夾

(4)啟動elasticsearch

進入到elasticsearch,cd /elasticsearch/bin

然后 ./elasticsearch &   掛后台執行

 

注意容易出錯:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

  [3]:the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

解決:【1】:編輯 /etc/security/limits.conf,追加以下內容;
* soft nofile 65536
* hard nofile 65536
此文件修改后需要重新登錄用戶,才會生效

【2】:編輯 /etc/sysctl.conf,追加以下內容:
vm.max_map_count=655360
保存后,執行:

sysctl -p

重新啟動,成功。

【3】:

在配置文件里面

取消注釋保留一個節點
cluster.initial_master_nodes: ["node-1"]
這個的話,這里的node-1是上面一個默認的記得打開就可以了

3:安裝filebeat

(1)filebeat是安裝在客戶端用來搜集日志的,然后把收集的日志送到logstash

(2)把壓縮包上傳至指定目錄,解壓  tar -zxvf filebeat-7.3.0.tar.gz

(3)修改配置文件  vim /filebeat/filebeat.yml

在文件末尾加上這些

 

塗畫的地方是logstash的ip和端口

path:是你要搜集日志的路徑

需要注意的是:在配置文件里面需要把

 

 

 這兩行注釋掉,關掉一個出口

如果報-bash: ./filebeat: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory錯誤

 解決:

sudo yum install  glibc-common glibc

sudo yum install  glibc.i686

 

4:安裝logstash

(1)上傳壓縮包到指定目錄,解壓

tar -zxvf logstash-7.3.0.tar.gz

(2)新建一個配置文件,用來使用此文件啟動logstash  vim test.conf   

 

塗掉的地方是elasticsearch的地址和端口  指定輸出到哪里

 這是簡單的配置,input是來接收filebeat傳送過來的日志文件,,如果有更多需求,可以使用filter過濾功能

(3)啟動 

在logstash的bin目錄下

./logstash -f ../test.conf &   這里我的test.conf是和bin為同級目錄

5:安裝kibana

(1)上傳壓縮包到指定目錄,解壓 tar -zvxf   ********

(2)修改配置文件

server.port: 5601

server.host: "0.0.0.0"

elasticsearch.hosts: ["http://localhost:9200"]

如果需要漢化kibana

i18n.locale: "zh-CN"

(3)啟動   在bin目錄下    ./kibana &   需要注意的是  kibana也是要在非root用戶下啟動

(4)界面使用,

 

 

 

所有組件都啟動后會看到在elasticsearch下的索引管理里面有你自己建立的索引,也就是在logstash配置文件里,

然后在kibana里面創建索引模式,點進去,你會看到你的索引,然后定義索引模式,例如logstash-*  點擊下一步

最后需要在日志界面的配置源中,把該索引加進去

 

 

 這些都是索引。

產看日志過濾使用,可以在搜索框中使用多條件聯合查詢

 

(6)告警到zabbix

(1)安裝

logstash-output-zabbix是一個社區維護的插件,它默認不安裝,但是它安裝起來也很容易,直接在logstash中運行即可:

bin/logstash-plugin install logstash-output-zabbix
(2)配置logstash文件

input {
    beats {
            port => 5044
    }
}

filter {
    
        grok {
                match => { "message" => "%{IP:remote_addr} (?:%{DATA:remote_user}|-) \[%{HTTPDATE:timestamp}\] %{IPORHOST:http_host} %{DATA:request_method} %{DATA:request_uri} %{NUMBER:status} (?:%{NUMBER:body_bytes_sent}|-) (?:%{DATA:request_time}|-) \"(?:%{DATA:http_referer}|-)\" \"%{DATA:http_user_agent}\" (?:%{DATA:http_x_forwarded_for}|-) \"(?:%{DATA:http_cookie}|-)\""}
        }
        mutate {
               
                add_field => [ "[@metadata][zabbix_key]" , "logstash-api-access" ]            在消息中添加zabbix中item的key值
                add_field => [ "[@metadata][zabbix_host]" , "EIP_weixin" ]                         在消息中添加zabbix中的host值,主機名
        }
    
}

output {
                elasticsearch {
                       hosts => ["10.1.129.101:9200"]
                       index => "logstash-wxself.gtafe.com_10.1.134.60"
                      
                      }
      

      if [message]  =~ /(ERR|error|ERROR|Failed)/  {
                 zabbix {
                        zabbix_host => "[@metadata][zabbix_host]"                 
                        zabbix_key => "[@metadata][zabbix_key]"
                        zabbix_server_host => "10.1.134.220"   
                        zabbix_server_port => "10051"
                        zabbix_value => "message"
                        }
                }


        stdout { codec => rubydebug }
}

  (3)然后在zabbix  web界面建立模板。監控項,觸發器

需要注意的是,監控項要設置成zabbix采集器,設置成字符類型(設置文本類型不行,不知道什么原因),觸發器設置為

 

設置完后可以測試一下,需要你在采集日志的主機上安裝zabbix  agent,命令如下:

/usr/local/zabbix/bin/zabbix_sender -z 10.1.134.220 -vv -s "EIP_weixin" -k logstash-api-access -o "Aug"

-z代表是  zabbix server  地址  -vv 是 詳細顯示  -s  是主機名   -k  是鍵值 -o  是  傳輸值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM