zabbix监控搭建
2019獨角獸企業重金招聘Python工程師標準>>>
常見開源監控軟件
-
cacti、nagios、zabbix、smokeping、open-falcon等等
-
cacti、smokeping偏向于基礎監控,成圖非常漂亮
-
cacti、nagios、zabbix服務端監控中心,需要php環境支持,其中zabbix和cacti都需要mysql作為數據存儲,nagios不用存儲歷史數據,注重服務或者監控項的狀態,zabbix會獲取服務或者監控項目的數據,會把數據記錄到數據庫里,從而可以成圖
-
open-falcon為小米公司開發,開源后受到諸多大公司和運維工程師的追捧,適合大企業,滴滴、360、新浪微博、京東等大公司在使用這款監控軟件,值得研究
-
目前流行的監控為: zabbix ,Prometheus+grafana
-
擴展:使用Prometheus+grafana打造高逼格監控平臺:http://blog.51cto.com/youerning/2050543
zabbix監控介紹
- C/S架構,基于C++開發,監控中心支持web界面配置和管理
- 單server節點可以支持上萬臺客戶端
- 最新版本3.4,官方文檔https://www.zabbix.com/manuals
- zabbix需要LAMP環境。
zabbix監控的5個組件
- zabbix-server 監控中心,接收客戶端上報信息,負責配置、統計、操作數據
- 數據存儲 存放數據,比如mysql
- web界面 也叫web UI,在web界面下操作配置是zabbix簡單易用的主要原因
- zabbix-proxy 可選組件,它可以代替zabbix-server的功能,減輕server的壓力
- zabbix-agent 客戶端軟件,負責采集各個監控服務或項目的數據,并上報
安裝zabbix
首先要準備兩臺機器。
官網下載地址 www.zabbix.com/download
下載yum源 wget https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
下載好后安裝 :rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
兩臺機器都要下載安裝
有了yum源之后需要yum安裝以下軟件:
- 服務端安裝:
yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
- 客戶端安裝:
yum install -y zabbix-agent
- 會連帶安裝httpd和php
- 如果mysql之前沒有安裝的話,需要根據lamp那一章的mysql安裝方法安裝mysql,也可以yum安裝mysql
編輯vim /etc/my.cnf 增加字符集 utf8
如果不設置在web界面zabbix中文顯示會有問題。
增加內容如下:
character_set_server = utf8添加完后重啟下mysql
mysql創建庫
-
首先登陸 mysql -uroot -p123456
-
登陸后指定字符集 create database zabbix character set utf8;
-
為了讓php代碼鏈接mysql等,在創建用戶,指定來源IP,創建密碼。
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';
- 退出
導入原始數據
沒有這些數據zabbix無法工作。
- cd /usr/share/doc/zabbix-server-mysql-3.4.11/
- gzip -d create.sql.gz
- 導入: mysql -root -p123456 zabbix < create.sql
修改zabbix啟動文件不然無法正常啟動
vim /etc/zabbix/zabbix_server.conf
- 定義數據庫IP(搜索DBHost)
正常生產環境中數據庫可能在另一臺機器上,需要定義那臺機器得IP.
-
定義DBName 要和數據庫定義得名字一樣
-
定義DBUser,以及密碼。
之后啟動zabbix服務
- systemctl start zabbix-server
啟動后用ps aux |grep zabbix檢查一下,如果出現特別多得內容說明啟動成功了,如果只有幾行說明啟動得有問題。
-
啟動httpd服務:systemctl start httpd(啟動前檢查是否啟動了nginx監聽80端口,如果啟動需要停掉)
-
加入開機啟動里: systemctl enable zabbix-server ,systemctl enable httpd
檢查zabbix監聽端口(10051)
- netstat -lntp |grep zabbix
之后可以配置zabbix web界面了
- 訪問zabbix-server IP/zabbix/出現如下界面:
- 點下一步后出現報錯,Time zone for PHP is not set (configuration parameter "date.timezone").
只看faild 不用管ok的。vi /etc/php.ini 找到timezone,添加
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone =Asia/Shanghai定義完成之后重啟httpd服務。之后刷新網頁就會沒有剛剛的報錯,直接點下一步即可。
- 之后填寫以下數據庫的信息,跟服務器設置保持一致即可。
-
下一步后,填寫name無所謂寫什么自定義即可。
-
完成之后出現登陸界面,默認用戶名:Admin 密碼:zabbix
-
進入后臺第一件事情就是修改密碼
忘記zabbix 登陸Admin密碼如何做
- 進入mysql數據量命令行,選擇zabbix庫
-
mysql -uroot -p zabbix
-
update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;
-
這樣就更改了Admin用戶的密碼
Zabbix 客戶端配置
- 編輯配置 vim /etc/zabbix/zabbix_agentd.conf //修改如下配置
其中有三個地方需要修改
Server=127.0.0.1修改為Server=192.168.159.128 //定義服務端的ip(被動模式) ServerActive=127.0.0.1修改為ServerActive=192.168.159.128 //定義服務端的ip(主動模式) Hostname=Zabbix server修改為Hostname=aming-01 //這是自定義的主機名,一會還需要在web界面下設置同樣的主機名- systemctl start zabbix-agent 啟動服務
- systemctl enable zabbix-agent 設置開機自啟
主動模式和被動模式
-
主動或者被動是相對客戶端來講的
-
被動模式,服務端會主動連接客戶端獲取監控項目數據,客戶端被動地接受連接,并把監控信息傳遞給服務端
-
主動模式,客戶端會主動把監控數據匯報給服務端,服務端只負責接收即可。
-
當客戶端數量非常多時,建議使用主動模式,這樣可以降低服務端的壓力。
-
服務端有公網ip,客戶端只有內網ip,但卻能連外網,這種場景適合主動模式
添加監控主機
-
首先添加主機群組 aming-text
-
然后點擊主機,添加主機命名為:aming-01,配置如圖:
監控項可定義主動模式被動模式
-
應用集就是監控項目的集合
-
自動發現規律:會自動發現客戶端的磁盤分區,網卡流量,文件系統進行監控。
添加自定義模板
- 首先先新建模板
- 然后鏈接其他模板
之所以鏈接模板是因為會把自動發現選項的模板也鏈接過來。自動發現的模板無法單獨復制。鏈接完之后,把不需要的在刪除。
- 刪除鏈接模板
鏈接之后的模板無法刪除,因為是鏈接其他組的膜拜你。但是取消鏈接之后,自定義組會保留之前鏈接的所有模板,這樣就可以刪除沒有用的了。
- 然后就可以刪除無用模板
先刪除監控項,后刪除應用集。
保留以下選項,其他都可以刪除
最后一定要選擇主機,把剛剛建好的模板給連接上,
處理圖形中的亂碼
- 剛開始看圖形界面會出現漢字無法顯示的情況
設置為中文后,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
自動發現
-
把自動發現更新時間改為1分鐘,然后重啟server和agent
-
看到圖形就會自動識別網卡之類的
-
為了防止服務器壓力,在更新出新圖表后把自動發現更新時間改為時間稍微長一點。
添加自定義監控項目
需求:監控某臺web的80端口連接數,并出圖
- 編輯 vim /usr/local/sbin/estab.sh //內容如下
-
chmod 755 /usr/local/sbin/estab.sh
-
客戶端上編輯配置文件 vim /etc/zabbix/zabbix_agentd.conf//增加
-
重啟zabbix-agent服務 systemctl restart zabbix-agent
-
首先到服務端驗證,看客戶端腳本是否生效,執行命令值為0,說明正常
- 然后在zabbix監控中心(瀏覽器)配置增加監控項目
- 添加圖形
- 添加觸發器
表達式
配置郵件告警
使用163或者QQ郵箱發告警郵件
首先登錄你的163郵箱,設置開啟POP3、IMAP、SMTP服務
開啟并記錄授權碼
然后到監控中心設置郵件告警
-
“管理”,“報警媒介類型”,“創建媒體類型”
-
腳本參數 {ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE}
-
腳本必須放在這個目錄下, 因為服務端的配置文件就是這樣定義的,/usr/lib/zabbix/alertscripts/
-
在客戶端創建腳本mail.py
-
權限一定不要忘記更改 chmod 755 /usr/lib/zabbix/alertscripts/mail.py
-
測試腳本是否可用
測試成功,只不過中文是亂碼。
創建一個接受告警郵件的用戶
創建一個接受告警郵件的用戶,“管理”,“用戶”,“創建用戶”,“報警媒介”,類型選擇“baojing”,注意用戶的權限,如果沒有需要到用戶組去設置權限
- 用戶組設置權限
- 設置動作
設置動作,“配置”,“動作”,“創建動作”,名稱寫“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}新的觸發條件”,A維護狀態 非在 維護,B觸發器示警度>=未分類,操作”,選擇發送的用戶為剛創建的用戶,僅送到選擇“baojing”
切換到“恢復操作”,把信息改成如下
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE}點擊“新的”,“操作”,選擇發送的用戶為剛創建的用戶,僅送到選擇“baojing”
測試告警
測試告警
估計把監控改成有問題的,測試是否會發送郵件。
- 創建自定義觸發器
此觸發器是檢測系統負載小于1的時候發送郵件。
郵件發送成功
擴展
-
zabbix監控交換機(思科) http://tryrus.blog.51cto.com/10914693/1789847
-
zabbix遠程執行命令 http://www.ywnds.com/?p=6610
-
zabbix分布式部署 http://sfzhang88.blog.51cto.com/4995876/1364399
-
zabbix監控tomcat(版本有點老,大家只需要參考步驟,不能照搬) http://www.fblinux.com/?p=616
轉載于:https://my.oschina.net/u/3852961/blog/1865867
總結
以上是生活随笔為你收集整理的zabbix监控搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac电脑简单好用的非主流程序
- 下一篇: .netCore 使用 Quartz 实