美文网首页运维驿站Linux学习之路Linux
syslog日志收集学习-ELK源码6.6.1部署

syslog日志收集学习-ELK源码6.6.1部署

作者: Shark1985 | 来源:发表于2019-03-16 13:52 被阅读1次

日志收集,是运维工作中很重要的一环。不管是针对线上的系统服务,还是基础架构上的网络设备,有一套完整合适的日志收集系统,是必不可少的,这将成为之后遇到故障问题,提供一个有效的依据和排查手段。

目前已接触的日志收集系统:

Windows下的Kiwi syslog sever

Linux下的rsyslog,Graylog,ELK,前者是老牌日志收集工具,后两者简单看了一下介绍,日志收集只是其中一个功能,其功能优势更体现在分析和搜索。

ELK官网上提供了多种安装方式,软件包,源码,docker,之前一直使用的是Ubuntu的apt安装方式,后来在新版本发布后,就用了源码学习搭建了一次,据说这个版本针对Index索引的删除操作,有了更好的支持,正好可以来验证一下。

在安装ELK之前,如必需的java环境已具备,在此忽略。

部署的环境采用Ubuntu16.04,个人比较喜欢Ubuntu,基本大多数应用部署在此。

1.下载安装

#下载链接直接在官网获取,此次忽略
#解压
tar -zxvf elasticsearch-6.6.1.tar.gz 
tar -zxvf kibana-6.6.1-linux-x86_64.tar.gz
tar -zxvf logstash-6.6.1.tar.gz

2.软件包目录

#命名
 mv elasticsearch-6.6.1 elasticsearch
 mv kibana-6.6.1-linux-x86_64 kibana
 mv logstash-6.6.1 logstash

#将目录移动到/usr/local下
cp -r elasticsearch /usr/local/
cp -r kibana /usr/local/
cp -r logstash /usr/local/

3.配置

配置elasticsearch

#编辑配置文件
/usr/local/elasticsearch/config/elasticsearch.yml
#修改如下内容
cluster.name: es-cluster
node.name: node-1
network.host: 10.x.x.11
http.port: 9200
#增加
http.cors.allow-origin: "/.*/"
http.cors.enabled: true
#elasticsearch不能使用root执行,需要给执行账户分配权限
chown padmin:padmin -R /usr/local/elasticsearch/

运行

#此处要加“-d”后台运行
/usr/local/elasticsearch/bin/elasticsearch -d
#不加实际测试也可以正常运行,可以看到运行log。但遇到了一个奇怪的问题,当未后台运行时,如果将远程登录断开后,运行elasticsearch的进程就会自动停止,导致9200端口关闭。

Kibana

#编辑配置文件
/usr/local/kibana/config/kibana.yml
#修改如下内容,此处url的ip需与elasticsearch文件中保持一致
server.port: 5601
elasticsearch.hosts: ["http://10.x.x.11:9200"]

运行

#此处加“&”,使其可以后台运行
#遇到类似问题,不后台运行,同样会出现关闭远程管理后,进程自动停止
/usr/local/kibana/bin/kibana &

Logstash

cd /usr/local/logstash/config/
#复制模板文件生成配置文件
cp logstash-sample.conf logstash.conf
#编辑配置文件,此处hosts的url对应的是elasticsearch配置中的ip
input {
  syslog {
  port => 514
  }
  }
output {
 elasticsearch {
 hosts => ["http://10.x.x.11:9200"]
 index => "office.network-syslog-%{[@metadata][version]}-%{+YYYY.MM.dd}"
 }
}
#编辑配置文件
usr/local/logstash/bin/logstash.yml
#修改如下内容,ip与elasticsearch配置中的ip的一致
http.host: "10.x.x.11"
http.port: 9600-9700

运行

/usr/local/logstash/bin/logstash  -f /usr/local/logstash/config/logstash.conf

至此ELK的三大组件已完成部署并正常运行了

但存在一个安全问题,就是Kibana现在是无认证登录,直接访问url就可以跳转到日志浏览的页面。而官方提供的x-pack插件虽然可以提供验证登录的安全功能,但由于其license收费,从预算投入及需求来看,显然也有并不适合多数场景。

因此这里采用了一种折中的方式,通过Nginx转发代理&apache功能间接完成认证的目的,此方案也是网上多数大神提供的参考,这里借用一下。

Nginx代理

#需要先下载安装所需软件包
apt-get install nginx
apt-get install apache2-utils

认证配置

#创建目录及认证文件
mkdir -p /data/nginx/db/
cd /data/nginx/db/
touch passwd.db

配置Nginx

#编辑如下文件
/etc/nginx/nginx.conf
#在"http{"下添加如下内容,此处目的是让外部访问kibana的80端口,然后系统根据这个访问请求,将80重定向本身的5601端口上,进而访问kibana的web页面
#proxy_pass 重定向到127.0.0.1上,目的也是为了让外部无法直接访问5601端口

server {
 listen 80;
 server_name 10.x.x.11;
 location / {
 auth_basic "secret";
 auth_basic_user_file /data/nginx/db/passwd.db;
 proxy_pass http://127.0.0.1:5601;
 proxy_set_header Host $host:5601;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Via "nginx";
 }
 access_log off;
}

添加认证账号

#执行以下命令,使用的是前边已经创建的认证文件,建立账号admin
htpasswd -c /data/nginx/db/passwd.db admin
#命令执行后,会提示输入新密码
#查看认证文件,会发现admin账号已经生成了密码,且是密文的
cat /data/nginx/db/passwd.db 
admin:$apr1$.D5RMgHD$DMr/J1q.iuM/OaAnkiKKU1

4.访问

通过访问http://10.x.x.11/app/kibana#/home?_g=() ,会有认证框弹出,输入密码后登录

image image

登录Kibana后,还需要在logstash上添加索引,通过office.network-syslog* 匹配

5.索引周期策略

值得一提的是,针对Index索引的保存时间及删除,增加了一个索引周期策略Index Lifecycle Policies

image image image

相关文章

  • syslog日志收集学习-ELK源码6.6.1部署

    日志收集,是运维工作中很重要的一环。不管是针对线上的系统服务,还是基础架构上的网络设备,有一套完整合适的日志收集系...

  • ELK安装部署并监控nginx

    ELK日志收集部署 ELK介绍 ELK是3个开源产品的组合: Elasticsearch Logstash Kib...

  • 测试/生产环境elk部署实践

    最近两周,需要部署一套elk日志收集系统,顺便将其整理成部署文档 elk + kafka + zookeeper生...

  • 日志收集系统-探究

    常用的日志收集系统有Syslog-ng,Scribe,Flume,当然还有ELK的LogStash.而目前互联网公...

  • ELK

    一.ELK简介 二.ELK安装部署 收集nginx日志ESfilebeatkibanaes-head 0.更新系统...

  • ELK 6.6

    1.部署ELK 2.kibana导入elasticsearch数据 3. 收集 nginx json格式日志 4....

  • Rancher中pod的日志收集

    Rancher可以结合ELK来做日志的收集 首先用一台日志服务器,只需部署elasticsearch和kibana...

  • 日志收集项目

    日志收集项目架构设计及Kafka 目前主流的日志收集方案ELK ELK问题:增加一个日志收集项,需要手动修改配置。...

  • 无线考勤实现

    配置华为控制器,启用 SysLog配置华为SysLog 使用 Logstash 实现日志收集 使用 Elastic...

  • ELK(一)

    第一章: ELK简介 第二章: 传统日志分析需求 第三章: 日志收集分类 第四章: ELK安装部署 第五章:fil...

网友评论

    本文标题:syslog日志收集学习-ELK源码6.6.1部署

    本文链接:https://www.haomeiwen.com/subject/pvxsmqtx.html