今年筆者開始在LINUX下建立日志服務器,來統一收集各種類型的交換機發來的日志,這些日志文件能夠保存到一個數據庫中,利用數據庫強大的查詢功能,我們可以根據關鍵詞來集中的定位故障信息,比如用SELECT * from SystemEvents where Message LIKE '%conflict%'來查看有哪些沖突產生了。
在基本功能都實現的基礎上(即我們在MYSQL數據里面產生了大量的日志信息,也可以方便地通過客戶端對日志信息進行查詢),接下來的就是對日志信息進行分析,即我們確定好需要對哪些網絡設備進行日志記錄,以哪些單詞為關鍵詞進行查詢,日志信息保存多少天,超出天數的日志信息如何處理等,最后就是配置一個WEB查詢的界面,這個界面可以讓大家都方便地進行查詢,因為是通過瀏覽器進行查詢的,不需要安裝客戶端,因此更加方便。
圖1 確認系統版本號
圖2 提示內容
下面開始說具體的配置過程,大致分三個部分:LAMP的搭建、RSYSLOG服務器的搭建,和loganalyzer的配置。
(1)確認系統的版本號
筆者采用的是CENTOS系統,版本號是7.4.1708,如圖 1所示。
(2)給系統打補丁
為了讓系統保持一個良好的工作狀態,同時保障系統的安全性,我們要及時給系統打上補丁,當然前提是這個系統是可以連接外網的。
yum update
(3)關閉LINUX的防火墻
當然,關閉了防火墻系統就不安全了,但是如果不關的話,在配置過程中好多的服務通過網絡是訪問不到了,所以我們先關閉防火墻,等系統的各項服務都配置好了,再研究如何開啟防火墻,以及開放哪些端口。
systemctl stop firewalld.service
出現如圖2的提示,說明防火墻已經關閉了。
(1)程序安裝
很簡單,在系統中執行一條命令即可:
yum install httpd
(2)了解配置文件
在這個項目,我們只需要了解一條信息,即要發布的網頁存放在哪個目 錄(/var/www/html)下,定義是在/etc/httpd/conf文件里,如圖3所示,以后我們要放發布的網頁,就要放在這個目錄下。
圖3 了解網頁文件的發布路徑
圖4 驗證網頁發布成功的界面
圖5 具體方法與步驟
啟 動httpd的命令為systemctl start httpd
出現如圖4所示的頁面,說明httpd程序(即主頁發布的程序)啟動了。
(1)MYSQL的 安裝
安 裝 MySQL,由于CentOS7默認會安裝 Mariadb,因此使用MySQL官方提供快速的安裝方法,地 址 :http://dev.mysql.com/doc/mysql-yum-repoquick-guide/en/
具體方法與步驟如圖5所示。
(2)MYSQL 客戶端的使用
MYSQL是數據庫服務器,是存儲數據的地方,一般來說,數據庫服務器我們一般是不會直接操作的,我們是通過客戶端軟件連接上MYSQL服務器,在本機上通過客戶端軟件來操作數據庫服務器的,有一款很好用的客戶端軟件,名叫navicat for mysql,從網上可以下載免費的試用版本。安裝完以后,就要在MYSQL里面設置讓root帳號可以在客戶端軟件上登錄,如圖6所示。這里面的關鍵就是將host的值從localhost或者代表本地的IP地址改成為%,這樣就表示可以遠端進行登錄了。
(1)安裝
yum install php phpgd php-xml php-mysql -y
(2)設置httpd及mysql開機自啟動
(3)測試PHP是否正常運行
圖6 設置賬號在客戶端登錄
圖7 PHP配置成功的界面
在瀏覽器中輸入http://10.66.66.67/index.php,若顯示如圖7所示的內容,則表示配置成功。
若是不出出以上信息,而是出現編寫的代碼內容的話,可以嘗試重新啟動一下httpd進程,我遇到這個問題,就是這樣解決的。
(4)必要的配置操作
安裝完PHP以后,一定要記得執行如下操作:
將SELINUX設 置 為disabled
補充知識:
-i :直接修改讀取的文件內容,而不是輸出到終端。
s :取代。
不然的話,在loganalye的安裝時,就會一直提示有一個無法無法寫入,就算就把這個文件的權限已經改成chmod 666也不行。
r p m-q a r s y s l o g#CentOS7默認會安裝rsyslog
可以看到我安裝的RSYSLOG程序的版本跟網上的教程里面顯示的不一樣,因為我的LINUX版本是比較新的,所以里面的RSYSLOG程序也比較新。
圖8 查詢程序是否正常運行
# y u m i n s t a l l r s y s l o g-m y s q l -y#rsyslog使用此模塊將數據傳入MySQL數據庫,必須安裝
導入數據庫操作創建Syslog 庫,并在該庫中創建兩張空表SystemEvents 和SystemEventsProperties。通 過mysql-creatDB.sql程序可以查看此表格的詳細屬性,例如在日志數據表SystemEvents中,包 含設備編號ID,告警日志接收時間ReceivedAt,告警發送時間DeviceReportedTime,告警級別Priority,告警設備名字FromHost,告警信息Message等等,這些屬性與設備日志文件產生的數據屬性一一對應。
此步驟非常關鍵,主要是配置rsyslog系統的端口、接收協議和一些規則等,詳細配置可查看/etc目錄下的rsyslog.conf文件,配置簡要說明如下:
①加載模塊命令
②開啟UDP協議,接收從514端口轉發過來的日志
③開啟TCP協議,接收從514端口轉發過來的日志
③所有日志類型的info級別以及大于info級別的信息記錄到/var/log/messages,但不包含mail郵件信息,authpriv驗證信息和cron時間任務信息
執行命令# systemctl status rsyslog,可以看到如圖8所示信息。
安裝這個程序的目的是讓同事通過瀏覽器軟件就可以直接查看日志信息,不用再單獨安裝連接MySql的客戶端軟件了,雖然有好處,但是配置特別繁瑣。
下面不再說細說明每一個步驟,就把需要注意的地方說明一下。
我們是直接從loganalyzer的網站上下載的最新版本的程序,該程序放在/home/lrx目錄下了。
具體的配置方法可以參考一篇文檔:rsyslog+loganalyzer安裝及配置.pdf,這是。
(1)config.php文件不可寫的問題
這個問題除了要注意chmod 666外,還要注意,之前說過修改LINUX里面的一個配置文件的問題。
(2)連接數據庫的問題
LogAnalyzer要想配置成功,關鍵問題是要能夠連接數據庫,核心是連接數據的用戶名和密碼,在這里我們首先要在數據庫里面創新一個用戶。
本例中為syslog1,密碼要符合規定,然后要明確連接數據庫的名稱為Syslog,最后要自己在命令行中測試一遍,確認沒有問題的話,才能在WEB的配置界面中配置成功。
還要注意:最后還有一個連接數據庫的操作,這里面的用戶名為root,密碼為root的密碼,這個跟之前的那個用戶名是不一樣的。
(3)登錄查詢信息
使用syslog1/W***95!這個帳號和密碼進行登錄,在登錄時能夠登錄上,但是會出現一個錯誤提示,大概的意思是顯示不出來日志信息是因為配置文件有拼寫錯誤,我們通過以下操作來解決的:
即進入/var/www/html/loganalyzer這個目錄,查看config.php文件,會發現里面把記錄日志數據庫文件的表名寫錯了,大小寫與實際的表名不一致,改成一致的就可以了,如下所示。