主机 | 主机名 | IP 地址 | 主要软件 |
---|---|---|---|
Node1 | CentOS 7-1 | 192.168.126.11 | Elasticsearch、Kibana |
Node2 | CentOS 7-2 | 192.168.126.12 | Elasticsearch |
Apache | CentOS 7-3 | 192.168.126.13 | Logstash |
登录 CentOS 7-1(192.168.126.11),更改主机名,配置域名解析并查看 Java 环境
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#万恶之源,先关防火墙及安全机制
hostnamectl set-hostname node1
su -
vim /etc/hosts
192.168.126.11 node1
192.168.126.12 node2
#尾部添加
java -version
#查看JAVA环境,一般默认是1.8.0_131
--JDK--
cd /opt
#将软件包传至该目录下
rpm -ivh jdk-8u201-linux-x64.rpm
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
#注释:
1.输出定义java的工作目录
2.输出指定java所需的类文件
3.输出重新定义环境变量,$PATH一定要放在$JAVA_HOME的后面,让系统先读取到工作目录中的版本信息
source /etc/profile.d/java.sh
java -version
#检查
登录 CentOS 7-2(192.168.126.12),同上操作
hostnamectl set-hostname node2
(node1)192.168.126.11:
安装 rpm 包
cd /opt
#将软件包传至该目录下
rpm -ivh elasticsearch-5.5.0.rpm
加载系统服务
systemctl daemon-reload
systemctl enable elasticsearch.service
更改 ES 主要配置文件
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
#备份
vim /etc/elasticsearch/elasticsearch.yml
//17行 cluster.name: my-elk-cluster #集群名字
//23行 node.name: node1 #节点名字
//33行 path.data: /data/elk_data #数据存放路径
//37行 path.logs: /var/log/elasticsearch/ #日志存放路径
//43行 bootstrap.memory_lock: false #不在启动的时候锁定内存(前端缓存,与IOPS-性能测试方式,每秒读写次数相关)
//55行 network.host: 0.0.0.0 #提供服务绑定的IP地址,0.0.0.0代表所有地址
//59行 http.port: 9200 #侦听端口为9200
//68行 discovery.zen.ping.unicast.hosts: ["node1", "node2"] #集群发现通过单播实现
grep -v "^#" /etc/elasticsearch/elasticsearch.yml
#检查配置
scp elasticsearch.yml [email protected]:/etc/elasticsearch/elasticsearch.yml
#将配置好的文件用SCP传至node2,后续只用去改个节点名字即可
创建数据存放路径并授权
mkdir -p /data/elk_data
chown elasticsearch:elasticsearch /data/elk_data/
查看启动 ES 是否成功开启
systemctl start elasticsearch.service
netstat -antp | grep 9200
#这里可能出现一次性检测不出来端口号的情况,多restart重启几次服务即可
查看节点信息,用宿主机浏览器打开 http://192.168.126.11:9200
node2(192.168.126.12):同上
...
...
vim /etc/elasticsearch/elasticsearch.yml
#23行 node.name: node2 #节点名字
...
...
grep -v "^#" /etc/elasticsearch/elasticsearch.yml
#检查配置
...
...
查看节点信息,用宿主机的浏览器打开 http://192.168.126.12:9200
#检查群集健康情况
用宿主机浏览网页,打开 http://192.168.126.11:9200/_cluster/health?pretty
#检查群集状态信息
打开 http://192.168.126.11:9200/_cluster/state?pretty
上述查看集群的方式是不是有点不方便?
我们可以通过安装 elasticsearch-head 插件来解决这个问题
node1(192.168.126.11):
编译安装 node 组件依赖包
cd /opt
#将软件包传至本目录下
yum install -y gcc gcc-c++ make
tar zxvf node-v8.2.1.tar.gz
cd node-v8.2.1/
./configure
make -j 4 && make install
#过程耗时较长!!建议同时编译安装node2,然后再去配置Apache
cd /usr/local/src/
#将软件包传至本目录下
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin
cd /usr/local/src/
#将软件包传至本目录下
tar zxvf elasticsearch-head.tar.gz
cd elasticsearch-head/
npm install
cd ~
vim /etc/elasticsearch/elasticsearch.yml
#在尾部添加配置
http.cors.enabled: true
http.cors.allow-origin: "*"
#注释
1.开启跨域访问支持,默认为false
2.跨域访问允许的域名地址
systemctl restart elasticsearch
cd /usr/local/src/elasticsearch-head/
npm run start &
#切换到后台运行
netstat -lnupt |grep 9100
netstat -lnupt |grep 9200
node2(192.168.126.12):同上
...
...
cd /usr/local/src/elasticsearch-head/
npm run start &
...
...
netstat -lnupt | grep 9100
netstat -lnupt | grep 9200
1.在宿主机上打开浏览器,访问 http://192.168.126.11:9100/
2.然后在 Elasticsearch 后面的栏目中摄入 http://192.168.126.11:9200,点击连接,查看群集颜色是否是健康的绿色
3.访问 http://192.168.126.12:9100/,同上操作
登录 node1(192.168.126.11):
curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"xcf","mesg":"hello world"}'
#索引为index-demo,类型为test,可以看到成功创建
1.打开浏览器输入http://192.168.126.11:9100/ 查看索引信息
2.可以看见索引默认被分片5个,并且有一个副本
3.点击数据浏览,会发现在node1上创建的索引为index-demo,类型为test这些相关的信息
hostnamectl set-hostname apache
su -
yum install -y httpd
systemctl start httpd
java -version
cd /opt
#将软件包传至本目录下
rpm -ivh logstash-5.5.1.rpm
systemctl start logstash.service
systemctl enable logstash.service
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
#建立软连接,方便系统识别
Logstash [选项] [对象]
-f:通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash
-e:后面跟着字符串 该字符串可以被当做logstash的配置(如果是" ",则默认使用stdin作为输入、stdout作为输出)
-t:测试配置文件是否正确,然后退出
logstash -e 'input { stdin{} } output { stdout{} }'
...
...
www.baidu.com #输入内容
...
www.4399.com #输入内容
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.126.11:9200"] } }'
...
...
www.baidu.com #输入内容
www.google.com.cn #输入内容
#Logstash配置文件主要由三部分组成:input、output、filter(根据需要)
chmod o+r /var/log/messages
ll /var/log/messages
vim /etc/logstash/conf.d/system.conf
input {
file{
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["192.168.126.11:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
systemctl restart logstash.service
cd /usr/local/src/
#将软件包传至本目录下
rpm -ivh kibana-5.5.1-x86_64.rpm
cd /etc/kibana/
cp kibana.yml kibana.yml.bak
vim kibana.yml
//2行 server.port: 5601 #kibana打开的端口
//7行 server.host: "0.0.0.0" #kibana侦听的地址
//21行 elasticsearch.url: "http://192.168.126.11:9200" #和elasticsearch建立联系
//30行 kibana.index: ".kibana" #在elasticsearch中添加.kibana索引
systemctl start kibana.service
systemctl enable kibana.service
1.首次登录创建一个索引 名字:system-* ##这是对接系统日志文件
Index name or pattern
#下面输入ystem-*
2.然后点最下面的出面的create 按钮创建
3.然后点最左上角的Discover按钮,会发现system-*信息
4.然后点下面的host旁边的add,会发现右面的图只有Time和host选项了,个比较友好
Apache(192.168.126.13):
cd /etc/logstash/conf.d/
touch apache_log.conf
vim apache_log.conf
input {
file{
path => "/etc/httpd/logs/access_log"
type => "access"
start_position => "beginning"
}
file{
path => "/etc/httpd/logs/error_log"
type => "error"
start_position => "beginning"
}
}
output {
if [type] == "access" {
elasticsearch {
hosts => ["192.168.126.11:9200"]
index => "apache_access-%{+YYYY.MM.dd}"
}
}
if [type] == "error" {
elasticsearch {
hosts => ["192.168.126.11:9200"]
index => "apache_error-%{+YYYY.MM.dd}"
}
}
}
/usr/share/logstash/bin/logstash -f apache_log.conf
-----
1.宿主机浏览器,输入http://192.168.126.13,访问apache
2.输入http://192.168.126.11:9100/,查看索引信息
3.输入http://192.168.126.11:5601
点击左下角有个management选项
index patterns
create index pattern
分别创建"apache_error-*"和"apache_access-*"的索引