日志服务管理
日志服務管理
文章目錄
- 日志服務管理
- 系統日志管理
- 系統日志介紹
- sysklogd系統日志服務
- rsyslog系統日志服務
- ELK
- rsyslogd
- 系統日志術語
- rsyslog相關文件
- rsyslog配置文件
- 日志文件的格式
- ssh服務日志單獨設置
- 遠程日志功能
- 日志文件
- **日志管理工具** **journalctl**
- 網絡文件共享服務
系統日志管理
系統日志介紹
在現實生活中,記錄日志也非常重要,比如銀行的轉賬記錄,飛機上的黑盒子,那么將系統和應用發生的事件記錄至日志中,以助于排錯和分析使用
日志記錄的內容包括:
- 歷史事件:時間,地點,人物,事件
- 日志級別:事件的關鍵性程度,Loglevel
sysklogd系統日志服務
CentOS 5 之前版本采用的日志管理系統服務
- syslogd: system application 記錄應用日志
- klogd: linux kernel 記錄內核日志
事件記錄格式:
日期時間 主機 進程[pid]: 事件內容
C/S架構:通過TCP或UDP協議的服務完成日志記錄傳送,將分布在不同主機的日志實現集中管理
rsyslog系統日志服務
rsyslog是CentOS 6以后版本的系統管理服務:它提供了高性能,出色的安全性和模塊化設計。盡管rsyslog最初是常規的syslogd,但發展成為一種瑞士軍刀式的記錄工具,能夠接受來自各種來源的輸入,并將其轉換,然后輸出到不同的目的地。
當應用有限的處理時,RSYSLOG每秒可以將超過一百萬的消息傳遞到本地目的地。即使在遠程的目的地和更精細的處理中,性能通常也被認為是驚人的”。
http://www.rsyslog.com/ —官網
rsyslog 特性
- 多線程
- UDP, TCP, SSL, TLS, RELP
- MySQL, PGSQL, Oracle實現日志存儲
- 強大的過濾器,可實現過濾記錄日志信息中任意部分
- 自定義輸出格式
- 適用于企業級中繼
ELK
ELK:由Elasticsearch, Logstash, Kibana三個軟件組成
- 非關系型分布式數據庫基于apache軟件基金會jakarta項目組的項目lucene
- Elasticsearch是個開源分布式搜索引擎,可以處理大規模日志數據,比如:Nginx、Tomcat、系統日志等功能
- Logstash對日志進行收集、分析,過濾,并將其存儲供以后使用
- Kibana 可以提供的日志分析友好的 Web 界面
rsyslogd
系統日志術語
- facility:設施,從功能或程序上對日志進行歸類
| auth(LOG_AUTH) | 安全和認證相關消息(不推薦使用 authpriv 替代) |
| authpriv(LOG_AUTHPRIV) | 安全和認證相關消息(私有的) |
| cron(LOG_CRON) | 統定時任務 cront 和 at 產生的日志 |
| daemon(LOG_DAEMON) | 和各個守護進程相關的日志 |
| ftp(LOG_FTP) | ftp 守護進程產生的日志 |
| kern(LOG_KERN) | 內核產生的日志(不是用戶進程產生的) |
| local0-local7(LOG_LOCAL0-7) | 為本地使用預留的服務 |
| lpr(LOG_LPR) | 打印產生的日志 |
| mail(LOG_MAIL) | 郵件收發信息 |
| new(LOG_NEWS) | 與新聞服務器相關的日志 |
| syslog(LOG_SYSLOG) | 有 syslogd 服務產生的日志信息雖然服務名稱已經改為rsyslogd,但是很多配置都還是沿用了 syslogd 的,這里 并沒有修改服務名 |
| user(LOG_USER) | 用戶等級類別的日志信息 |
| uucp(LOG_UUCP) | uucp 子系統的日志信息,uucp 是早期 linux 系統進行數 據傳遞的協議,后來也常用在新聞組服務中 |
- Priority 優先級別,從低到高排序
| debug(LOG_DEBUG) | 一般的調試信息說明 |
| info(LOG_INFO) | 基本的通知信息 |
| notice(LOG_NOTICE) | 普通信息,但是有一定的重要性 |
| warning(LOG_WARNING) | 警告信息,但是還不回影響到服務或系統的運行 |
| err(LOG_ERR) | 錯誤信息,一般達到 err 等級的信息以及可以影響到服務或系 統的運行了 |
| crit(LOG_CRIT) | 臨界狀況信息,比 err 等級還要嚴重 |
| alert(LOG_ALERT) | 警告狀態信息,比 crit 還要嚴重。必須立即采取行動 |
| emerg(LOG_EMERG) | 疼痛等級信息,系統已經無法使用了 |
| * | 代表所有日志等級。比如,“authpriv.*”代表amhpriv認證信息服務產生的日志,所有的日志等級都記錄 |
rsyslog相關文件
- 程序包:rsyslog
- 主程序:/usr/sbin/rsyslogd
- CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
- CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
- 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
- 庫文件: /lib64/rsyslog/*.so
rsyslog配置文件
/etc/rsyslog.conf 配置文件格式:由三部分組成
- MODULES:相關模塊配置
- GLOBAL DIRECTIVES:全局配置
- RULES:日志記錄相關的規則配置
RULES配置格式:
facility.priority; #分類 優先級日志文件的格式
- 事件產生的日期時間 主機 進程(pid):事件內容
示例:
[root@localhost ~]#tail /var/log/messagesssh服務日志單獨設置
[root@localhost ~]#tail -f /var/log/secure #查看位置 [root@localhost ~]#vim /etc/ssh/sshd_config #修改配置文件 SyslogFacility LOCAL6 #添加自己的自定義local6.* /var/log/ssh.log #添加自己的文件位置遠程日志功能
#開啟日志的遠程傳輸功能在192.168.78.100 [root@localhost ~]#rpm -ql rsyslog #查看 [root@localhost ~]#ss -ntap |grep 514 #查看514端口是否打開 [root@localhost ~]#vim /etc/rsyslog.conf #修改配置文件 $ModLoad imtcp #19行 $InputTCPServerRun 514 #20行 [root@localhost ~]#ss -ntap |grep 514 #查看514端口是否打開 [root@centos7-2 ~]#vim /etc/rsyslog.conf #修改配置文件 *.info;mail.none;authpriv.none;cron.none @@192.168.78.100 #55行 [root@centos7-2 ~]#logger "this is test log from 192.168.78.5 1" 測試寫入日志日志文件
- /var/log/secure:系統安全日志,文本格式,應周期性分析
- /var/log/btmp:當前系統上,用戶的失敗嘗試登錄相關的日志信息,二進制格式,lastb命令進行查看
- /var/log/wtmp:當前系統上,用戶正常登錄系統的相關日志信息,二進制格式,last命令可以查看
- /var/log/lastlog:每一個用戶最近一次的登錄信息,二進制格式,lastlog命令可以查看
- /var/log/dmesg:CentOS7 之前版本系統引導過程中的日志信息,文本格式,開機后的硬件變化將不再記錄專用命令dmesg查看,可持續記錄硬件變化的情況
- /var/log/boot.log 系統服務啟動的相關信息,文本格式
- /var/log/messages :系統中大部分的信息
- /var/log/anaconda : anaconda的日志
查看
[root@localhost ~]#lastb [root@localhost ~]#lastlog [root@localhost ~]#last日志管理工具 journalctl
CentOS 7 以后版,利用Systemd 統一管理所有 Unit 的啟動日志。帶來的好處就是,可以只用journalctl一個命令,查看所有日志(內核日志和應用日志)
日志的配置文件:/etc/systemd/journald.conf
journalctl [OPTIONS…] [MATCHES…]
| journalctl -k | 查看內核日志(不顯示應用日志) |
| journalctl -b | 查看系統本次啟動的日志 |
| journalctl --since=“時間” | 查看指定時間的日志 |
| journalctl -n | 顯示尾部的最新10行日志,nhou加數字則是查看尾部指定多少行日志 |
| journalctl -f | 實時滾動顯示最新日志 |
| journalctl /usr/lib/systemd/systemd | 查看指定服務的日志 |
| journalctl _PID= | 查看指定進程的日志 |
| journalctl _UID= --since today | 查看指定用戶的日志 |
| journalctl -u 服務 | 查看某個Unit的日志 |
| journalctl 路徑 | 查看某個路徑的腳本的日志 |
| journalctl --no-pager | 不分頁標準輸出 |
| journalctl --disk-usage | 顯示日志占據的硬盤空間 |
| journalctl --vacuum-size= | 指定日志文件占據的最大空間 |
| journalctl --vacuum-time= | 指定日志文件保存多久 |
網絡文件共享服務
ftp
文件傳輸協議:File Transfer Protocol 早期的三個應用級協議之一,基于C/S結構
數據傳輸格式:二進制(默認)和文本
雙通道協議:命令和數據連接
兩種模式:從服務器角度
- 主動(PORT style):服務器主動連接
命令(控制):客戶端:隨機port —> 服務器:21/tcp
數據:客戶端:隨機port <—服務器:20/tcp
- 被動(PASV style):客戶端主動連接
命令(控制):客戶端:隨機port —> 服務器:21/tcp
數據:客戶端:隨機port —> 服務器:隨機port /tcp
FTP服務狀態碼: 1XX:信息 125:數據連接打開 2XX:成功類狀態 200:命令OK 230:登錄成功 3XX:補充類 331:用戶名OK 4XX:客戶端錯誤 425:不能打開數據連接 5XX:服務器錯誤 530:不能登錄用戶認證:
匿名用戶:ftp,anonymous,對應Linux用戶ftp
系統用戶:Linux用戶,用戶/etc/passwd,密碼/etc/shadow
虛擬用戶:特定服務的專用用戶,獨立的用戶/密碼文件
[root@centos7-2 ~]#yum install vsftpd -y [root@centos7-2 ~]#ss -natap |grep 21 [root@centos7-2 ~]#systemctl start vsftpd[root@localhost ~]#ftp 192.168.91.101 Connected to 192.168.91.101 (192.168.91.101). 220 (vsFTPd 3.0.2) Name (192.168.91.101:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> helpanonymous_enable=YES 支持匿名用戶,CentOS8 默認不允許匿名 no_anon_password=YES 匿名用戶略過口令檢查 , 默認NO listen_port=2121 默認值為21 #anon_upload_enable=YES anon_upload_enable=YES 匿名上傳,注意:文件系統權限 anon_mkdir_write_enable=YES 匿名建目錄總結
- 上一篇: 【芯选择】CC1101芯片的模块实例
- 下一篇: lightroom使用小结五 调整作品曝