ELASTIC 5.2部署並收集nginx日志


elastic 5.2集群安裝筆記
 
設計架構如下:
nginx_json_log -》filebeat -》logstash -》elasticsearch -》kibana

 

系統版本Centos7.2
nginx格式為json,如何定義為json請自行百度。
kibana展示如下
 
 
rpm -ivh elasticsearch-5.2.0.rpm 
rpm -ivh kibana-5.2.0-x86_64.rpm 
rpm -ivh logstash-5.2.0.rpm 
yum install  java-1.8.0-openjdk -y   #logstash 和 elasticsearch啟動需要jdk1.8以上版本,推薦使用oracle的jdk。
 
 
ES啟動前系統調試
關閉ESlinux
暫時關閉iptables
 
修改IO調度算法為noop #不是SSD不用調整
cat /sys/block/sda/queue/scheduler 
noop deadline [cfq](默認是cfq)
echo "noop" >/sys/block/sda/queue/scheduler
cat /sys/block/sda/queue/scheduler 
[noop] deadline cfq(變為noop)
 
#增大文件描述符
ulimit -n 65536
echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf
 
#修改系統線程限制
echo -ne "
* soft nproc 2048
* hard nproc 4096
" >>/etc/security/limits.conf
 
修改系統限制一個進程可以擁有的VMA(虛擬內存區域)的數量
若無參數請增加
vim /etc/sysctl.conf
vm.max_map_count = 262144
設置降低交換分區的使用優先級
vim /etc/sysctl.conf
vm.swappiness = 1
 
 
 
 
ES啟動前elasticsearch.yml配置
cat /etc/elasticsearch/jvm.options
-Xms16g
-Xmx16g
注:按需調整,配置物理機內存的50%,但不要超過31G。
 
cat /etc/elasticsearch/elasticsearch.yml
#集群名稱
cluster.name: ESTACK
#節點名稱
node.name: ESTACK01
#數據路徑
path.data: /opt/elk/elasticsearch-data/
 
#若有交換分區,請開啟此項配置(我的服務器沒有交換分區,故沒有打開)

#禁用swap內存交換
##若開啟此選項,你需要修改/usr/lib/systemd/system/elasticsearch.service文件,並設置LimitMEMLOCK=infinity,
##修改/etc/sysconfig/elasticsearch文件,設置MAX_LOCKED_MEMORY=unlimited,最后執行systemctl daemon-reloa & systemctl restart elasticsearch

#bootstrap.memory_lock: true

#監聽地址
network.host: 10.1.74.53
#最小成集群節點數,防止腦裂
discovery.zen.minimum_master_nodes: 2
#單播ES節點地址。
discovery.zen.ping.unicast.hosts:
   - 10.1.73.229
   - 10.1.74.53 
   - 10.1.74.54
 
配置完畢啟動即可  systemctl start elasticsearch
 
logstash安裝與使用
安裝包完畢后,將配置文件放入目錄
/etc/logstash/conf.d   下
配置文件舉例
cdnlogs.conf
input {
    beats {
        port => 5044
      }
}
 
filter{
    json{
        source => "message"
    }
 
    geoip {
        source => "ip"
        #geoip是從IP字段中,獲取IP地址,並匹配這個地址的地方,最后生成地區的索引和坐標新增到ES的數據中。
        #logstash5x以上的geoip庫已直接集成在logstash中,2.x需要單獨指定,建議直接用logstash5x以上版本
        target => "geoip"
    }
}
 
output {
  elasticsearch {
    hosts => "10.1.74.53:9200"
    manage_template => false
    index => "cdnlogs-%{+YYYY.MM}"
    document_type => "cdnlogs"
  }
}
 
 
啟動logstash
screen -S logstash
screen這個命令請先百度學習一下。
./bin/logstash -f routerlogs.conf
 
啟動后的logstash會監聽5044端口,beats發送過來的數據會被logstash進行接收,處理(geoip增加訪問用戶的地址)和輸出到elasticsearch中。
 
 
 
配置kibana
主要配置
vim /etc/kibana/kibana.yml
#server.port: 5601
#server.host: "127.0.0.1"
#elasticsearch.url: "http://127.0.0.1:9200"
配置完畢后啟動即可 systemctl start kibana
 
 
 
 
 
配置filebeat
在需要收集日志的服務器上安裝filebeat
注意,收集的日志必須為json格式!
安裝完畢后修改配置文件
vim /etc/filebeat/filebeat.yml
 
filebeat.prospectors:
# Each - is a prospector. Most options can be set at the prospector level, so
# you can use different prospectors for various configurations.
# Below are the prospector specific configurations.
- input_type: log
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/nginx/cdn.log
  json.keys_under_root: true
 
output.logstash:
  # The Logstash hosts
  hosts: ["42.15.38.132:5044"]
 
配置完畢啟動即可,
至此,日志會經過
filebeat -》logstash -》 elasticsearch -》kibana 展示到你的面前,祝玩的愉快。
 

謝土豪

如果有幫到你的話,請贊賞我吧!

 


免責聲明!

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



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