1. 程式人生 > >34 linux監控平臺

34 linux監控平臺

linux 監控平臺 zabbix

1.安裝zabbix
官網下載地址 www.zabbix.com/download
wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql //zabbix-agent 客戶端軟件;zabbix-get 服務端的工具,可以通過命令行獲得客戶端數據;zabbix-server-mysql 跟mysql相關的文件;zabbix-web web界面;zabbix-web-mysql web與mysql相關的文件
安裝結果
已安裝:
zabbix-agent.x86_64 0:3.2.11-1.el7 zabbix-get.x86_64 0:3.2.11-1.el7 zabbix-server-mysql.x86_64 0:3.2.11-1.el7 zabbix-web.noarch 0:3.2.11-1.el7
zabbix-web-mysql.noarch 0:3.2.11-1.el7

作為依賴被安裝:
OpenIPMI-libs.x86_64 0:2.0.19-15.el7 OpenIPMI-modalias.x86_64 0:2.0.19-15.el7 dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7

fontpackages-filesystem.noarch 0:1.44-8.el7 fping.x86_64 0:3.10-4.el7 iksemel.x86_64 0:1.4-6.el7 libX11.x86_64 0:1.6.5-1.el7
libX11-common.noarch 0:1.6.5-1.el7 libXau.x86_64 0:1.0.8-2.1.el7 libXpm.x86_64 0:3.5.12-1.el7 libxcb.x86_64 0:1.12-1.el7
libzip.x86_64 0:0.10.1-8.el7 php.x86_64 0:5.4.16-43.el7_4.1 php-bcmath.x86_64 0:5.4.16-43.el7_4.1 php-cli.x86_64 0:5.4.16-43.el7_4.1
php-common.x86_64 0:5.4.16-43.el7_4.1 php-gd.x86_64 0:5.4.16-43.el7_4.1 php-ldap.x86_64 0:5.4.16-43.el7_4.1 php-mbstring.x86_64 0:5.4.16-43.el7_4.1
php-mysql.x86_64 0:5.4.16-43.el7_4.1 php-pdo.x86_64 0:5.4.16-43.el7_4.1 php-xml.x86_64 0:5.4.16-43.el7_4.1 t1lib.x86_64 0:5.1.2-14.el7
unixODBC.x86_64 0:2.3.1-11.el7

會連帶安裝httpd和php
vim /etc/my.cnf //需要增加配置
character_set_server = utf8 為了web頁面能夠顯示中文
重啟mysqld服務後,進入mysql命令行,創建zabbix庫
create database zabbix character set utf8;
再創建用戶
grant all on zabbix. * to ‘zabbix‘@‘127.0.0.1‘ identified by ‘123456‘;
導入數據
cd /usr/share/doc/zabbix-server-mysql-3.2.11
gzip -d create.sql.gz
mysql -uroot -pxxx zabbix < create.sql
systemctl start httpd; systemctl enable httpd
vim /etc/zabbix/zabbix_server.conf //修改或增加
DBHost=127.0.0.1 //在DBName=zabbix上面增加,與前文對應
DBPassword=123456 //在DBuser下面增加,與前文對應
systemctl start zabbix-server
systemctl enable zabbix-server
日誌文件:/var/log/zabbix/zabbix_server.log
netstat -lntp |grep zabbix //查看監聽端口
zabbix監聽10051端口
瀏覽器訪問http://ip/zabbix/ web界面下面配置zabbix
技術分享圖片
安裝網頁一步步來就好(出現PHP option "date.timezone" unknown Fail,需要設置時區:vi /etc/php.ini設置timezone=Asia/Shanghai)
用戶名Admin 密碼zabbix
進入後臺第一件事情就是修改密碼
如果忘記了密碼:
進入mysql命令行,選擇zabbix庫
mysql -uroot -p zabbix
update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;
這樣就更改了Admin用戶的密碼
客戶端安裝
wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf //修改如下配置
Server=127.0.0.1修改為Server=192.168.133.130 //定義服務端的ip(被動模式)
ServerActive=127.0.0.1修改為ServerActive=192.168.133.130 //定義服務端的ip(主動模式)
Hostname=Zabbix server修改為Hostname=slx-123 //這是自定義的主機名,一會還需要在web界面下設置同樣的主機名
systemctl start zabbix-agent
systemctl enable zabbix-agent
監控端口為10050

2.工作模式
主動或者被動是相對客戶端來講的
被動模式,服務端會主動連接客戶端獲取監控項目數據,客戶端被動地接受連接,並把監控信息傳遞給服務端
主動模式,客戶端會主動把監控數據匯報給服務端,服務端只負責接收即可。
當客戶端數量非常多時,建議使用主動模式,這樣可以降低服務端的壓力。
服務端有公網ip,客戶端只有內網ip,但卻能連外網,這種場景適合主動模式

3.配置主機
在web界面:配置-->主機群組 添加主機群組
配置-->主機 添加主機
點擊以下幾個項目可以查看各組信息
技術分享圖片
技術分享圖片
應用集為監控項目的集合
技術分享圖片
監控項目
技術分享圖片
觸發器是對監控項目設置的告警規則
技術分享圖片
圖形是根據歷史數據做圖表
技術分享圖片
自動發現規則 自動配置合適的分區和網卡
技術分享圖片
web檢測 監控網址

4.添加自定義模板
技術分享圖片
技術分享圖片
自定義模板的群組要選擇templates
技術分享圖片
自定義的模板開始創建時可以不需要應用集、監控項等等,可以從其他已有模板裏復制
或者幹脆在創建時選擇鏈接的模板,再取消鏈接(取消與原來的聯系但是不清空),把不想要的項目刪除(若不取消鏈接,則不能刪除)
5.處理圖形中的亂碼
技術分享圖片
圖中小方塊原本應是漢字,原因在於缺少字庫
設置為中文後,zabbix圖形的中文文字會顯示小方框
這是因為在zabbix的字體庫中沒有中文字體,需要從windows上借用一個過來
vim /usr/share/zabbix/include/defines.inc.php //搜索ZBX_FONTPATH
它定義的路徑是“fonts”,它是一個相對路徑,絕對路徑為/usr/share/zabbix/fonts,而字體文件為“ZBX_GRAPH_FONT_NAME”所定義的“graphfont”,它是一個文件,絕對路徑為/usr/share/zabbix/fonts/graphfont
windows字體路徑為“C:\Windows\Fonts\”,找到“simfang.ttf”(其實就是那個仿宋簡體),先把它復制到桌面上,然後上傳到linux的/usr/share/zabbix/fonts/,並且改名為graphfont.ttf
技術分享圖片
技術分享圖片
結果發現這個字體不行,換成黑體了……過程是一樣的
技術分享圖片
6.自動發現設置
技術分享圖片
點進去可以進行更改
技術分享圖片
可以更改時間間隔,方便監控
技術分享圖片
重啟zabbix服務端和客戶端後,刷新web,圖形出現新項目,來源是自動發現(剛才把時間間隔改為60s,刷新一下就出現了,但是考慮到負載,最好再把間隔時間調大些)

7.添加自定義監控項目(模板裏沒有的,需要在linux上自定義)
需求:監控某臺web的80端口連接數,並出圖
兩步:1)zabbix監控中心創建監控項目;2)針對該監控項目以圖形展現
對於第一步,需要到客戶端定義腳本
vim /usr/local/sbin/estab.sh //內容如下(文件位置可自定義,但要求與下文的userparameters後的一樣)
#!/bin/bash
##獲取80端口並發連接數
netstat -ant |grep ‘:80 ‘ |grep -c ESTABLISHED //80後面有空格,避免匹配到8080等其他端口
chmod 755 /usr/local/sbin/estab.sh //為了給zabbix用戶以執行權限
技術分享圖片
客戶端上編輯配置文件 vim /etc/zabbix/zabbix_agentd.conf//增加
UnsafeUserParameters=1 //表示使用自定義腳本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //自定義監控項的key為my.estab.count,後面的[*]裏面寫腳本的參數(用逗號分隔),如果沒有參數則可以省略,腳本為/usr/local/sbin/estab.sh
重啟zabbix-agent服務 systemctl restart zabbix-agent
首先到服務端驗證,執行命令
zabbix_get -s 192.168.86.130 -p 10050 -k ‘my.estab.count‘
技術分享圖片
然後在zabbix監控中心(瀏覽器)配置增加監控項目
鍵值寫my.estab.count(也可自定義,但是要與前文相同)
技術分享圖片
添加該項目後,到“監測中”--> “最新數據”查看剛添加的項目是否有數據出現
有了數據就可以添加圖形了
“配置”-->“主機” -->“圖形” -->“創建圖形” (添加並選擇剛創建的監控項)
技術分享圖片

8.配置告警
使用163或者QQ郵箱發告警郵件
首先登錄163郵箱,設置開啟POP3、IMAP、SMTP服務
開啟並記錄授權碼
然後到監控中心設置郵件告警
“管理”-->“報警媒介類型”-->“創建媒體類型”
技術分享圖片
三個參數分別指:收件人,郵件主題,郵件內容
創建報警腳本mail.py
vim /usr/lib/zabbix/alertscripts/mail.py //內容參考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py
chmod 755 /usr/lib/zabbix/alertscripts/mail.py
創建一個接受告警郵件的用戶,“管理”,“用戶”,“創建用戶”,“報警媒介”,選擇“gaojing”,註意用戶的權限,如果沒有需要到用戶組去設置權限(默認是無,需要設置為讀寫)
技術分享圖片
設置動作,“配置”,“動作”,“創建動作”,名稱寫“sendmail”(自定義),“操作”頁面,內容如下
HOST:{HOST.NAME} {HOST.IP} //主機名
TIME:{EVENT.DATE} {EVENT.TIME} //發生時間
LEVEL:{TRIGGER.SEVERITY} //示警度
NAME:{TRIGGER.NAME} //觸發器名
messages:{ITEM.NAME}:{ITEM.VALUE} //顯示信息
ID:{EVENT.ID} //事件id
“新的觸發條件”,A維護狀態 非在 維護,B觸發器示警度>=未分類
技術分享圖片
技術分享圖片
單擊“新的”
技術分享圖片
單擊下面的“添加”
技術分享圖片
切換到“恢復操作”,把信息改成如下
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
技術分享圖片
點擊“新的”,“操作”,選擇發送的用戶為剛創建的用戶,僅送到選擇“gaojing”
技術分享圖片

34 linux監控平臺