文章目錄[隱藏]
以往都是紙上談兵,畢竟事情也都由部門其他小伙伴承擔了,因此自己雖然也整理了筆記,當真的需要部署起來的時候,卻發現並沒有這個能力,這次也幾經磨難,總算修成正果,特此記錄一下。
首先來快速將一個簡易的環境部署起來。
其中防火牆關閉,selinux關閉等的就不多說了,系統是CentOS-7.3,干凈而且初始化過了的環境。
1,准備工作。
- 安裝一些依賴包。
yum -y install lrzsz vim curl wget java ntpdate && ntpdate -u cn.pool.ntp.org
這里java環境是非常重要的,如果不通過yum安裝,源碼方式也是可以的。但要注意配置好環境變量。
- 配置yum源。
添加源:
cat > /etc/yum.repos.d/elk.repo << EOF
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
導入key:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
如果執行這一步報錯,則有可能是主機時間問題,可以同步一下主機時間,再執行!
注:一開始我想着把elk三個安裝包都緩存下來,這樣以后安裝起來就會方便的多了,於是我這么做了,但是后來發現,經過緩存的包安裝的elk集群,使用的時候是一種沒有授權的狀態,后來想起正常安裝時有這樣一個導入key的操作,思來想去,大概就是跟這一步有關系了。最后還是老老實實的通過這樣一個流程方式進行安裝了。
2,安裝elasticsearch。
直接yum安裝。
yum -y install elasticsearch
啟動服務。
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service
systemctl status elasticsearch.service
curl localhost:9200
調整一下配置文件:
[root@elk ~]$egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-application
node.name: node-1
path.data: /logs/elasticsearch6
path.logs: /logs/elasticsearch6/log
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["elk-node1"]
discovery.zen.minimum_master_nodes: 1
xpack.security.enabled: false
cluster.name
:自定義集群名,相同集群內的節點設置相同的集群名node.name
:自定義節點名,建議統一采用節點hostnamepath.data
:data存儲路徑,這里更改成自定義以應對日志的big。path.logs
:log存儲路徑,是為es自己的日志。- 注意創建上邊兩項定義的兩個文件目錄。否則會啟動失敗。
mkdir -p /logs/elasticsearch6/log
cd /logs
chown -R elasticsearch.elasticsearch elasticsearch6/
- 注意要更改對應目錄的權限,否則es啟動會報如下錯誤。
[root@elk logs]$systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2018-12-14 15:12:48 CST; 5min ago
Docs: http://www.elastic.co
Process: 79428 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=1/FAILURE)
Main PID: 79428 (code=exited, status=1/FAILURE)
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Null object returned for RollingFile in Appenders.
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "rolling" for logger config "root"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "index_indexing_slowlog_rolling" for logger config "index.indexing.slowlog.index"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "audit_rolling" for logger config "org.elasticsearch.xpack.security....gAuditTrail"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "index_search_slowlog_rolling" for logger config "index.search.slowlog"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "deprecated_audit_rolling" for logger config "org.elasticsearch.xpac...gAuditTrail"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,085 main ERROR Unable to locate appender "deprecation_rolling" for logger config "org.elasticsearch.deprecation"
Dec 14 15:12:48 elk systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE
Dec 14 15:12:48 elk systemd[1]: Unit elasticsearch.service entered failed state.
Dec 14 15:12:48 elk systemd[1]: elasticsearch.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
network.host
:es監聽地址,采用"0.0.0.0"
,表示允許所有設備訪問。http.port
:es監聽端口,可不取消注釋,默認即此端口。discovery.zen.ping.unicast.hosts
:集群節點發現列表,也可采用ip的形式discovery.zen.minimum_master_nodes
:如果暫時是單節點部署,可以設置成1xpack.security.enabled
:添加這條,這條是配置kibana的安全機制,暫時關閉。
重啟es。
systemctl restart elasticsearch.service
systemctl status elasticsearch.service
3,安裝logstash。
直接yum安裝。
yum -y install logstash
配置logstash。
[root@elk ~]$egrep -v "^#|^$" /etc/logstash/logstash.yml
path.data: /var/lib/logstash
path.config: /etc/logstash/conf.d
path.logs: /var/log/logstash
這個地方重要的是第二條配置,同許多應用類似的,這里定義了一個include的目錄,以后我們的多個應用實例就可以直接放置在這個目錄下了,這里作為了解,后邊並不會應用配置好的logstash,原因在后邊會說。
然后定義此logstash不再使用系統管理啟動,而是以后通過命令行來起對應的logstash實例。
同時創建軟鏈接,從而讓系統能夠在/usr/share/logstash
下讀取到相對應的logstash配置信息。
systemctl disable logstash.service
ln -s /etc/logstash /usr/share/logstash/config
然后logstash先放在這里,不用啟動,對應的日志等操作,后邊就會介紹了。
4,安裝kibana
直接yum安裝。
yum -y install kibana
配置kibana。
[root@elk ~]$egrep -v "^#|^$" /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://10.100.120.82:9200"
kibana.index: ".newkibana"
xpack.security.enabled: false #添加這條,這條是配置kibana的安全機制,暫時關閉。
kibana.index
:原來默認是".kibana"
,但是新版本的kibana啟動之后發現無法訪問,訪問之后拋出一個異常:kibana server is not ready yet
,那么回來把配置更改成".newkibana"
,然后重啟kibana,再次訪問,即可成功。
啟動kibana。
systemctl enable kibana.service
systemctl restart kibana
systemctl status kibana
到這兒,基本上,作為單台的elk主機上的工作基本上已經完成,可以說非常簡單,而,戲,也從此剛剛開始而已。

原文地址:http://www.eryajf.net/2351.html