首先須要瞭解的是zabbix是一種C/S架構的監控工具,即服務端(Server)須要安裝zabbix-server用於處理各類監控及告警信息,客戶端(Client)須要安裝zabbix-agent用於收集客戶端的監控數據。php
本地使用ansible做爲自動化工具,接來下操做結合ansible進行。mysql
官方文檔web
爲server端主機和全部client主機配置rpm鏡像庫。sql
$ ansible all -m shell -a "chdir=/tmp wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm" $ ansible all -m shell -a "chdir=/tmp rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm"
官方文檔: https://www.zabbix.com/documentation/3.0/manual/installationshell
$ yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql $ systemctl start zabbix-server $ systemctl enable zabbix-server
zabbix數據存儲依賴於MySQL或postgresql,在此使用mysql,若是未安裝mysql須要單獨安裝一下。安裝完成後須要對數據庫進行初始化:數據庫
mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; $ zcat /usr/share/doc/zabbix-server-mysql-3.4.15/create.sql.gz | mysql -uzabbix -pzabbix zabbix
$ vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix $ systemctl start zabbix-server
$ vim /etc/httpd/conf.d/zabbix.conf php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 php_value date.timezone Asia/Shanghai # 更改時區
啓動httpd後訪問:http://172.16.180.129/zabbix 進行可視化安裝。安裝完成後登錄:vim
$ ansible all -m shell -a "yum install -y zabbix-agent"
Server=172.16.180.129 # 服務端ip ServerActive=172.16.180.129 # 服務端ip Hostname=system.hostname # 顯示到監控中心的被監控主機的主機名,用於區分各個client
補充: zabbix獲取數據有兩種模式——主動模式/被動模式。Server表示被動模式,即由服務端定時向客戶端採集數據;ServerActive表示主動模式,即客戶端能夠主動上報數據到服務端。bash
$ systemctl start zabbix-agent
配置文檔服務器
應用集即監控項分組,爲的是方便批量管理監控項。架構
監控項是從主機收集的數據信息。
配置主機後,你須要添加一些監控項以開始獲取實際數據。
觸發器是「評估」由項目採集的數據並表示當前系統情況的邏輯表達式。
針對各個監控項配置的告警規則。
模板是能夠方便地應用於多個主機的一組實體。
解決圖形中沒法展現中文字體的問題。
檢查相關代碼:
$ less /usr/share/zabbix/include/defines.inc.php define('ZBX_FONTPATH', realpath('fonts')); // where to search for font (GD > 2.0.18) define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
即,字體相關文件爲/usr/share/zabbix/fonts/graphfont
。
檢查對應文件信息:
[root@host2 fonts]# ll lrwxrwxrwx 1 root root 33 3月 6 07:42 graphfont.ttf.bak -> /etc/alternatives/zabbix-web-font [root@host2 fonts]# ll /etc/alternatives/zabbix-web-font lrwxrwxrwx 1 root root 38 3月 6 07:42 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
查資料發現,DejaVuSans.ttf 字體不支持中文。
處理辦法:替換zabbix字符集便可
/usr/share/zabbix/fonts/FangZhengFangSongJianTi-1.ttf
graphfont.ttf
作軟鏈接指向新的字體便可:ln -s FangZhengFangSongJianTi-1.ttf graphfont.ttf
(作軟連前將原有graphfont.ttf文件更名備份)用於一些metrics的自動採集,如網卡信息。
監控處於TIME_WAIT狀態的鏈接數量:
建立腳本 twait.sh :
#!/bin/bash # 統計listen狀態的鏈接 netstat -ant |grep -c 'TIME_WAIT'
賦予腳本執行權限:chmod +x listen_num.sh
編輯zabbix_agentd.conf文件:
UnsafeUserParameters=1 # 容許向服務端傳遞全部參數 UserParameter=my.time_wait.count[*],/root/scripts/twait.sh # 自定義監控項的key爲my.time_wait.count;後面的[*]寫腳本的參數,若是沒有參數可省略;最後爲對應的腳本
重啓zabbix-agent服務
到server端檢驗:
$ zabbix_get -s 172.16.180.129 -p 10050 -k 'my.time_wait.count' 29
配置中心——增長監控項