CentOS 7.x 搭建 ELK 日志监控系统

一、ELK介绍

    

ELK简介:

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

Filebeat隶属于Beats。目前Beats包含四种工具:

    1. Packetbeat(搜集网络流量数据)
    2. Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
    3. Filebeat(搜集文件数据)
    4. Winlogbeat(搜集 Windows 事件日志数据)

二、环境

   实验环境配置

# vim /etc/security/limit.conf

* hard nofile 65536
* soft nofile 65536
* soft nproc 65536
* hard nproc 65536


# vim /etc/sysctl.conf
vm.max_map_count = 262144
net.core.somaxconn=65535
net.ipv4.ip_forward = 1
# yum install java-1.8.0-openjdk -y
# sysctl -p
# systemctl disable firewalld
# systemctl stop firewalld
# iptables -F

三、ELK+Filebeat的安装

   配置yum源

[root@elk ~]# ntpdate 0.centos.pool.ntp.org
[root@elk ~]# vim /etc/yum.repos.d/elk.repo
[elk]
name=elk
baseurl=https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-6.x/
enable=1
gpgcheck=0

  安装配置Elasticsearch Logstash Kibana Filebeat

扫描二维码关注公众号,回复: 4426919 查看本文章
[root@elk ~]# yum install elasticsearch logstash kibana nodejs filebeat -y

 注:nodejs 可能安装失败

  使用安装 nodejs 8.9.4

  解决方案:#在ROOT权限下

   curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

   sudo yum install -y nodejs

   sudo yum install gcc-c++ make

   curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

   sudo yum install yarn

  检测:

[root@Ansible ~]# node -v
v8.12.0
[root@Ansible ~]# npm -v
6.4.1

Elasticsearch

[root@elk ~]# grep -v ^# /etc/elasticsearch/elasticsearch.yml

cluster.name: elk-stack

node.name: elk.node1

path.data: /var/lib/elasticsearch

path.logs: /var/log/elasticsearch

network.host: 0.0.0.0

http.port: 9200

discovery.zen.ping.unicast.hosts: ["本机IP:9300"]

discovery.zen.minimum_master_nodes: 1



[root@elk ~]# systemctl start elasticsearch

[root@elk ~]# ss -ntlup| grep -E "9200|9300"

tcp LISTEN 0 65535 :::9200 :::* users:(("java",pid=1624,fd=184))

tcp LISTEN 0 65535 :::9300 :::* users:(("java",pid=1624,fd=183))

Kibana

[root@elk ~]# egrep -v "^#|^$" /etc/kibana/kibana.yml

server.port: 5601

server.host: "0.0.0.0"

elasticsearch.url: "http://本机IP:9200"

kibana.index: ".kibana"



汉化Kibana

[root@elk ~]# yum install -y git

[root@elk ~]# git clone https://github.com/anbai-inc/Kibana_Hanization.git

[root@elk ~]# cd Kibana_Hanization

[root@elk ~]# python main.py /usr/share/kibana



[root@elk ~]# systemctl restart kibana

[root@elk ~]# ss -ntlup| grep 5601

tcp LISTEN 0 511 *:5601 *:* users:(("node",pid=1885,fd=12))

Logstash

[root@elk ~]# echo 'path.config: /etc/logstash/conf.d' >>/etc/logstash/logstash.yml

添加日志处理文件

[root@elk ~]# vim /etc/logstash/conf.d/local_syslog.conf

input {

#filebeat客户端

beats {

port => 5044

    }
}


#筛选

#filter { }

output {

# 输出到es

elasticsearch {

hosts => ["http://本机IP:9200"]

index => "syslog-%{+YYYY.MM.dd}"

  }

}

[root@elk ~]# systemctl start logstash

[root@elk ~]# lsof -i:5044

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

java 2427 logstash 88u IPv6 27356 0t0 TCP *:lxi-evntsvc (LISTEN)

Filebeat

[root@elk ~]# vim /etc/filebeat/filebeat.yml

filebeat.inputs:

- type: log

enabled: true

paths:

- /var/log/messages

filebeat.config.modules:

path: ${path.config}/modules.d/*.yml

reload.enabled: false

setup.template.settings:

index.number_of_shards: 3

output.logstash:

hosts: ["本机IP:5044"]



[root@elk ~]# systemctl start filebeat

浏览器访问Kabana

127.0.0.1:5601

ELK部署完成

猜你喜欢

转载自blog.csdn.net/qq_24027457/article/details/83269312