ELK+filebeat 日志管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangyongdehao30/article/details/79472242

公司系统开发到一定规模,就必须要进行日志统一管理了,日志统一管理 可方便查询,保存更久时间,也是系统安全一项重要考核指标(一般应用服务器存储少量的日志文件 甚至不存文件,写文件非常耗性能)

此文 通过订阅应用日志文件 存储至elasticsearch ,合适机器资源相对比较宽裕的场景。个人认为,绝大部分应用的机器资源比较宽裕,如要更高性能,可以ELK+redis或kafka

www.elastic.co 网站上已经写得很清楚了,不过是文档是分开的,这里整合一下

1.安装elasticsearch

准备工作:
1.使用root账户新建用户
adduser esuser
2.为账户设置密码
passwd esuser
3.为账户开通权限,加入root组
 usermod -G root esuser
4.切换至新用户
 su - esuser
5.调整用户最大线程句柄数
 ulimit -u 14866
6.调整用户最大打开文件数
 ulimit -u 65536
7.调整最大虚拟内存
 vi /etc/sysctl.conf
  追加如下参数:
  vm.max_map_count=265536
  fs.file-max = 100000
 sysctl -p
开始安装

8.下载tar包

mkdir -p /data/es

cd /data/es

 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.3.tar.gz
9.解压
 tar -xvf elasticsearch-5.6.3.tar
10.修改配置文件
 cd elasticsearch-5.6.3/config
 vi elasticsearch.yml 
 新加:
bootstrap.memory_lock: false #不锁定内存
bootstrap.system_call_filter: false #设置不进行filter认证,centos系统有该问题
network.bind_host: 0.0.0.0 #所有IP可访问
11.运行 
 cd elasticsearch-5.6.3/bin
 ./elasticsearch &
12.访问

 curl 127.0.0.1::9200 (通了就行)

2.安装Kibana

cd /data/es

https://artifacts.elastic.co/downloads/kibana/kibana-5.6.3-linux-x86_64.tar.gz

tar -vxf kibana-5.6.3-linux-x86_64.tar.gz

vi /data/es/kibana-5.6.3-linux-x86_64/config/kibana.yml

找到server.port:5601,去掉注释#

设置server.host:0.0.0.0 (所有网段可访问)

设置elasticsearch.url: "http://localhost:9200"(服务器IP)

启动kibana

kibana-5.6.3-linux-x86_64/bin/kibana &

访问 http://ip:5601/ 能正常打开页面 说明安装完成

3.安装logstash

logstash是专门用来处理日志的,但是比较耗资源,所以不分布在应用服务器

cd /data/es

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.3.tar.gz

tar -vxf logstash-5.6.3.tar.gz

vi /data/es/logstash-5.6.3/config/logstash.conf

输入如下表达式:

input {
    beats{
        port => "5044"
 }
}
filter {
}
output {
  elasticsearch {
    hosts       => "http://localhost:9200" #es地址
        user    => "elastic" #es没有设置账户 删掉这行
        password => "changeme" #es没有设置账户 删掉这行

  }

编辑 yml配置文件

vi /data/es/logstash-5.6.3/config/logstash.yml

设置 http.host: "0.0.0.0"

启动logstash

logstash-5.6.3/bin/logstash -f logstash-5.6.3/config/logstash.conf &  这里-f指定配置文件

启动后看到9600启动成功代表logstash安装成功

4.安装filebeat

刚前3步ELK都是安装在 单机或者集群上,filebeat则是安装在应用服务器上

filebean(监听日志文件)--------->logstash(日志分析)-------->elasticsearch(索引存储)-------->kibana(展示)

这里我们监听一个shell脚本的文件

vi /data/test.sh

不停将 当前时间+hello 写入test.log文件中

if [ -d "/data/test.log" ];then
echo > test.log
fi


while [ 1==1 ];do
sleep 1
send=`date '+%Y-%m-%d %H:%M:%S'`
echo $send ">>hello" >> test.log

done

启动脚本 /data/test.sh &

tail -f /data/test.log 发现文件在一直刷 说明脚本ok

cd /data/es

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.3-linux-x86_64.tar.gz

tar -vxf filebeat-5.6.3-linux-x86_64.tar.gz

配置filebeat 

vi /data/es/filebeat-5.6.3-linux-x86_64/filebeat.yml

找到 input_type:log

设置为

- input_type: log
  # Paths that should be crawled and fetched. Glob based paths.
  paths:

    - /data/test.log #要监听的日志 可用通配符 监听多个文件

找到 output.elasticsearch

在前面加上#注释掉

找到output.logstash:

设置为

output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"] #logstash的ip


  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]


  # Certificate for SSL client authentication
  #ssl.certificate: "/etc/pki/client/cert.pem"


  # Client Certificate Key
  #ssl.key: "/etc/pki/client/cert.key"

启动filebeat

/data/es/filebeat-5.6.3-linux-x86_64/filebeat &

观察日志 tail -f /data/es/filebeat-5.6.3-linux-x86_64/logs/filebeat

输出类似这样的就对了

t.logstash.published_and_acked_events=30 libbeat.publisher.published_events=30 publish.events=30 registrar.states.update=30 registrar.writes=6

2018-03-07T16:24:36+08:00 INFO Non-zero metrics in the last 30s: libbeat.logstash.call_count.PublishEvents=6 libbeat.logstash.publish.read_bytes=36 libbeat.logstash.publish.write_bytes=1974 libbeat.logstash.published_and_acked_events=30 libbeat.publisher.published_events=30 publish.events=30 registrar.states.update=30 registrar.writes=6

到这里安装完成了


打开kibana客户端 

http://ip:5601/

点击discover,可以看到 test.log中的message已经过来了


具体怎么筛选,以及es索引 可以在官网学习 https://www.elastic.co/guide/index.html

猜你喜欢

转载自blog.csdn.net/yangyongdehao30/article/details/79472242