問題描述:
- 按照項目計划,今天上線部署日志系統(收集線上的所有日志,便於問題排查)。
- 運維按照以前的部署過程,部署elasticsearch,部署結束之后,通過x-pack的monitor發現elasticsearch的索引速度只有幾百/秒的索引速度,遠遠小於同樣的配置,沒有做優化的另一個es集群。問題就產生了,什么原因呢
問題定位:
- 下午比較忙,沒有時間排查問題,就讓另個同事,排查,下午下班的時候去問什么原因,同事告訴我說是,logstash問題,我信了,因為他對比了以前的logstash 配置,消費kafka主題的配置從以前的topics_pattern=>["server1.history","server2.history"]變更為了topics_pattern => [".*history"];對於這個回答我信了,我問他對比測試過了?,回答說給了肯定的回答。那好,找到問題,可以去吃飯了。
- 結果到了晚上,8點從公司外面回來,同事過來和我說,還是有問題。
- 正好我有空,我就自己來排查,雖然過程麻煩了點
- 首先我排查:同事說的kafka的數據產生的慢的問題;我自己用消費命令消費一個產數據很多的topic的最新數據,kafka-console-consumer.sh --bootstrap-server:localhost:9092 --topic server.history ;肉眼看明顯數據產生並不慢。那么問題並不是kafka的問題。我也沒見過kafka會出現大問題
- 然后,我排查logstash的消費快慢問題;我把logstash的output配置成stdout.肉眼看明顯消費也不慢。那么問題也不是logstash的消費慢的問題
- 剩下的排查點就是logstash的output的問題了。改成elasticsearch之后,發現進入elasticsearch的數據幾百/秒,可見問題很大在elasticsearch這邊
- 我果斷的把一個logstash的output的目標給為另一個正常的,速度較快elasticsearch集群。馬上發現,這個集群elasticsearch的索引速度一下就是幾千每秒(還沒做優化,后期優化之后是幾萬每秒)。說明問題在新的elasticsearch集群
- 簡單對比了一下集群配置,沒有什么大的區別,發了個問題在群里“新的elasticsearch集群和以前的有什么區別”。我以為會得到答案:“沒有區別”,
- 結果答案是“這次的使用的磁盤是阿里雲的oss磁盤”。我反正不懂這是什么磁盤。然后我登到elasticsearch服務器上看
[root@online-log-elasticsearch-002 ~]# top
top - 21:53:28 up 1 day, 10:30, 1 user, load average: 2.16, 1.98, 1.65
Tasks: 94 total, 2 running, 92 sleeping, 0 stopped, 0 zombie
%Cpu(s): 15.4/12.0 27[||||||||||||||||||||||||||| ]
KiB Mem : 8010196 total, 507524 free, 7048124 used, 454548 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 702952 avail Mem
add filter #1 (ignoring case) as: [!]FLD?VAL
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21285 elastic 20 0 1850420 36896 1812 S 102.2 0.5 736:00.98 ossfs online-all-log /data/ -ourl=http://oss-cn-hangzhou-internal.aliyuncs.com
16719 elastic 20 0 9.857g 6.518g 11656 S 11.0 85.3 3:24.11 /usr/jdk1.8.0_162/bin/java -Xms6g -Xmx6g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75+
- 從top中可以看到,21285 elastic 20 0 1850420 36896 1812 S 102.2 0.5 736:00.98 ossfs online-all-log /data/ -ourl=http://oss-cn-hangzhou-internal.aliyuncs.com ossfs 服務占了100%上下的cpu 。問題定位到了。發了個郵件出來。
- 第二天,運維重新換磁盤。換了磁盤之后。問題解決。
問題解決過程反思:
- 排查問題,要一步一步來,確定問題點,才能解決問題。猜測是沒有辦法解決問題的。而且猜測了要去論證