ELK+filebeat开源日志分析系统-in-centos7.4(手动配置)

拓扑图

系统环境及软件版本

    #centos7.4
    #elasticsearch-6.1.3    :负责检索过滤,基于lucene的分布式搜索引擎,github是一个典例
    #logstash-6.1.3   :负责搜集日志,并格式化输出到elasticsearch
    #kibana-6.1.3   :一个用户友好的GUI控制界面,可从elasticsearch中读取数据并生成各种酷炫的图表
    #jdk1.8支持   :安装jdk支持(建议选择对应的版本,尽量用新的)
    #beats套件    :是一套轻量化的日志收集转发器,以agent的形式存在应用系统中并展开监视工作
        filebeat    :收集文本日志文件数据
        #(这里选择filebeat-5.6.2,为什么不选6的版本,因为filebeat6版本的document_type字段到logstash无法识别为type)(可能换成了别的字段或则舍弃了)
        packetbeat  :收集网络流量
        winlogbeat  :搜集windows事件日志

安装jdk环境

#第一:安装openjdk1.8或者采用oracle-jdk1.8的二进制安装方式(不要使用jdk9,目前jdk9还是测试版)
    yum install java-1.8.0-openjdk.x86_64
    或则

    去oracle官网wget最新的jdk.tar.gz包,然后解压,移到/根目录下,并重命名为jdk1.8
    vim /etc/profile.d/java.sh

export JAVA_HOME=/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#第二:立即加载jdk环境
    source /etc/profile
    或则
    . /etc/profile

#第三:验证jdk
    java -version

ELK端配置Elasticsearch的环境

    #由于新版本的安全考虑,不允许root用户运行Elasticsearch
    useradd es -d /home/es
    #(注意:如果直接以root运行,新版本可能会报错,因为elasticsearch考虑到会接收用户输入的脚本并执行,为了系统安全,需要创建一个单独的用户来运行elasticsearch)

    mkdir /esdata
    chown es:es /esdata

    su - es
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.3.tar.gz
    tar xf elasticsearch-6.1.3.tar.gz  -C /home/es/

    #编辑Elasticsearch的配置文件
    vi elasticsearch-6.1.3/config/elasticsearch.yml

cluster.name: my-application    #配置集群名称,无论是否计划建立集群,建议配置一个名称
#node.name: node-1     #该elasticsearch节点的名称,如果需要建立集群,该节点名称不可重复!!!
network.host: localhost     #只允许本机访问
node.name: elk-server       #本节点叫什么名字(若是集群才能体现价值)
path.data: /esdata      #数据存放目录,运行elasticsearch的用户es需要对其有读写权限

    #启动
     /home/es/elasticsearch-6.1.3/bin/elasticsearch -d  #注意是在普通用户下启动,在ELK中它要先于logstash启动    (直接运行就好,建议加-d后台运行 )

    #验证
    ss -tnl |grep 9200  #验证9200端口是否处于监听状态

[es@elk-server ~]$ curl localhost:9200 
{
  "name" : "elk-server",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "JfQt3JmRTBubVgcKYfWU3w",
  "version" : {
    "number" : "6.1.3",
    "build_hash" : "af51318",
    "build_date" : "2018-01-26T18:22:55.523Z",
    "build_snapshot" : false,
    "lucene_version" : "7.1.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

ELK端配置kibana

    wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.3-linux-x86_64.tar.gz
    tar xf kibana-6.1.3-linux-x86_64.tar.gz -C /home/es/

    vi /home/es/kibana-6.1.3-linux-x86_64/config/kibana.yml

server.host: 192.168.1.40
#elasticsearch的地址,如果elasticsearch与kibana安装在不同服务器上,需要手动指定地址
elasticsearch.url: "http://localhost:9200"

#kibana服务器名称,如果有多个kibana节点,建议修改这个参数以便识别
#server.name: "your-hostname"

#kibana会在elasticsearch中创建一个索引用于存储kibana的设置,索引名称可以自定义。一般无需修改
#kibana.index: ".kibana"

#elasticsearch请求超时阈值,如果数据量及其庞大,可适当增加该值
#elasticsearch.requestTimeout: 30000

    #启动
    /home/es/kibana-6.1.3-linux-x86_64/bin/kibana &

ELK端配置Logstash

    wget https://artifacts.elastic.co/downloads/logstash/logstash-6.1.3.tar.gz
    tar xf logstash-6.1.3.tar.gz  -C /home/es

#测试logstash能否正常运行(:

A:原封不动的返回
    /home/es/logstash-6.1.3/bin/logstash -e 'input {stdin {}} output {stdout{}}'
    #等待一会儿,你在屏幕输入hello word看是否会有输出

B:以json的格式返回
    /home/es/logstash-6.1.3/bin/logstash -e 'input{stdin{}}output{stdout{codec => rubydebug}}'
    #等待一会儿,你在屏幕输入hello word看是否会有输出json格式

#为logstash创建conf.d目录,用于存放长久运行的配置文件(这个里面的配置文件名,建议使用数字开头,因为是按排序执行的)
    mkdir /home/es/logstash-6.1.3/conf.d

logstash的配置文件完全不需要修改:
    vi /home/es/logstash-6.1.3/config/logstash.yml

#logstash数据存储路径,保持默认即可
path.data: /var/lib/logstash
#logstash动态加载的配置文件,所有自定义的输入、输出和过滤配置都放置在这个目录中并以.conf结尾
path.config: /etc/logstash/conf.d/*.conf
#logstash日志文件路径,保持默认即可
path.logs: /var/log/logstash

logstash配置输入设置
    vi /home/es/logstash-6.1.3/conf.d/filebeat.conf     #创建配置文件

input {
  beats {
    port => 5044
  }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}

    #启动
    /home/es/logstash-6.1.3/bin/logstash -f /home/es/logstash-6.1.3/conf.d/filebeat.conf &

    #一会儿后检查5044端口是否开启
    ss -tnl |grep 5044

安装nginx和httpd-tools工具

#第一:将nginx.conf里面的server段删除(建议将文件先备份)

#第二:为nginx的web网页设置一个验证登录限制(通过htpasswd命令创建访问kibana的web账户验证)
    sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin
    #密码我设置为123456

#第三:给nginx的conf.d目录下创建一个配置文件(为互联网上的client代理访问本机kvm-elk的5601端口)
    vim /etc/nginx/conf.d/kibana.conf

server {
    listen 80;
    server_name kvm-elk;
    auth_basic "please kibanaadmin's kou lin";
    auth_basic_user_file /etc/nginx/htpasswd.users;
    location / {
    proxy_pass http://localhost:5601;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    }
}

#第四:检查测试nginx配置有无错误
    nginx -t

#第五:检查无错误,便可以启动nginx
    systemctl start nginx

#第六:通过访问nginx的80端口,就可访问kibana了
    http://kvm-elk

下面是在应用服务器上部署日志搜集转发器

安装filebeat并为与logstash的通信

    #在应用服务器上添加官方源
    vi /etc/yum.repos.d/elk.repo

[elastic-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

    #安装filebeat组件
    yum install filebeat -y

    #配置filebeat
    vi /etc/filebeat/filebeat.yml

#------------input部分----------
filebeat.prospectors:
- type: log
  paths:
    - /var/log/nginx/access.log
  tags: ["nginx-accesslog"]
  document_type: nginx-access
#注意:filebeat在6版本里面,document_type字段好像不起作用

- type: log
  paths:
    - /var/log/nginx/error.log
  tags: ["nginx-errorlog"]
  document_type: nginx-error

#-------------output部分,将输出到Elasticsearch注释掉,开启输出到logstash----
output.logstash:
  hosts: ["192.168.1.40:5044"]

    #启动filebeat
    systemctl start filebeat
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/332.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/12/8作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录