<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
打造一個帥氣的監控需要什麼:
前提是elk叢集和Grafana安裝完畢,google上請自行搜尋安裝,這裡不寫了。
log_format main '{"@timestamp":"$time_iso8601",' '"@source":"$server_addr",' '"hostname":"$hostname",' '"ip":"$remote_addr",' '"client":"$remote_addr",' '"request_method":"$request_method",' '"scheme":"$scheme",' '"domain":"$server_name",' '"referer":"$http_referer",' '"request":"$request_uri",' '"args":"$args",' '"size":$body_bytes_sent,' '"status": $status,' '"responsetime":$request_time,' '"upstreamtime":"$upstream_response_time",' '"upstreamaddr":"$upstream_addr",' '"http_user_agent":"$http_user_agent",' '"https":"$https"' '}';
[xxx@localhost ~]# cat /etc/logstash/conf.d/nginx_access.conf input { file { ## 修改你環境nginx紀錄檔路徑 path => "/var/logs/xxx/access/*.log" ignore_older => 0 codec => json } } filter { mutate { convert => [ "status","integer" ] convert => [ "size","integer" ] convert => [ "upstreatime","float" ] convert => ["[geoip][coordinates]", "float"] remove_field => "message" } # grok { # patterns_dir => [ "/etc/logstash/patterns.d" ] # match => { "message" => "%{NGINXACCESS}"} # } date { match => [ "timestamp" ,"dd/MMM/YYYY:HH:mm:ss Z" ] } geoip { source => "client" ##紀錄檔格式裡的ip來源,這裡是client這個欄位(client":"$remote_addr") target => "geoip" database =>"/usr/share/GeoIP/GeoLite2-City.mmdb" ##### 下載GeoIP庫 add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { remove_field => "timestamp" } if "_geoip_lookup_failure" in [tags] { drop { } } ### 如果解析的地址是內網IP geoip解析將會失敗,會生成_geoip_lookup_failure欄位,這段話的意思是如果內網地址 drop掉這個欄位。 } output { elasticsearch { hosts => ["xxx:9200","xxxx:9200","xxxx:9200"] index => "logstash-nginx-test-xxxx_%{+YYYY-MM}" user => xxxx password => xxxx } stdout { codec => rubydebug } }
Logstash 分為 Input、Output、Filter、Codec 等多種plugins。
Input
:資料的輸入源也支援多種外掛,如elk官網的beats、file、graphite、http、kafka、redis、exec等等等、、、
Output
:資料的輸出目的也支援多種外掛,如本文的elasticsearch,當然這可能也是最常用的一種輸出。以及exec、stdout終端、graphite、http、zabbix、nagios、redmine等等、、、
Filter
:使用過濾器根據紀錄檔事件的特徵,對資料事件進行處理過濾後,在輸出。支援grok、date、geoip、mutate、ruby、json、kv、csv、checksum、dns、drop、xml等等、、
Codec
:編碼外掛,改變事件資料的表示方式,它可以作為對輸入或輸出執行該過濾。和其它產品結合,如rubydebug、graphite、fluent、nmap等等。
具體以上外掛的細節可以去官網,介紹的挺詳細的。下面說下該篇中的組態檔的含義:
file
:使用file 作為輸入源
path
: 紀錄檔的路徑,支援/var/log*.log,及[ “/var/log/messages”, “/var/log/*.log” ] 格式
start_position
: 從檔案的開始讀取事件。另外還有end引數
ignore_older
: 忽略早於24小時(預設值86400)的紀錄檔,設為0,即關閉該功能,以防止檔案中的事件由於是早期的被logstash所忽略。
grok
:資料結構化轉換工具
match
:匹配條件格式,將nginx紀錄檔作為message變數,並應用grok條件NGINXACCESS進行轉換
geoip
:該過濾器從geoip中匹配ip欄位,顯示該ip的地理位置
source
:ip來源欄位,這裡我們選擇的是紀錄檔檔案中的最後一個欄位,如果你的是預設的nginx紀錄檔,選擇第一個欄位即可(注:這裡寫的欄位是/opt/logstash/patterns/nginx 裡面定義轉換後的)
target
:指定插入的logstash字斷目標儲存為geoip
database:geoip
資料庫的存放路徑
add_field
: 增加的欄位,座標經度
add_field
: 增加的欄位,座標緯度
mutate
: 資料的修改、刪除、型別轉換
convert
: 將座標轉為float型別
convert
: http的響應程式碼欄位轉換成 int
convert
: http的傳輸位元組轉換成int
replace
: 替換一個欄位
remove_field
: 移除message 的內容,因為資料已經過濾了一份,這裡不必在用到該欄位了。不然會相當於存兩份
date
: 時間處理,該外掛很實用,主要是用你紀錄檔檔案中事件的事件來對timestamp進行轉換,匯入老的資料必備!在這裡曾讓我困惑了很久哦。別再掉坑了
match
:匹配到timestamp欄位後,修改格式為dd/MMM/yyyy:HH:mm:ss Z
mutate
:資料修改
remove_field
: 移除timestamp欄位。
elasticsearch
:輸出到es中
host
: es的主機ip+埠或者es 的FQDN+埠
index
: 為紀錄檔建立索引logstash-nginx-access-*,這裡也就是kibana那裡新增索引時的名稱
GeoIP過濾器的版本4.0.0和更高版本使用MaxMind GeoLite2資料庫並支援IPv4和IPv6查詢。 4.0.0之前的版本使用傳統的MaxMind GeoLite資料庫,僅支援IPv4查詢。
cd /usr/local/src/ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm [root@localhost src]# cat /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 yum makecache yum repolist yum install geoipupdate vim /etc/GeoIP.conf ProductIds GeoLite2-City mkdir /usr/share/GeoIP geoipupdate ll /usr/share/GeoIP
啟動logstash
nohup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/nginx_access.conf &
1.進grafana面板,type選擇elasticsearch
2.url填寫http://127.0.0.1:9200, access選proxy
3.index-name寫上之前組態檔裡的索引名稱
4.version選5.x
等一會就會出來文章開頭的第一個圖了 ~~
以上就是ELK Grafana打造視覺化監控來分析nginx紀錄檔 的詳細內容,更多關於ELK Grafana打造視覺化監控來分析nginx紀錄檔 的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45