日誌系統源碼
❶ 監控一個持續刷新的日誌文件/var/log/messages,命令是什麼/var/log/messages
Zabbix Advance - linux log monitor 日誌監控(/var/log/messages,/var/log/secure,其它程序日誌皆可) 原創
2020-09-11 10:43:40
2點贊
Fei-Huang
碼齡12年
關注
文章目錄
日誌監控原理
本文檔示例版本與官方使用文檔
配置過程
一,被監控的主機上配置zabbix_agentd.conf
二,修改日誌文件的許可權
修改前日誌文件的許可權:
修改日誌文件的許可權
查看修改後的文件許可權
三,配置zabbix web item頁面(監控root用戶登陸)
root用戶登陸測試慶凳皮
配置告警(trigger)
最終配置
再次測試root登陸
日誌監控原理
zabbix 監控日誌,主要是用於監控日誌中的關鍵字,遇到關鍵字後,zabbix agent 將日誌發送給server。日誌監控必需是agent active的監控項目
本文檔示例版本與官方使用文檔
官方文檔鏈接
配置過程
一,被監控的主機上配置zabbix_agentd.conf
[root@GuangGu_Zabbix_proxy ~]# egrep -v "#|^$" /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=X.X.X.X
ServerActive=X.X.X.X
Hostname=Zabbix_lOG
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
ServerActive=X.X.X.X
Hostname=Zabbix_lOG
以上兩個參數配置對日誌很重要,agent active 在發送數據給server端時,會將配置文件中的hostname的值做為一個值攜帶給服務端,zabbix_server收到發送過來的數據後會主動匹配這個值,是否與自己配置的主機的粗賀hostname一致,一致即接收數據,放置在資料庫中。
二,修改日誌文件的許可權
通常情況下,/var/log/目錄下的系統日誌文件只有root用戶有相應的讀寫許可權,而zabbix對這些文件需要有讀取的譽差許可權,否則無法監控,所以在不更改屬主屬組的情況下,使用==「facl」== 添加文件許可權比較合適,以下為示例:
修改前日誌文件的許可權:
[hostname]# ls -l /var/log/messages
-rw------- 1 root root 138063 Sep 11 08:10 /var/log/messages
1
2
1
2
只有root用戶有讀寫許可權,其它的用戶均沒有許可權
修改日誌文件的許可權
setfacl -m u:zabbix:r-- /var/log/messages
1
1
查看修改後的文件許可權
[root@GuangGu_Zabbix_proxy ~]# ls -l /var/log/messages
-rw-r-----+ 1 root root 193670 Sep 11 09:10 /var/log/messages
1
2
1
2
[root@GuangGu_Zabbix_proxy ~]# getfacl /var/log/messages
getfacl: Removing leading '/' from absolute path names
# file: var/log/messages
# owner: root
# group: root
user::rw-
user:zabbix:r--
group::---
mask::r--
other::---
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
user:zabbix:r-- 可以看到zabbix用戶有r的許可權了
但是這條命令只設置了當前的/var/log/messages的文件的許可權,這個日誌文件是會隨日期滾動的所以還需要設置一下日誌滾動後的zabbix用戶的許可權,此時還需要修改另外一個文件的內容:
[root@hostname~]# vim /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/usr/bin/setfacl -m u:zabbix:r-- /var/log/messages
endscript
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
logrotate 不是守護進程的服務,所以不需要重啟
三,配置zabbix web item頁面(監控root用戶登陸)
key : log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]
/var/log/messages 中 root 用戶登陸的日誌記錄如下:
Sep 11 09:30:01 LOGMONITOR systemd: Started Session 6787 of user root.
1
1
幾個注意點:
類型必需是「zabbix agent active」的
信息類型必需是「日誌」型的
log[/var/log/messages, Started Session .* of user root.$,skip,]
root用戶登陸測試
Sep 11 09:44:47 LOGMONITOR systemd-logind: New session 6789 of user root.
Sep 11 09:44:47 LOGMONITOR systemd: Started Session 6789 of user root.
Sep 11 09:44:47 LOGMONITOR systemd: Starting Session 6789 of user root.
1
2
3
1
2
3
以上三條是登陸產生的日誌
查看zabbix監控的消息記錄
點擊「歷史記錄查看」
zabbix已經收到相關日誌
配置告警(trigger)
配置告警思路:
只要zabbix收到相應條目的日誌一次,就觸發一次告警
收到告警後,如果60s內沒有再次觸發告警就消失
最終配置
再次測試root登陸
此告警60S後消失
文章知識點與官方知識檔案匹配
CS入門技能樹Linux入門初識Linux
24650 人正在系統學習中
打開CSDN APP,看更多技術內容
zabbix監控Linux進程方法_lihuaichen的博客
利用zabbixproc.num方法監控Linux服務進程 proc.num[<name>,<user>,<state>,<cmdline>] 監控用戶某些狀態的進程的數量 name- 進程名稱 (默認「all processes」)user- 用戶名 (默認 「all users」)state- 可用值:all(默認),run,sl...
繼續訪問
zabbix監控遠程linux伺服器基礎操作_今天摘太陽的博客_linu...
查看添加的監控主機的最新數據是否監控到數據。4. 通過web頁面配置linux監控,添加監控主機及套用模板設置。 zabbix監控Linux流程 m0_52091913的博客 312 zabbix監控Linux流程,郵件警告 遠程監控 linux伺服器軟體,如何從Web瀏覽器遠程監控...
繼續訪問
log_monitor日誌監控
對qps以及介面的平均耗時進行統計 特點 (1)輕量: 共219KB(代碼量約300行), 無需安裝,解壓即可使用 (2)低侵入: 基於日誌文件進行統計,無需修改原程序 使用說明 (1) 二進制包:下載工具包 log_monitor.tar.gz,並解壓 (2) 源碼編譯:make 之後進行參數配置,可以拷貝現有的,各個參數說明如下: log_file=/data/nginx_logs/access.log log_reg=
(.∗)\+0800
(.∗)\+0800
time_format=%d/%b/%Y:%H:%M:%S retain_seconds=3600 http_port=3344 log_level=INFO log_file: 需要監控的日誌的路徑 log_reg: 需要匹配的日期以及耗時信息的正則表達式(需要加括弧) time_format: 日誌中日期的格式 retain_seconds: 統計數據保留時間 http_port: 用來通過頁面展示統計數據的埠 log_level: log monitor的日誌級別 啟動 ./bin/log_monitor [conf_file_path] 查看 (1) 在控制台就可以看到系統實時的qps以及每一秒中介面的平均耗時情況 (2) 通過瀏覽器訪問 http://${ip}:{http_port}/show.html
Zabbix監控之Linux命令行/Shell腳本解析json
本文主要寫了在Linux下如何用Shell腳本解析json數據,以便於在Zabbix中添加適合於業務應用的監控項。為什麼要使用json?json作為一種文本化的數據格式(文本化協議),符合UNIX編程的哲學,既符合透明性(透明性:設計可見,便於審查和調試)又符合文本性(文本性:數據應該保存為文本文件)。關鍵在於json對Web程序或者java程序非常友好,對於開發人員來說,他們也喜歡使用json數...
繼續訪問
linux啟動zabbix服務,zabbix監控Linux系統服務_鄧琨騰的博客
Zabbix自動發現規則監控Linux系統的service units 項目要求:通過systemctl命令查看Linux系統的service units; 監控前提:zabbix環境已搭建好; 監控原理:通過shell腳本把systemctl命令返回的結果以json格式發送到zabbix; ...
繼續訪問
zabbix自動監控linux進程,zabbix遠程命令-監控進程停掉後自動重啟應用...
6.在驗證遠程命令的可用性之後,在zabbix前端頁面添加監控項,設置觸發器,並添加執行遠程命令的動作。 7.添加監控項: 自定義名稱,類型為zabbix客戶端,鍵值為proc.num[,,,httpd],其他自定義,點擊添加。
繼續訪問
zabbix監控日誌
zabbix監控日誌
繼續訪問
linux的數據清洗視頻,Zabbix監控歷史數據清理
Zabbix監控運行一段時間以後,會留下大量的歷史監控數據,Zabbix資料庫一直在增大;可能會造成系統性能下降,查看歷史數據室查詢速度緩慢。Zabbix裡面最大的表就是history和history_uint兩個表,而且zabbix裡面的時間是使用的時間戳方式記錄,所以可以根據時間戳來刪除歷史數據一、關閉zabbix、http服務pkill -9 zabbixservice httpd stop...
繼續訪問
zabbix3.4監控linux磁碟使用率_一文看懂Linux全能型監控命令--dstat...
在linux上有top、free、iostat、vmstat、netstat等諸多監控系統各項性能的工具,如top,可以實時監控到系統負載、內存等使用情況,iostat能監控系統I/O情況,而vmstat可以得到關於進程、內存、內存分頁、堵塞IO、traps及CPU活動的信息。不過今天主...
繼續訪問
Zabbix監控Linux進程方法
利用zabbix proc.num方法監控Linux服務進程 proc.num[<name>,<user>,<state>,<cmdline>] 監控用戶某些狀態的進程的數量 name - 進程名稱 (默認「all processes」) user - 用戶名 (默認 「all users」) state - 可用值: all (默認), run,sleep, zomb cmdline - 命令行過濾(正則表達時) 一、首先新建一個模板,在監控項條目中新
繼續訪問
關於/var/log/messages文件
/var 包括系統運行時要改變的數據。其中包括每個系統是特定的,即不能夠與其他計算機共享的目錄,如/var/log,/var/lock,/var/run。有些目錄還是可以與其他系統共享,如/var/mail, /var/cache/man, /var/cache/fonts,/var/spool/news。var目錄存在的目的是把usr目錄在運行過程中需要更改的文件或者臨時生成的文件及目錄提取出來
繼續訪問
@Zabbix常用的監控命令及監控分析
文章目錄一、面試技巧1.面試常問二、單機監控命令1.CPU 監控命令2.內存監控命令3.磁碟監控命令4.網路監控命令5.TCP11種狀態監控命令6.生產場景需求7.系統的oom(out of memory)8.使用腳本監控nginx三、zabbix資料庫拆分1.環境准備2.導出原Mysql中的zabbix數據3.准備新的資料庫環境4.關閉原來的資料庫測試5.修改連接資料庫代碼 一、面試技巧 1.面試常問 #1.面試官:你們公司監控是如何做的? 你:用zabbix 面試官:.... #2.面試技
繼續訪問
最新發布 zabbix日誌監控:操作系統、業務系統、文件大小、多行日誌
(一)監控操作系統日誌 (二)監控業務系統日誌 (三)監控日誌文件大小 (四)多行日誌監控- Python腳本優化
繼續訪問
zabbix 時間錯誤_使用Zabbix來監控系統日誌
在Linux系統上,日誌文件通常可以分為四類:System Logs(系統日誌)Event Logs(事件日誌)Application Logs(應用程序日誌)Service Logs(服務日誌)一、為什麼要監控日誌?Linux為了跟蹤和監視系統(內核)各個組件及應用程序運行狀態而將產生的相關事件存儲到日誌文件中,當系統或者應用程序出現問題時,系統管理員能根據日誌定位到問題。而通過監控Linux的...
繼續訪問
【Docker學習】13、使用 Docker/Docker-Compose 部署 Prometheus 監控組件
文章目錄1、Prometheus 監控組件(1)Prometheus 監控 Linux(2)Prometheus 監控 Docker(3)Prometheus 監控 MySQL 1、Prometheus 監控組件 從上面的構建可以發現,現在已經可以監控當前Linux主機了,實際上能監控的內容很多,可以在官網查看,監控內容或社區查找 搭建各種組件的監控,首先需要找到提供數據的數據源,當然,Prometheus已經給我們寫好了配置,我們只需要在找到對應的配置進行安裝即可,Prometheus GitHub,例如
繼續訪問
Linux從入門到放棄 zabbix常見的linux監控命令
cpu top htop uptime vmstat 內存 free 磁碟 df iotop 網卡 iftop nethogs 系統進程 ps pstree
繼續訪問
zabix監控linux進程名稱,zabbix監控Linux進程方法
利用zabbixproc.num方法監控Linux服務進程proc.num[,,,]監控用戶某些狀態的進程的數量name- 進程名稱 (默認「all processes」)user- 用戶名 (默認 「all users」)state- 可用值:all(默認),run,sleep,zombcmdline-命令行過濾(正則表達時)具體監控某一服務進程的方法一、首先新建一個模板,在監控項條目中新建一...
繼續訪問
zabbix監控Linux流程
zabbix監控Linux流程,郵件警告
繼續訪問
zabbix監控linux文件目錄,zabbix之日誌文件監控
一、日誌item介紹下面介紹zabbix另一個「重量級」的功能——日誌文件監控,它最主要的是監控日誌文件中有沒有某個字元串的表達式,對應日誌輪轉與否,zabbix都支持。在配置Item的時候,Type選擇Zabbix agent (active),這里主要需要配置的是Key。下面是監控日誌的兩種key——log和logtr。log[/path/to/some/file,,,,,]logtr[/pa...
繼續訪問
監控linux日誌,Zabbix日誌監控:Linux異常登錄告警
本文利用zabbix的日誌監控功能監控Linux的secure日誌,當有用戶登錄失敗或者用戶在非常規時間登錄成功時發出告警。這里我們使用zabbix提供的'log[file,,,,,]'來監控Linux的/var/log/secure文件。先介紹下這個log監控項:1)監控項類型是Zabbix agent (active),返回數據類型是Log。2)Zabbix agent要對監控的日誌文件有可讀...
繼續訪問
Zabbix監控日誌
創建監控項 創建觸發器 驗證 問題定位 創建監控項 注意要選擇客戶端主動式,使用主動式的時候無法使用zabbix-get工具調試 鍵值示例:log[/home/moa/log/smapd/smapd.log,」info」,,,skip,,] 說明:1、/home/moa/log/smapd/smapd.log表示日誌路徑 2、」info」表示匹配的關鍵字...
繼續訪問
zabbix監控日誌關鍵字(ERROR)
前言:對我我這種剛入職場不久的小運維來說其實這個對我來說真的挺難得,研究了好久也在朋友的幫助下終於成功了,在此多謝我的朋友(倪偉)。 公司沒有zabbix監控,領導讓搭建一套zabbix然後讓監控錯誤日誌(關鍵字error),其實據說牛掰的大神可以監控到具體報錯信息是什麼,如有大神能編寫出來歡迎指教。 因為就是想讓他提醒一次就不在提醒了,所以腳本我寫了半天(不擅長啊) 我zabbix搭建的過...
繼續訪問
熱門推薦 Linux實時查看文件/var/log/messages以及這個文件的問題
耐心看完說不定有你遇到的問題 1./var/log/messages 首先說一下這個文件的存在,在Ubuntu系統中,這個文件你訪問可能提示找不到這個文件 //使用tail命令訪問 name@name:~$ sudo tail /var/log/messages tail:無法打開'/var/log/messages' 讀取數據: 沒有那個文件或目錄 tail:沒有剩餘文件 可能會出現...
繼續訪問
Zabbix使用總結
1. CentOS 7上啟動zabbix-server失敗,/var/log/messages中的報錯信息如下: Feb 22 12:56:43 mysql-server1 systemd: Starting Zabbix Server with MySQL DB... Feb 22 12:56:43 mysql-server1 kernel: zabbix_server[1599]: s
繼續訪問
zabbix監控linux歷史命令
zabbix
寫評論
評論
3
❷ android系統源代碼情景分析 需要具備什麼基礎知識
Android系統的源代碼非常龐大和復雜,我們不能貿然進入,否則很容易在裡面迷入方向,進而失去研究它的信心。我們應該在分析它的源代碼之前學習好一些理論知識,下面就介紹一些與Android系統相關的資料。
我們知道,Android系統是基於Linux內核來開發的,在分析它在運行時庫層的源代碼時,我們會經常碰到諸如管道(pipe)、套接字(socket)和虛擬文件系統(VFS)等知識。此外,Android系統還在Linux內核中增加了一些專用的驅動程序,例如用於日誌系統的Logger驅動程序、用於進程間通信的Binder驅動程序和用於輔助內存管理的匿名共享內存Ashmem驅動程序。在分析這些Android專用驅動程序的時候,也會碰到Linux內核中與進程、內存管理相關的數據結構。因此,我們有必要掌握一些Linux內核的基礎知識,下面就介紹四本典經的Linux內核書籍。
1.Linux Kernel Development.
這本書的作者是Robert Love,目前最新的版本是第3版。這本書對Linux內核的設計和實現提供了一個總覽視圖,從概念上對Linux內核的各個子系統的設計目標和實現思路進行了清晰的描述,非常適合初學者閱讀。如果從軟體工程的角度來看,這本書就相當於是Linux內核的概要設計文檔。
2.Understanding the Linux Kernel.
這本書的作者是Daniel P. Bovet和Marco Cesati,目前最新的版本是第3版。這本書對Linux內核的實現提供了更多的細節,詳細地描述了內核開發中用到的重要數據結構、演算法以及編程技巧,非常適合中高級讀者閱讀。如果從軟體工程的角度來看,這本書就相當於是Linux內核的詳細設計文檔。
3.Linux Device Drivers.
這本書的作者是Jonathan Corbet, Alessandro Rubini和Greg Kroah-Hartman,目前最新的版本是第3版。這本書更加註重實際操作,它詳細地講解了Linux內核驅動程序的實現原理和實現方法,讀者可以跟著它來實際地編寫出自己的Linux驅動程序。閱讀了這本書之後,對我們後續去分析Android的專用驅動程序是有非常大的幫助的。
4.Linux內核源代碼情景分析
這本書的作者是毛德操和胡希明,是中國人自己編寫的一本經典的Linux內核書籍。這本書最大的特點是從使用情景出發,對Linux內核的源代碼作了詳細的分析,幫助讀者把枯燥無味的源代碼給理順了。
掌握了Linux內核的基礎知識之後,還不宜馬上就去分析Android系統的源代碼,因為這樣做是漫無目的的,我們應該帶著問題或者目標去分析Android系統的源代碼。要把問題或者目標挖掘出來,最好的方法就莫過於是在Android平台上編寫自己的應用程序了。通過編寫應用程序,我們可以知道Android平台都提供了哪些功能,進而我們就會想去了解這些功能是怎麼實現的,這樣就可以達到帶著問題或者目標去分析Android系統的源代碼了。這里介紹兩個Android應用程序開發教程的書籍:
1.Professional Android 2 Application Development.
2.Google Android SDK開發範例大全.
這兩本書都使用了大量的例子來說明如何使用Android SDK來開發Android應用程序。讀者可以根據實際情況來練習一下,主要掌握Android應用程序四大組件(Activity、Service、Broadcast Receiver和Content Provider)的用法,因為Android系統的整個架構和實現就是為了向開發者提供這四大組件來實現各種各樣的應用程序的。在學習的過程中,如果遇到其它問題,還可以參考官方文檔
❸ 怎麼看一個網站的源碼是asp還是php還是asp.net
名鞋庫是PHP的,網頁文件後綴名是asp的則是asp源碼,是php的,則是php源碼,是aspx的,則是asp.net源碼。名鞋庫使用的是生成靜態頁設置,所以但從網址連接文件html是看不出的,要看頁面的核心源碼中是否包含了php鏈接來判斷是否采php系統。shopex是php系統
❹ 阿里強制使用SLF4J日誌框架的緣由
想必小夥伴們都用過日誌,雖然日誌看起來可有可無,但是等到出問題的時候,就比較棘手。所以說日誌框架使用好不好,規范不規范,直接影響了解決生產環境故障的效率,日誌框架選的不好、用的不好,有可能影響環境的性能,也有可能影響排查問題的難易程度。
阿里Java開發手冊--日誌規約第一條:
【強制】應用中不可直接使用日誌系統(Log4j、Logback)中的 API,而應讓顫依賴使用日誌框架 SLF4J 中的 API,使用門面模式的日誌框架,有利於維護和各個類的日誌處理方式統一。
代碼樣例:
為坦搜敗什麼會有此規范呢?我們先來了解下日誌框架。
Java中的日誌框架分如下幾種:
重點來看下Slf4j的官方說明
為什麼阿里要強制 依賴使用日誌框架 SLF4J 中的 API 或者說Slf4j的特點: 除了得益於面向介面編程(使用了門面模式),還有一個特性支持佔位符,以及SELF4J的生態(SLF4J與其他日誌組件的橋接)
門面(Facade)模式,對外隱藏了系統的復雜性,並向客戶端提供了可以訪問的介面,門面模式的好處是將客戶端和子系統松耦合,方便子系統的擴展和維護。
正是門面模式這樣的特點,使用SLF4J門面,不管日誌組件使用的是log4j還是logback等等,對於調用者而言並不關心使用的是什麼日誌組件,而且對於日誌組件的更換或者升級,調用的地方也不用做任何修改。
SLF4J中有一個重要的特性:佔位符,{}可以拼接任意字元串,相比如其他框架的優點即不需要用+來拼接字元串,也就不會創建新的字元串對象。
使用注意點:
小貼士:
在發布SDK或服務框架時,要遵漏伍循 面向介面編程的思想 ,不要把SLF4J實現類進行發布向下傳遞,SLF4J實現類可以通過maven的scope來控制不進行向下傳遞。
以上是使用SLF4J的緣由和注意點的說明。
Slf4j Manual中有一張圖清晰的展示了接入方式,如下:
slf4j bound to 其它log框架
slf4j bound to log redirection
在使用slf4j橋接時要注意避免形成死循環,在項目依賴的jar包中不要存在以下情況
想要更好的了解SLF4J,你需要了解JVM類載入機制
設計模式:門面模式、橋接模式。源碼解析過程這里忽略。