在公司服務機子部署愈來愈多的狀況下,讓咱們來想一想會遇到的問題:node
這些問題的存在讓開發以及運維人員非常頭痛,嚴重影響效率!linux
爲了解決上述問題,咱們須要一個日誌的集中管理方案,graylog技術棧:web
有了這些,咱們就能把日誌先收集起來,進行咱們想要的分析以後,web的形式展現出來,提供查詢!mongodb
安裝環境:linux centOS系統安裝,已安裝JDK1.8版本,安裝啓動順序vim
參考個人博文:linux下安裝mongodb https://my.oschina.net/baishi/blog/758367api
若是報錯安全
執行服務器
wget --no-check-certificate運維
tar -zxvf elasticsearch-2.3.5.tar.gz
elasticsearch-2.3.5安裝目錄conf下執行
vim elasticsearch.yml
cluster.name: graylog #集羣名稱建議命名graylog,便於識別區分
node.name: elasticsearch-node-92 # elasticsearch集羣節點名稱
network.host: 本身安裝節點IP # 綁定節點IP
http.port: 9200 # 外部訪問端口,默認,也能夠安全考慮修改
discovery.zen.ping.multicast.enabled: false #多播發現方式關閉,由於graylog採用單播方式發現elasticsearch集羣方式
discovery.zen.ping.unicast.hosts #多個節點用逗號隔開
discovery.zen.minimum_master_nodes: 3 # elasticsearch集羣節點,最少選舉數,這個數必定要設置爲整個集羣節點個數的一半加1,即N/2+1,必須爲奇數
新建一個elasticsearch用戶,出於安全考慮,elasticsearch服務不能使用root用戶啓動
建立elasticsearch用戶組及elasticsearch用戶,執行
groupadd elasticsearch
useradd elasticsearch -g elasticsearch -p elasticsearch
(其中-g使用戶屬於某個組,-p爲新用戶使用加密密碼)
更改elasticsearch-2.3.5文件夾及內部文件的所屬用戶及組爲elasticsearch:elasticsearch
chown -R elasticsearch:elasticsearch elasticsearch-2.3.5
切換用戶
su elasticsearch
在elasticsearch-2.3.5/bin目錄下執行
./elasticsearch -d
解釋:-d:服務在後臺啓動
瀏覽器訪問:http://elasticsearch節點所在IP:9200/
證實服務啓動成功
elasticsearch集羣安裝,各個節點,要保證elasticsearch.yml中cluster.name: graylog,集羣名稱一致
若是想中止服務
ps -ef | grep elastic
kill -9 進程號
wget https://packages.graylog2.org/releases/graylog/graylog-2.1.1.tgz
tar -zxvf graylog-2.1.1.tgz
修改安裝目錄下 graylog.conf.example 文件
vim graylog.conf.example
web_listen_uri 值是graylog啓動成功後,web服務訪問地址
rest_listen_uri 的值,是graylog啓動成功後,api訪問地址
其中 password_secret 的值用命令生成
pwgen -N 1 -s 96
其中root_password_sha2 的值使用命令生成
echo -n 123456| sha256sum (這裏對密碼123456哈希加密)
elasticsearch_cluster_name 值必須是elasticsearch配置文件中的cluster_name
elasticsearch_discovery_zen_ping_unicast_hosts 填寫elasticsearch地址,若是是多個,用逗號隔開
elasticsearch_discovery_zen_ping_multicast_enabled = false 多播模式關閉
elasticsearch集羣分片數量
elasticsearch綁定的節點IP
mongodb安裝服務的ip地址
設置告警郵件發送者信息
由於graylog安裝bin目錄下,默認啓動配置文件
配置文件路徑:/etc/graylog/server/server.conf
因此須要將 graylog.conf.example 複製到/etc/graylog/server/目錄下,而且更名 server.conf
執行命令:
mkdir -p /etc/graylog/server/
cp graylog.conf.example /etc/graylog/server/server.conf
在graylog安裝bin目錄下執行
./graylogctl start
查看日誌,在graylog安裝目錄下執行
tail -200f /log/graylog-server.log
若是報錯:
緣由:
在mongodb版本2.6以後,是須要日誌journaling設置的,而默認狀況下是關閉的
解決辦法:
在mongodb啓動命令加上 --journal
最後啓動命令:
./mongod --dbpath=/usr/local/mongodb/data/ --fork --logpath=/usr/local/mongodb/logs --storageEngine=mmapv1 --journal
重啓mongodb後,重啓graylog服務便可!
graylog啓動成功,日誌輸出
若是須要中止graylog服務,在graylog安裝bin目錄下執行
./graylogctl stop
graylog啓動成功後,瀏覽器訪問:graylog安裝IP:9000
用戶名:admin (配置文件中)
密碼:123456 (配置文件中 root_password_sha2 加密123456值)
到此,基礎的集中日誌管理graylog安裝完畢!,後續將繼續介紹:
安裝部署Graylog Collector Sidecar 收集應用日誌
採用syslog收集日誌方式
graylog一些使用,包括日誌截取,告警等
以前也實踐過ELK技術棧,後來選型graylog,是基於graylog帶有的權限管理,和告警功能比較完善!
目前遺留的問題,是後期隨着時間的積累,怎樣去維護歷史日誌數據,歡迎有相關經驗的朋友,一塊兒討論!