官網下載地址:www.zabbix.com/downloadphp
下載並安裝:java
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
修改MySQL配置文件/etc/my.cnf,增長一行內容:mysql
character_set_server = utf8linux
而後重啓mysqld服務,進入mysql命令行,建立zabbix庫和用戶,並導入數據。ios
退出mysql,而後導入數據:nginx
cd /usr/share/doc/zabbix-server-mysql-3.2.11/ gzip -d create.sql.gz mysql -uroot -p'123456' zabbix < create.sql
啓動httpd服務:web
systemctl start httpd; systemctl enable httpd /若是報錯,通常是80端口被佔用,關閉nginx便可。
編輯zabbix的配置文件:sql
vim /etc/zabbix/zabbix_server.conf 在DBName=zabbix上面增長一行:DBHost=127.0.0.1 在DBuser下面增長一行:DBPassword=zabbix
保存後退出,啓動zabbix服務:數據庫
systemctl start zabbix-server /啓動zabbix systemctl enable zabbix-server /開機啓動
能夠看到zabbix服務端監聽的端口是10051:apache
[root@jin-120 zabbix-server-mysql-3.2.11]# netstat -lntp |grep zabbix tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 3113/zabbix_server tcp6 0 0 :::10051 :::* LISTEN 3113/zabbix_server
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.6.120 //定義服務端的ip(被動模式) ServerActive=127.0.0.1修改成ServerActive=192.168.6.120 //定義服務端的ip(主動模式) Hostname=Zabbix server修改成Hostname=jin-123 //這是自定義的主機名,一會還須要在web界面下設置一樣的主機名 systemctl start zabbix-agent systemctl enable zabbix-agent
查看zabbix-agent監聽的端口,能夠發現,客戶端監聽的端口是10050:
[root@jin-123 src]# netstat -lntp |grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1731/zabbix_agentd tcp6 0 0 :::10050 :::* LISTEN 1731/zabbix_agentd
至此,Zabbix服務端和客戶端安裝均已完成。
在服務端(120)上查看文件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\」,找到「simhei.ttf」(其實就是那個黑體簡體),先把它複製到桌面上,而後上傳到linux的/usr/share/zabbix/fonts/,而且更名爲graphfont.ttf。
mv /root/simhei.ttf /usr/share/zabbix/fonts/ mv graphfont.ttf graphfont.ttf.bak ln -s simhei.ttf graphfont.ttf [root@jin-120 fonts]# ll 總用量 9524 lrwxrwxrwx 1 root root 10 1月 19 22:09 graphfont.ttf -> simhei.ttf lrwxrwxrwx 1 root root 33 1月 19 11:28 graphfont.ttf.bak -> /etc/alternatives/zabbix-web-font -rw-r--r-- 1 root root 9751960 6月 11 2009 simhei.ttf
此時再刷新圖形界面,就能夠看到中文正常顯示了。
點擊配置-自動發現-建立發現規則 名稱:自動發現網絡主機(自定義),IP範圍:192.168.0.1-254,檢查類型:SSH,而後點」添加「。
(1)監控各個主機基礎指標,CPU,內存,硬盤,網卡流量成圖,web站點的可用性 。
添加主機:
先添加主機組zhangjin-test,再添加主機,建立主機,主機名稱和可見名稱都寫jin-123,羣組選擇zhangjin-test ,IP地址填寫客戶端的ip 192.168.6.123
建立模板:
模板名稱:test,羣組選擇Templates,連接的模板選擇Template OS Linux,而後點添加,再選擇「取消連接」,點更新。
自動發現網卡和硬盤 :
把兩個自動發現的更新時間修改成 30s, 當圖形中有了自動發現的圖形後能夠改回30m 或者1h。
這兩個自動發現會自動建立網卡流量和硬盤狀態的圖形。
檢測web站點的可用性 :
在zbx-server中寫入一條 hosts:
echo '192.168.6.123 www.test-zabbix.com' >> /etc/hosts
在zabbix的web頁面選擇 配置 -- 主機 -- zbx-server -- web監測 -- 右上角建立web場景
場景選項卡中填寫
名稱:web可用性檢測
新的應用集: web_check
客戶端:隨意選擇一個,這裏選擇的是「Chrome 38.0(Windows)」
步驟選項卡填寫:
點擊步驟框中的添加,添加一個步驟, 填寫一個自定義的步驟名稱 填寫要檢測的站點的URL: http://www.baidu.com 填寫最下面的狀態碼 200 ,點擊最下邊的添加按鈕完成步驟的添加。
點擊添加按鈕完成web場景的添加。
再按照前面的步驟將web站點也添加上。
添加完成過幾十秒就能夠在監測中 -- web檢測 中查看狀態了。
(2)監控web服務器(80端口)的併發鏈接數 。
在客戶端目錄/usr/local/sbin下編寫一個名爲estab.sh的腳本,內容以下:
#!/bin/bash ##獲取80端口併發鏈接數 netstat -ant |grep ':80 ' |grep -c ESTABLISHED
授授予755權限
chmod 755 /usr/local/sbin/estab.sh
再編輯zabbix客戶端的配置文件:vim /etc/zabbix/zabbix_agentd.conf,搜索UnsafeUserParameters,去掉前面的#號,並把0改成1,再搜索UserParameter,去掉前面的#號,並在後面加上=my.estab.count[*],/usr/local/sbin/estab.sh,保存後退出並重啓客戶端的zabbix服務:
systemctl restart zabbix-agent
再到服務端執行如下命令進行驗證:
[root@jin-120 ~]# zabbix_get -s 192.168.6.123 -p 10050 -k 'my.estab.count' 0 其中,參數-s表示源地址,-p表示端口,-k表示鍵,結果爲0,表示沒有任何鏈接。
進入zabbix服務器的web頁面,給主機建立監控項,名字爲「併發鏈接數」,鍵值爲「my.estab.count」,其餘保持默認。
再給主機建立圖形,名字爲「併發鏈接數」,監控項添加併發鏈接數,,而後添加。
再選擇觸發器,建立觸發器,表達式爲「{jin-123:my.estab.count.last()}>100」,其餘默認,而後保存。
(3)檢測Mysql隊列,超過300報警
在客戶端中進入目錄/usr/local/sbin,編寫名稱爲process_count.sh的腳本,內容以下:
[root@jin-123 ~]# cd /usr/local/sbin [root@jin-123 sbin]# vim process_count.sh #!/bin/bash export MYSQL_PWD=123456 process_count=`mysql -uroot -e "SHOW FULL PROCESSLIST" |wc -l` echo $process_count
保存並賦予x權限後,修改客戶端的配置文件zabbix_agentd.conf,搜索UserParameter,並將其路徑更改成:process.count[*],/usr/local/sbin/process_count.sh,而後重啓zabbix客戶端:
systemctl restart zabbix-agent
在瀏覽器進入zabbix網頁,選擇「配置」-->「主機」-->「監控項」-->「建立監控項」
名稱寫「檢測Mysql隊列」,鍵值填寫「process.count[*]」,其餘默認,而後點「添加」。
再選擇「配置」-->「主機」-->「觸發器」-->「建立觸發器」
名稱爲「jin-123: 檢測Mysql隊列」,嚴重性選擇「警告」,表達式爲「{jin-123:process.count[*].last()}>300」,而後點「添加」便可。
(4)監控mysql的慢查詢日誌,每分鐘超過60條日誌須要告警。
客戶端中進入目錄/usr/local/sbin,編寫名稱爲slow_query_count.sh的腳本,內容以下:
#!/bin/bash slow_log=/data/mysql/dbm-slow.log grep 'timestamp' $slow_log | awk -F '=' '{print $2}' |awk -F ';' '{print $1}'|sort -r > /tmp/timestamp.log now=`sed -n '1'p /tmp/timestamp.log` alert_num=60 one_min_ago=$[$now-60] num=0 ##### 判斷兩個時間戳以前的差值 slow_query_sum() { if [ $1 -ge $2 ] then num=$[$num+1] else break fi } ##### 獲取在一分鐘內的慢查詢數 for n in `cat /tmp/timestamp.log` do slow_query_sum $n $one_min_ago done ##### 刪除臨時文件 rm -f /tmp/timestamp.log # There are $num slow query in a minute. echo $num
保存後賦予x權限,而後更改配置文件zabbix-agentd.conf,搜索UserParameter,將其路徑改成:slow.query.count[*],/usr/local/sbin/slow_query_count.sh,再重啓zabbix-agent服務。
systemctl restart zabbix-agent
在瀏覽器進入zabbix網頁,選擇「配置」-->「主機」-->「監控項」-->「建立監控項」
名稱寫「Mysql的慢查詢日誌」,鍵值填寫「slow.query.count[*]」,其餘默認,而後點「添加」。
再選擇「配置」-->「主機」-->「觸發器」-->「建立觸發器」
名稱爲「jin-123: Mysql的慢查詢日誌」,嚴重性選擇「警告」,表達式爲「{jin-123:slow.query.count[*].last()}>60」,而後點「添加」便可。
(5)利用jmx,在zabbix上監控tomcat
以前的zabbix安裝方式是yum安裝的,咱們再用源碼包安裝,進入目錄/usr/local/src,下載zabbix安裝包,解壓並編譯安裝:
[root@jin-120 src]# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.12/zabbix-3.4.12.tar.gz [root@jin-120 src]# tar zxf zabbix-3.4.12.tar.gz [root@jin-120 src]# cd zabbix-3.4.12 [root@jin-120 zabbix-3.4.12]# ./configure --prefix=/usr/local/zabbix-3.4.2 --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl --enable-java [root@jin-120 zabbix-3.4.12]# make [root@jin-120 zabbix-3.4.12]# make install
安裝完成後,編輯文件/usr/local/zabbix-3.4.2/sbin/zabbix_java/settings.sh,更改如下字段的值
LISTEN_IP="0.0.0.0" LISTEN_PORT=10052 PID_FILE="/tmp/zabbix_java.pid" START_POLLERS=5 TIMEOUT=3
編輯zabbix服務端的配置文件/usr/local/zabbix-3.42/etc/zabbix_server.conf,內容以下:
LogFile=/tmp/zabbix_server.log //指明zabbix_server的日誌文件地址 DBHost=localhost //鏈接的數據庫地址 DBName=zabbix //鏈接的數據庫名稱 DBUser=zabbix //鏈接數據庫的用戶名 DBPassword=zabbix //鏈接數據庫密碼 JavaGateway=192.168.6.120 //java網關地址,即server端ip地址 JavaGatewayPort=10052 //java網關監聽端口 Timeout=20 //超時時間 FpingLocation=/usr/sbin/fping //fping命令絕對地址 LogSlowQueries=3000 AllowRoot=1 //容許root啓動 User=root //zabbix服務的啓動用戶 StartPollers=50 StartPingers=100 StartJavaPollers=5 AlertScriptsPath=/usr/local/zabbix3.4.2/share/zabbix/alertscripts //zabbix額外的腳本地址
拷貝源碼包的啓動腳本到/etc/init.d
[root@jin-120 zabbix-3.4.12]# cd /usr/local/src/zabbix-3.4.12/misc/init.d/fedora/core [root@jin-120 core]# ls zabbix_agentd zabbix_server [root@jin-120 core]# cp zabbix_* /etc/init.d/ [root@jin-120 core]# ln -s /usr/local/zabbix-3.4.2/etc/ /etc/zabbix
修改啓動腳本:
[root@jin-120 core]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-3.4.2/#g" /etc/init.d/zabbix_server [root@jin-120 core]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-3.4.2/#g" /etc/init.d/zabbix_agentd
重啓zabbix server服務,以及啓動zabbix java支持服務
[root@jin-120 core]# /etc/init.d/zabbix_server restart Reloading systemd: [ 肯定 ] Restarting zabbix_server (via systemctl): [ 肯定 ] [root@jin-120 core]# cd /usr/local/zabbix-3.4.2/sbin/zabbix_java && sh startup.sh
修改tomcat的配置文件/vim /usr/local/tomcat/bin/catalina.sh,在第2行添加如下內容:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.6.123"
重啓tomcat應用服務器,同時查看端口12345是否處於監聽狀態。
[root@jin-120 bin]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@jin-120 bin]# netstat -lntp |grep 12345 tcp6 0 0 :::12345 :::* LISTEN 27241/java
下載對應的java jmx監控的相關jar包並複製到tomcat對應的目錄下。
[root@jin-120 tomcat]# cd /usr/local/src [root@jin-120 src]# wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/extras/catalina-jmx-remote.jar [root@jin-120 src]# cp catalina-jmx-remote.jar /usr/local/tomcat/lib/
而後在zabbix網頁中添加對應的模板便可。