開源日志項目(java,zookeeper,kafka,fluentd,gohangout,clickhouse,grafana)

記一次日志項目從日志采集,分布式協調,中間件消費,到數據庫存儲管理,到圖形化界面展示

1 安裝java環境

官網下載想要的java版本,網址為:https://www.oracle.com/technetwork/java/javase/downloads/index.html

我下載的版本為jdk-12.0.1_linux-x64_bin.tar

創建目錄?

#mkdir -p /usr/local/java

解壓到/usr/local/java目錄下,

#tar -zvxf?jdk-12.0.1_linux-x64_bin.tar?

配置環境變量

#vi /etc/profile


export KAFKA_HOME=/app/kafka

export JAVA_HOME=/usr/local/java/jdk-12.0.1

export JRE_HOME=/usr/local/java/jdk-12.0.1

export CATALINA_BASE=/usr/local/tomcat

export CATALINA_HOME=/usr/local/tomcat

export CATALINA_TMPDIR=/usr/local/tomcat/temp

export CLASSPATH=/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:/app/mongodb/bin:$KAFKA_HOME/bin


# source /etc/profile

驗證是否安裝成功

#java --version

java 12.0.1 2019-04-16

Java(TM) SE Runtime Environment (build 12.0.1+12)

Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

安裝jdk成功

2安裝zookeeper

?zookeeper集群的安裝,準備三臺服務器

server1:192.168.72.134

server2:192.168.72.135

server3:192.168.72.136

? ? 1)下載zookeeper

http://zookeeper.apache.org/releases.html去下載最新版本,zookeeper-3.4.6.tar.gz

? ? 2)安裝zookeeper

先在服務器server分別執行a-c步驟

? ? a)解壓??

? ? #tar -zxvf zookeeper-3.4.6.tar.gz

? ? 創建目錄 mkdir /app

? ?#cp -r?zookeeper-3.4.6? /app/zookeeper

? ? b)配置

? ? 將conf/zoo_sample.cfg拷貝一份命名為zoo.cfg,也放在conf目錄下

dataDir,dataLogDir目錄需要提前創建出來?

#mkdir -p /app/zookeeper/zkdata

? mkdir -p /app/zookeeper/logs


?c )配置myid 文件

vi myid?

分別在server1,2,3上的配置文件里寫1,2,3


3)依次啟動server1,server2,server3

/app/zookeeper/bin/zkServer.sh start

4)檢查集群狀態

/app/zookeeper/bin/zkServer.sh status? ,1臺leader,2臺follower,說明集群啟動成功。


3安裝kafka

1)下載kafka,?http://kafka.apache.org/downloads

2)解壓縮?

tar -zvxf?kafka_2.11-2.3.0.tgz

cp -r kafka_2.11-2.3.0? /app/kafka

3)修改配置文件?

vi /app/kafka/config/server.properties ,server2,3, broker.id 分別改為2,3 ,其余配置項都一樣


log.dirs 地址可以先不用創建,在首次啟動kafka的時候,會自動進行創建。

zookeeper.connect 配置成zookeeper 集群的IP,端口

4)啟動broker ,分別啟動server1,2,3?
這個是在啟動broker之前需要保證zookeeper集群是運行著的,查看zookeeper集群狀態


? ? ?# /app/kafka/bin/kafka-server-start.sh? /app/kafka/config/server.properties

如果沒有出現日志錯誤,就使用下面的命令:

 # nohup /app/kafka/bin/kafka-server-start.sh? /app/kafka/config/server.properties > logs/server-start.log 2>&1 &

  其中,server-start.log是自己寫的一個log文件,在原有的文件logs下面是沒有的。

檢驗是否成功,查看進程ps -ef | grep kafka 或者jps

4安裝fluentd

fluentd是一款優秀的開源日志收集工具,td-agent 為穩定的,分布式的fluentd ,且易于安裝。

1)預安裝

a)Set up NTP,詳細https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

b)Increase Max # of File Descriptors


c) Optimize Network Kernel Parameters

2)安裝td-agent ,? CentOS and RHEL 6, 7 64bit are currently supported.

# curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh

3)修改td-agent的配置文件


<match dmesg_2019>

? @id kafka.access1

? @type kafka_buffered

? @log_level info

? include_tag_key true

? brokers 192.168.72.134:9092,192.168.72.135:9092,192.168.72.136:9092? #kafka brokers的IP,端口號

? default_topic demsg_sys? #把日志采集到kafka中,topic 名稱為demsg_sys

? output_data_type? "json"

? output_include_tag? true

? output_include_time? true

? # get_kafka_client_log? true

? #? ? ? max_send_retries 3

? <buffer>

? ? @type file

? ? path /var/log/td-agent/buffers/dmesg_2019.buffer? #自己配置路徑

? ? flush_mode interval

? ? retry_type exponential_backoff

? ? flush_thread_count 2

? ? flush_interval 5s

? ? retry_forever

? ? retry_max_interval 30

? ? chunk_limit_size 2M

? ? queue_limit_length 8

? ? overflow_action block

? </buffer>

</match>

<source>

? @id dmesg_2019.log

? @type tail? ?#從日志文件的最后追加的部分會采集到

? time_key time_local

? path /var/log/dmesg? ?#需要采集的日志來源文件路徑

? pos_file /var/log/td-agent/dmesg_2019.log.pos? ??#自己配置路徑

? tag dmesg_2019? ?#與開頭的<match *** >同步

? format /^(?<message>[^.*].*)/ #將日志格式化成一條消息

? read_from_head true

</source>


4)啟動td-agent

systemctl start td-agent.service?

5)驗證日志是否采集到kafka中

打一條日志到/var/log/dmesg文件中

echo "Today is last work day before National Day" >> /var/log/dmesg

在kafka上查看消費情況

./kafka-console-consumer.sh --bootstrap-server 192.168.72.134:9092,192.168.72.135:9092,192.168.72.136:9092 --topic demsg_sys

5安裝clickhouse

1)首先,您需要添加官方存儲庫:

sudo yum install yum-utils

sudo rpm --import https://repo.yandex.ru/clickhouse/CLICKHOUSE-KEY.GPG

sudo yum-config-manager --add-repo https://repo.yandex.ru/clickhouse/rpm/stable/x86_64

如果您想使用最新版本,請將stable替換為testing(建議您在測試環境中使用)。

2)然后運行這些命令以實際安裝包:

sudo yum install clickhouse-server clickhouse-client

3)啟動

可以運行如下命令在后臺啟動服務:

sudo service clickhouse-server start

可以在/var/log/clickhouse-server/目錄中查看日志。

如果服務沒有啟動,請檢查配置文件?/etc/clickhouse-server/config.xml。

你也可以在控制臺中直接啟動服務:

clickhouse-server --config-file=/etc/clickhouse-server/config.xml

在這種情況下,日志將被打印到控制臺中,這在開發過程中很方便。 如果配置文件在當前目錄中,你可以不指定‘--config-file’參數。它默認使用‘./config.xml’。

你可以使用命令行客戶端連接到服務:

clickhouse-client

默認情況下它使用‘default’用戶無密碼的與localhost:9000服務建立連接。?

4)建表,創建一張表存儲想要從kafka中存儲的字段,加一列date字段。

CREATE TABLE cms.dmesg_sys2 (`date` Date, `message` String, `time` DateTime, `tag` String) ENGINE = MergeTree(date, (message, date), 8192);

6安裝gohangout

利用工具gohangout將kafka內的數據打到clickhouse,詳細信息請參閱?https://github.com/childe/gohangout

1)下載編譯后二進制文件

https://github.com/childe/gohangout/releases?直接下載

我下載的是最新的 gohangout-linux-x64-dc56981,加上執行權限

chmod +x?gohangout-linux-x64-dc56981

2)編輯配置文件

vi config.yml


inputs:

? ? - Kafka:

? ? ? ? topic:

? ? ? ? ? ? demsg_sys: 1? #kafka里的topic名稱

? ? ? ? codec: json

? ? ? ? consumer_settings:

? ? ? ? ? ? bootstrap.servers: "192.168.72.134:9092,192.168.72.135:9092,192.168.72.136:9092"? ?#kafka brokers的IP,端口

? ? ? ? ? ? group.id: gohangout.dmesg

filters:

? ? - Date:

? ? ? ? location: 'Asia/Shanghai'

? ? ? ? src: time

? ? ? ? target: 'time'

? ? ? ? formats:

? ? ? ? ? ? - 'UNIX'

outputs:

? ? - Clickhouse:

? ? ? ? table: 'cms.dmesg_sys2'? #clickhouse里創建的庫名,表名

? ? ? ? hosts:

? ? ? ? ? ? - 'tcp://localhost:9000'? ?#clickhouse地址

? ? ? ? fields: ['message','time','tag']? #要從kafka訂閱的列

? ? ? ? username: 'default'? ?#clickhouse 用戶名

? ? ? ? password: ""? ? ? ? ? ? #clickhouse default 默認無密碼

? ? ? ? bulk_actions: 1000

? ? ? ? flush_interval: 30

? ? ? ? concurrent: 1


3)啟動gohangout

./gohangout-linux-x64-dc56981 --config config.yml

4)驗證

向日志文件打印一條消息

echo "I am so happy today" >> /var/log/dmesg

在kafka看到消費端已經消費此條消息,

./kafka-console-consumer.sh --bootstrap-server 192.168.72.134:9092,192.168.72.135:9092,192.168.72.136:9092 --topic demsg_sys

最后,在clickhouse里查詢表cms.dmesg_sys2, 可以看到數據最終存儲到了clickhouse里面


后續:后續關于clickhouse物化視圖及 grafana展示待下篇文檔繼續。。。未完待續。。。敬請期待。。。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內容