Google Code Prettify

2020年5月3日 星期日

安裝 docker-elk

要使用 ELK,有高手已經準備好 docker 的版本,安裝設定會比較容易,這裡就整理一下 docker-elk 的安裝 (這裡假設 Ubuntu 裡已經安裝好 git、docker 及 docker-compose)。
  1. 從 github 下載
  2. git clone https://github.com/deviantony/docker-elk
    
    下載完當然就差不多如下圖所示,所有東西都在 docker-elk 目錄裡。
  3. 執行 docker-compose 啟動 ELK
  4. 在 docker-elk 目錄裡有個 docker-compose.yml,可以透過 docker-compose 操作 ELK,啟動的指令如下,預設的帳密是 elastic / changeme:
    docker-compose up -d
    
    第一次執行需要幾分鐘的時間,啟動後以 docker ps 查看,應該可以看到三個 container 在執行 (elasticsearch、logstash、kibana),並且可以看到,它們用的 port 為 9200、5000 及 5601,這些都是在 docker-compose.yml 中定義的。
  5. 測試 elasticsearch
  6. 用 curl 對 elasticsearch request 試看看:
    curl http://localhost:9200 -u elastic:changeme
    
    看到以下回應,就是成功了。
  7. 測試 Kibana
  8. 我的 Ubuntu 的 IP 是 192.168.0.155,所以我在瀏覽器上輸入 http://192.168.0.155:5601,會出現要輸入帳密的登入畫面,輸入預設的 elastic / changeme 後,會出現如下畫面: 
    確定 Kibana 也正常執行了。
  9. 測試 logstash
  10. 現在修改一下 docker-compose.yml,讓 logstash 可以用 tcp 5000 port 接收資料及用 udp 12201 port 接收資料,如下:
    接著再修改 ~/docker-elk/logstash/pipeline/logstash.conf,加入紅框的部份,表示要接收 udp 12201 port 的資料,如下: 
    按【ctrl-C】關閉 docker-elk,然後再重啟一次,再啟動後執行以下指令:
    curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern' \
        -H 'Content-Type: application/json' \
        -H 'kbn-version: 7.6.2' \
        -u elastic:changeme \
        -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'
    
    這個指令會在 Kibana 建立一個 index pattern,然後執行以下指令,發出訊息到 ELK,看看 Kibana 會怎麼顯示。
    docker run --log-driver=syslog --log-opt syslog-address=tcp://0.0.0.0:5000 --log-opt syslog-facility=daemon alpine echo hello world tcp
    docker run --log-driver=gelf --log-opt gelf-address=udp://0.0.0.0:12201 alpine echo hello world udp
    
    然後查看 Kibana,可以看到如下的顯示:
    表示 docker 的 log 確實經由 logstash 的 tcp 5000 port 及 udp 12201 port 送到 Kibana 了。

2020年5月1日 星期五

Ubuntu 上的 PPPoE 設定

中華電信的光世代 ADSL,沒有特別申請的話,連接上去是動態 IP,如果想要固定 IP 可以到官網申請,申請核可後,電腦需以 PPPoE 的方式撥接上去取得該固定 IP,在 Ubuntu 中,方法如下:
  1. 安裝
  2. sudo apt install net-tools
    sudo apt-get install pppoeconf
    
  3. 設定
  4. sudo pppoeconf
    
    除了帳號、密碼外,每個選項都用預設值,直接按【ENTER】,帳號的部份要特別注意,中華電信給的帳號可能為 74669091,在這裡要輸入 74669091@ip.hinet.net
  5. 撥接
  6. sudo pon dsl-provider
    
  7. 中斷連線
  8. sudo poff -a
    
  9. 觀察
  10. 撥接上去後,透過 ifconfig -a 可以看到類似下面的內容,顯示有張網卡綁定了固定 IP。
    另外在 /etc/ppp 目錄下,chap-secrets 和 pap-secrets 兩個檔案裡,可以查到撥接的帳號、密碼。