ELK使用问题记录

1.环境介绍:

使用的logstash(分别部署在两个服务器上收集日志)+redis+logstash+elasticsearch+kibana。

安装的java8 。logstash版本2.2.4-1   redis版本v=2.8.3   logstash版本2.2.4-1   elasticsearch2.4.5  kibana   4.4.2


A+B(部署的logstash)每个小时都有日志通过到特定目录,压缩包文件。通过编写python脚本每个小时对日志进行过滤处理成可以识别的状态放到logstash可以识别的目录。logstash识别新数据后,传到redis服务器。

详细的配置说明详见http://udn.yyuap.com/doc/logstash-best-practice-cn/input/stdin.html

/etc/logstash/conf.d/logstash.conf


安装 Logstash:

Logstash 软件包和 Elasticsearch 的在同一个版本库,之前我们已经添加了这个公共密钥。所以,直接创建 Lostash 的资源列表:

1
echo  'deb http://packages.elastic.co/logstash/2.2/debian stable main'  sudo  tee  /etc/apt/sources .list.d /logstash-2 .2.x.list

更新 apt 包数据源并安装:

1
2
sudo  apt-get update
sudo  apt-get  install  logstash

配置logstash

input {
   file {
		type => "click"     #给日志定一个类型
		path => "/srv/om-data-backup/click_log_hour_analyse/*.log"     #日志每小时都处理后放到这里
		start_position => "beginning" #从文件开始处读写
   }
#		stdin {}  #可以从标准输入读数据
}

filter {
    #执行ruby程序,下面例子是将日期转化为字符串赋予daytag
    ruby {
		code => "event['daytag'] = event.timestamp.time.localtime.strftime('%Y-%m-%d')"
    }

    #定义数据的格式
    grok {
		match => { "message" => "%{DATA:PlayName}\&%{DATA:Action}\&%{DATA:UserID}\&%{DATA:VideoID}\&%{IP:AccessIP}\&%{DATA:TimeStamp}\&%{DATA:Protocol}\&%{DATA:Suffix}\&%{DATA:AccessUrl}\&%{DATA:TerminalType}\&%{GREEDYDATA:UserAgent}"}
	}

    date {
        match => [ "TimeStamp" , "dd/MMM/yyyy:HH:mm:ss"]  ##将上边message中匹配的时间字符串转换成时间戳类型的数值,使得时间戳为日志的访问时间。
    }

    geoip {
        source => "AccessIP"
#        fields => ["continent_code", "country_name", "city_name","real_region_name", "country_code2", "country_code3", "ip", "latitude", "longitude", "location", "timezone"]
        fields => ["country_name", "city_name","real_region_name", "ip", "latitude", "longitude", "location"]
    } ##增加上边message中匹配的访问IP的地址查询功能。获取来访地址的位置信息。
}

output {
#   stdout{codec=>rubydebug}
#    elasticsearch {
#        hosts => ["localhost:9200"]
##        protocol => "http"
#    	sniffing => true
#    	manage_template => false
#        index => "logstash-%{type}-%{+YYYY.MM.dd}"
#        document_type => "%{type}"
##        workers => 5
##        template_overwrite => true
#    }
    redis{
        host => '10.12.70.122:6379'  #redis服务器ip和端口
        data_type => 'list'  #列表方式存入redis,logstash取的时候也是这个类型。
#        key => 'logstash-%{type}-%{+YYYY.MM.dd}'
        key => 'logstash:redis'   ##redis中存储的方式。redis-cli 输入keys *  可以看到。
    }
}


C(部署redis服务) 安装并配置redis,设置redis端口6379 。启动方式redis-server  /path/to/config/file

redis有个安全问题需要注意。默认是不需要任何权限就可以登录。所以,启动redis需要做安全设置。

我的方法是添加iptables策略。

先允许,再全部拒绝,可以达到只允许某些IP访问某个端口目的。

iptables -A INPUT -s 127.0.0.1 -p tcp --dport 6379 -j ACCEPT 
iptables -A OUTPUT -d 127.0.0.1 -p tcp --sport 6379 -j ACCEPT 

允许本地访问,可以通过redis-cli进行测试。

iptables -A INPUT -s 1.1.1.1 -p tcp --dport 6379 -j ACCEPT
iptables -A OUTPUT -d 1.1.1.1 -p tcp --sport 6379 -j ACCEPT

允许某个特定的IP 1.1.1.1访问 6379端口。

还可以同样的方式添加其他IP访问6379端口。

iptables -A INPUT -s 0.0.0.0/0 -ptcp --dport 6379 -j DROP

这样拒绝掉了其他端口访问6379端口。


D(部署logstash+elasticsearch+kibana)

安装java 8:

Elasticsearch 和 Logstash 需要 Java,所以我们需要安装。Elasticsearch 需要安装最新的 Oracle Java 8。

添加 Oracle JavaPPA 到 apt并安装:

add-apt-repository -y ppa:webupd8team/java
apt-get update
apt-get -y install oracle-java8-installer

安装 Elasticsearch:

Elasticsearch 可以用包管理器通过添加 Elasticsearch的包源列表进行安装。
用下面的命令来导入 Elasticsearch 公共 GPG 密钥到 apt:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
创建 Elasticsearch 资源列表:
echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
更新 apt 包数据库并安装elasticsearch:
sudo apt-get update
sudo apt-get -y install elasticsearch
安装完毕后进行配置:
vim /etc/elasticsearch/elasticsearch.yml
path.data: /srv/     # 分析后数据存放位置
network.host:  # localhost 或者IP 
http.port: 9200  # 启用的端口
启动elasticsearch:
service elasticsearch restart
# 启动过程会校验java环境和/etc/default/elasticsearch里面的设置。
# 日志目录/var/log/elasticsearch/elasticsearch.log

安装 Kibana:

Kibana 可以用包管理器通过添加 Elastic 的包源列表进行安装。
创建 Kibana 资源列表:
echo "deb http://packages.elastic.co/kibana/4.4/debian stable main" | sudo tee -a /etc/apt/sources.list.d/kibana-4.4.x.list
更新 apt 包数据源并安装:
sudo apt-get update
sudo apt-get -y install kibana
修改配置文件:
vim /opt/kibana/config/kibana.yml
server.port: 5601  # 端口
server.host: "localhost"  # 监听IP
elasticsearch.url: "http://localhost:9200" # elasticsearch 端口。
启动kibana:
service kibana start
# 启动过程会校验/etc/default/kibana里面的参数。
# 日志位置 /var/log/kibana/kibana.stdout














  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值