ELK+cerebro管理

1. 服务分配

es1:192.168.90.22(elasticsearch+kibana)

es2:192.168.90.23(elasticsearch+cerebro)

##修改hosts文件,使其能通过域名访问


2. 搭建前先修改用户可以使用的最大文件数,最大线程,最大内存等资源使用量

vim /etc/security/limits.conf
	* soft nofile 65536
	* hard nofile 131072 
	* soft nproc 4096 
	* hard nproc 4096
vim /etc/security/limits.d/90-nproc.conf
	*          soft    nproc     4096
注:如果设置的数值是数值不够大,在你启动elasticsearch是就会报错,你可以根据报错信息来调整

3. 安装java环境

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-headless

4. 部署elasticsearch

yum localinstall -y elasticsearch-6.2.2.rpm
mkdir -pv /data/elk/{data,logs}
chown -R elasticsearch.elasticsearch /data/elk/
##rpm包我都提前下了,https://www.elastic.co/downloads

vim /etc/elasticsearch/elasticsearch.yml
	cluster.name: elk
	node.name: es1    ##两台命名不一样,我是用主机名
	path.data: /data/elk/data
	path.logs: /data/elk/logs
	network.host: 0.0.0.0
	http.port: 9200
	discovery.zen.ping.unicast.hosts: ["es1", "es2"]
	bootstrap.memory_lock: false
	bootstrap.system_call_filter: false
	(因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。)
##直接用service命令启动就行了

##如果你启动elasticsearch失败了,可以到http://blog.csdn.net/qq942477618/article/details/53414983 去找有没有,但然具体修改还是要看你的报错,这个也只是提供一下思路而已

5. kibana安装在es1上

yum localinstall -y kibana-6.2.2-x86_64.rpm

##修改修配置文件就可以直接启动了

[root@es1 ~]# vim /etc/kibana/kibana.yml
	server.port: 5601
	server.host: "192.168.90.22"
	elasticsearch.url: http://localhost:9200
[root@es1 ~]# /etc/init.d/kibana start

6. es2安装cerebro来可视化集群管理

wget https://github.com/lmenezes/cerebro/releases/download/v0.7.2/cerebro-0.7.2.zip
[root@es2 cerebro-0.7.2]# vim conf/application.conf
	hosts = [
  {
    host = "http://192.168.90.23:9200"
    name = "elk"
  },
##启动

./bin/cerebro -Dhttp.port=1234 -Dhttp.address=192.168.90.23 &
##通过1234端口访问
ELK+cerebro管理_第1张图片


7. 安装logstash

##一般都是装在要收集日志的主机上,不过我这边只是试验我就直接安装在es1上

yum localinstall -y logstash-6.2.2.rpm

##这边的索引只是为了测试,所以就简单写,具体还要考实际主机的日志格式来写

Vim /etc/logstash/conf.d/test.conf
	input{stdin{}}
output {
	elasticsearch {
		action => "index"
		hosts => "192.168.90.22:9200"
		index => "test"
	}
}
##如果你安装了nginx,也可以写这个

input {
    file {
        path => "/var/log/nginx/*.log" #日志存放位置,*是所有,你也可以只选一个access.log
        type => "test"
        start_position => "beginning" #从文件开始出读
   }
}
filter{
    grok {
        match => {
        "message" => "%{IPORHOST:IP} - %{USER:User} \[%{HTTPDATE:Time}\] \"%{WORD:HTTP_Method} %{NOTSPACE:Request} HTTP/%{NUMBER:HTTP_Version}\" %{NUMBER:Status} (?:%{NUMBER:Bytes}|-) \"(?:%{URI:HTTP_Referer}|-)\" \"%{GREEDYDATA:User_Agent}\""  ##nginx默认格式
    }
    }
}
output {
     elasticsearch {
       action => "index"
       hosts  => "192.168.90.22:9200"
       index  => "nginx" ##索引名
   }
   stdout {
       codec => rubydebug
  }
}
##启动logstash

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

8. 访问kibana

ELK+cerebro管理_第2张图片


##最后根据需要建立图表

ELK+cerebro管理_第3张图片


9. 防火墙端口

##默认情况下

elasticsearch之间通过9300

logstash传过来是9200

kibana页面是5601

cerebro的端口是最后你启动时输入多少就是多少


你可能感兴趣的:(架构)