elk日志系统搭建

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等

前言

Elasticsearch:

  开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,

索引副本机制,restful 风格接口,多数据源,自动搜索负载等


官方网站:

  https://www.elastic.co


中文社区:

  https://elasticsearch.cn

 


官方参考文档:

  https://www.elastic.co/guide/en/elasticsearch/reference/6.6/setup-configuration-memory.html

 


下载地址:

  https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.6.0/

   elasticsearch-6.6.0.rpm

   filebeat-6.6.0-x86_64.rpm

   kibana-6.6.0-x86_64.rpm

   logstash-6.6.0.rpm


##################################################################    


1.安装elasticsearch:

   前提:jdk-1.8.0 (yum -y install java-1.8.0-openjdk )

   复制elasticsearch-6.6.0.rpm到虚拟机

   rpm -ivh elasticsearch-6.6.0.rpm


2.elasticsearch目录和文件:

/etc/elasticsearch/elasticsearch.yml    #配置文件

/etc/elasticsearch/jvm.options            #java虚拟机

/etc/init.d/elasticsearch                #服务启动脚本

/etc/sysconfig/elasticsearch            #elasticsearch服务变量

/usr/lib/sysctl.d/elasticsearch.conf    #设置elasticsearch用户使用的内存大小

/usr/lib/systemd/system/elasticsearch.service      #添加系统服务文件

/var/log/elasticsearch/elasticsearch.log         #日志文件路径


3.修改配置文件:

vim /etc/elasticsearch/elasticsearch.yml

node.name: node-1                        #群集中本机节点名

path.data: /data/elasticsearch            #数据目录

path.logs: /var/log/elasticsearch        #日志目录

bootstrap.memory_lock: true                #锁定内存,需要和/etc/elasticsearch/jvm.options关联

network.host: 192.168.8.10,127.0.0.1    #监听的ip地址

http.port: 9200                            #端口号


4.创建数据目录,并修改权限

mkdir -p /data/elasticsearch

chown -R elasticsearch.elasticsearch /data/elasticsearch/


5.分配锁定内存:

vim /etc/elasticsearch/jvm.options

-Xms1g        #分配最小内存    

-Xmx1g        #分配最大内存,官方推荐为物理内存的一半,但最大为32G


6.修改锁定内存后,无法重启,解决方法如下:

systemctl edit elasticsearch

添加:

[Service]

LimitMEMLOCK=infinity

F2保存退出


systemctl daemon-reload

systemctl restart elasticsearch


7.查看单主机

  http://192.168.8.10:9200/

 查看群集健康状态

  http://192.168.8.10:9200/_cluster/health?pretty

 查看整个群集状态信息

  http://192.168.8.10:9200/_cluster/state?pretty


8.下载es-head插件

  https://github.com/mobz/elasticsearch-head

   下载后,解压,复制crx目录下es-head.crx到桌面

   改名es-head.crx为es-head.crx.zip

   解压es-head.crx.zip到es-head.crx目录,把目录es-head.crx,上传到谷歌浏览器开发工具--扩展程序里    


9.创建索引:vipinfo,类型:users,序号:1,数据部分:...

curl -XPUT '192.168.8.10:9200/vipinfo/users/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"name": "guofucheng","age": "45","job": "mingxing"}'


 选项说明:

   XPUT       创建

   XDELETE  删除

 

#########################################################################


elasticsearch群集:

   状态颜色:

       灰色:未连接

       绿色:数据完整态

       黄色:副本不完整

       红色:数据分片不完整

       紫色:数据分片复制过程

   群集主机角色:

       主节点master:负责管理调度

       工作节点:       负责处理数据

       默认情况,所有节点都是工作节点,即主节点也处理数据


#########################################################################


往群集中添加第二台主机:192.168.8.20

1.安装es,步骤参考第一台,注意配置文件需要修改

vim /etc/elasticsearch/elasticsearch.yml

node.name: node-2

path.data: /data/elasticsearch                  

path.logs: /var/log/elasticsearch              

bootstrap.memory_lock: true                            

network.host: 192.168.8.20,127.0.0.1  

http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.8.10", "192.168.8.20"]

discovery.zen.minimum_master_nodes: 2   #添加的值=节点数/2 + 1


2.创建数据目录,并修改权限

mkdir -p /data/elasticsearch

chown -R elasticsearch.elasticsearch /data/elasticsearch/


3.分配锁定内存:

vim /etc/elasticsearch/jvm.options

-Xms1g        #分配最小内存    

-Xmx1g        #分配最大内存,官方推荐为物理内存的一半,但最大为32G


4.修改锁定内存后,无法重启,解决方法如下:

systemctl edit elasticsearch

添加:

[Service]

LimitMEMLOCK=infinity

F2保存退出


systemctl daemon-reload

systemctl restart elasticsearch

########################################################################


往群集中添加第三台主机:192.168.8.30

1.安装es,步骤参考第一台,注意配置文件需要修改

vim /etc/elasticsearch/elasticsearch.yml

node.name: node-3

path.data: /data/elasticsearch                  

path.logs: /var/log/elasticsearch              

bootstrap.memory_lock: true                            

network.host: 192.168.8.30,127.0.0.1  

http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.8.10", "192.168.8.30"]

discovery.zen.minimum_master_nodes: 2  


2.创建数据目录,并修改权限

mkdir -p /data/elasticsearch

chown -R elasticsearch.elasticsearch /data/elasticsearch/


3.分配锁定内存:

vim /etc/elasticsearch/jvm.options

-Xms1g        #分配最小内存    

-Xmx1g        #分配最大内存,官方推荐为物理内存的一半,但最大为32G


4.修改锁定内存后,无法重启,解决方法如下:

systemctl edit elasticsearch

添加:

[Service]

LimitMEMLOCK=infinity

F2保存退出


systemctl daemon-reload

systemctl restart elasticsearch

#########################################################################


常见群集管理监控命令

(1)查看索引信息

   curl -XGET '192.168.8.10:9200/_cat/indices?pretty'

(2)查看群集健康状态

   curl -XGET '192.168.8.10:9200/_cluster/health?pretty'

(3)统计群集节点

   curl -XGET '192.168.8.10:9200/_cat/nodes?human&pretty'

(4)查看群集所有节点详细信息

   curl -XGET '192.168.8.10:9200/_nodes/_all/info/jvm.process?human&pretty'

注意:企业环境使用脚本监控群集健康状态是否为green 或 节点数不匹配 就邮件报警

(5)创建索引index1时,修改分片为3和副本数为2

curl -X PUT 192.168.8.10:9200/index1  -H 'Content-Type: application/json' -d '{

   "settings" : {

       "index" : {

           "number_of_shards" : 3,

           "number_of_replicas" : 2

       }

   }

}'



(6)针对已有索引,可修改副本数,不可改分片数。下面语句把index1的副本数由2改为1

curl -X PUT '192.168.8.10:9200/index1/_settings?pretty'  -H 'Content-Type: application/json' -d '{

 "settings": {

   "number_of_replicas": "1"

 }                          

}'


============================================

1.另开一台centos,安装nginx

复制nginx-rpm包到虚拟机/root下

cd /root/nginx-rpm

yum -y localinstall *.rpm

systemctl start nginx



2.安装filebeat,收集nginx的日志,传输到elasticsearch

复制filebeat包到虚拟机

rpm -ivh filebeat-6.6.0-x86_64.rpm


vim /etc/filebeat/filebeat.yml

删除已有内容,添加:

filebeat.inputs:

- type: log

 enabled: true

 paths:

   - /var/log/nginx/access.log


output.elasticsearch:

 hosts: ["192.168.8.10:9200"]

保存退出


systemctl start filebeat


3.测试访问nginx,产生日志,查看elastsearch



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
22天前
|
存储 监控 安全
|
19天前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
20 2
|
1月前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
48 1
|
1月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
46 3
|
1月前
|
监控 应用服务中间件 网络安全
#637481#基于django和neo4j的日志分析系统
#637481#基于django和neo4j的日志分析系统
35 4
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
58 0
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
41 0
|
2月前
|
JSON 缓存 fastjson
一行日志引发的系统异常
本文记录了一行日志引发的系统异常以及作者解决问题的思路。
使用装饰器实现自动化日志系统
使用装饰器实现自动化日志系统
下一篇
无影云桌面