zabbix 支持的主要監控方式
(1)agent代理程序php
在Agent監控方式下,zabbix-agent會主動收集本機的監控信息並經過TCP協議與zabbix-server傳遞信息。Agent
監控方式分爲主動和被動模式。在被動模式下,zabbix-agent監聽10050端口,等待zabbix-server的監控信息收集
信息請求;在主動模式下,zabbix-agent收集監控信息並經過10050端口主動將數據傳給zabbix-server所在服務器
的10051端口
(2)SNMPjava
SNMP全稱Simple Network Management Protocol,即網絡管理協議,包括進程管理和被管理設備兩部分。
做爲一種國際通用的網絡管理協議被普遍的應用於各類交換機,路由器等網絡設備的管理上,而如今也越來
越多被用於對服務器的監控上
(3)JMXmysql
JMX,全稱Java Management Extensions,即Java管理拓展,是Java平臺爲應用程序,設備,系統等植入管
理功能的框架。在zabbix中,JMX數據的獲取由zabbix-java-gateway代理程序來負責數據的採集。
(4)IPMIlinux
IPMI,全稱Interlligent Platform Management Interface,即智能平臺管理接口,本來是Intel架構中
企業系統的周邊設備所採用的一種工業標準,之後成爲業界通用的標準。用戶能夠利用IPMI監控
服務器的物理特性,如包括採集CPU溫度、風扇轉速、主板溫度,以及遠程開關機等指標
(5)Trappernginx
Trapper監控方式使用zabbix-sender程序主動向zabbix-server發送數據。key的名稱和發送的數據內容
均可以靈活定義。發送的信息採用JSON格式,遵循zabbix-sender協議。能夠自定義腳本利用zabbix-sender
協議來zabbix-server發送信息。
1.實現nginx監控
base2 172.25.78.12 zabbix-server
base3 172.25.78.13 zabbix-agent,nginx
開啓服務web
# 在服務端
[root@base2 ~]# systemctl start zabbix-server
[root@base2 ~]# systemctl start zabbix-agent
[root@base2 ~]# systemctl start httpd
[root@base2 ~]# systemctl start mariadb
# 在客戶端
[root@base3 ~]# systemctl start zabbix-agent
# 在nginx客戶端
[root@base3 ~]# ls
nginx-1.15.8.tar.gz
[root@base3 ~]# tar zxf nginx-1.15.8.tar.gz
[root@base3 ~]# cd nginx-1.15.8
[root@base3 nginx-1.15.8]# vim auto/cc/gcc
171 # debug
172 #CFLAGS="$CFLAGS -g"
[root@base3 nginx-1.15.8]# yum install -y gcc make pcre-devel zlib-devel
[root@base3 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
[root@base3 nginx-1.15.8]# make && make install
[root@base3 nginx-1.15.8]# cd /usr/local/nginx/conf/
[root@base3 conf]# vim nginx.conf # 由於zabbix沒有針對nginx的模塊,須要本身寫腳本添加
location / status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
sql
[root@base3 conf]# /usr/local/nginx/sbin/nginx -t # 檢測語法
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@base3 conf]# /usr/local/nginx/sbin/nginx # 開啓nginx
[root@base3 conf]# curl http://127.0.0.1/status # 測試
數據庫
[root@base3 conf]# curl -s http://127.0.0.1/status | grep Active | awk '{print $3}' # 截取併發鏈接數
1
[root@base3 conf]# cd /etc/zabbix/
[root@base3 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@base3 zabbix]# cd zabbix_agentd.d/
[root@base3 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@base3 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
[root@base3 zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
[root@base3 zabbix_agentd.d]# systemctl restart zabbix-agent
# 在服務端
[root@base2 ~]# ls
zabbix-get-4.0.5-1.el7.x86_64.rpm
[root@base2 ~]# yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm # 安裝測試包,用來獲取nginx的鍵值
[root@base2 ~]# zabbix_get -s 172.25.78.13 -p 10050 -k "nginx.active" # 獲取成功
# 瀏覽器apache
# 填寫自定義名稱,鍵值是base3上文件userparameter_nginx.conf 中的名字vim
# 效果呈現
# 咱們如今來實現中文的顯示
# 在服務端
[root@base2 ~]# cd /usr/share/zabbix/fonts/
[root@base2 fonts]# ls
graphfont.ttf simkai.ttf
注:simkai.ttf 這個字體文件是我從windows上下載的
[root@base2 fonts]# cd ../include/
[root@base2 include]# vim defines.inc.php # 用simkai替換graphfont
# 刷新網頁,就能夠顯示中文了
# 添加其餘監控項
# 在nginx客戶端查看參數
[root@base3 zabbix_agentd.d]# curl http://127.0.0.1/status
[root@base3 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
107
[root@base3 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'
109
[root@base3 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'
110
[root@base3 zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
UserParameter=nginx.required,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
UserParameter=nginx.handle,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
[root@base3 zabbix_agentd.d]# systemctl restart zabbix-agent
1
# 在服務端測試
[root@base2 ~]# zabbix_get -s 172.25.78.13 -p 10050 -k "nginx.accept"
124
[root@base2 ~]# zabbix_get -s 172.25.78.13 -p 10050 -k "nginx.required"
125
[root@base2 ~]# zabbix_get -s 172.25.78.13 -p 10050 -k "nginx.handle"
126
# 在網頁上添加
# 效果呈現
2.用percona監控zabbix server數據庫
由於Zabbix自帶的MySQL監控沒有提供能夠直接使用的Key,因此通常不採用,業界都使用
Percona Monitoring Plugins 監控 MySQL的方式
Percona介紹
Percona 爲 MySQL 數據庫服務器進行了改進,在功能和性能上較 MySQL 有着很顯著的提高。
該版本提高了在高負載狀況下的 InnoDB 的性能、爲 DBA 提供一些很是有用的性能診斷工具;另
外有更多的參數和命令來控制服務器行爲。
[root@base2 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm # 安裝percoan插件
[root@base2 ~]# cd /var/lib/zabbix/percona/scripts/
[root@base2 scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
[root@base2 scripts]# cd ../templates/
[root@base2 templates]# ls
userparameter_percona_mysql.conf
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@base2 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ # 複製zabbix代理配置
[root@base2 templates]# cd /etc/zabbix/zabbix_agentd.d/
[root@base2 zabbix_agentd.d]# ls
userparameter_mysql.conf userparameter_percona_mysql.conf
[root@base2 zabbix_agentd.d]# cd -
/var/lib/zabbix/percona/templates
[root@base2 templates]# cd ../scripts/
[root@base2 scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
[root@base2 scripts]# vim ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat'; # 這是我數據庫中的root用戶密碼,根據本身實際狀況寫
[root@base2 scripts]# cd /var/lib/zabbix/
[root@base2 zabbix]# vim .my.cnf
[mysql]
host = localhost
user = root
password = redhat # 這是我數據庫中的root用戶密碼,根據本身實際狀況寫
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
host = localhost
user = root
password = redhat
socket = /var/lib/mysql/mysql.sock
[root@base2 zabbix]# systemctl restart zabbix-agent
[root@base2 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg # 測試,只要有數據返回,就表明正確
0
[root@base2 scripts]# cd /tmp/
[root@base2 tmp]# ls
[root@base2 tmp]# rm -fr localhost-mysql_cacti_stats.txt
1
在網頁上添加percona模板
3.實現java的監控
[root@base3 ~]# ls
apache-tomcat-8.5.24.tar.gz
jdk-8u121-linux-x64.rpm
[root@base3 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@base3 ~]# tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
[root@base3 ~]# cd /usr/local/
[root@base3 local]# ln -s apache-tomcat-8.5.24/ tomcat
[root@base3 local]# cd tomcat/
[root@base3 tomcat]# ls
bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work
[root@base3 tomcat]# cd bin/
[root@base3 bin]# vim catalina.sh
CATALINA_OPTS='-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false'
[root@base3 bin]# vim catalina.sh
[root@base3 bin]# ./startup.sh
[root@base3 bin]# netstat -antlp | grep java
[root@base2 ~]# ls
zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
[root@base2 ~]# rpm -ivh zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm # 有依賴,因此咱們用yum來解決依賴性
[root@base2 ~]# yum install -y zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
[root@base2 ~]# cd /etc/zabbix/
[root@base2 zabbix]# ls
web zabbix_agentd.d zabbix_java_gateway_logback.xml
zabbix_agentd.conf zabbix_java_gateway.conf zabbix_server.conf
[root@base2 zabbix]# systemctl start zabbix-java-gateway
[root@base2 zabbix]# netstat -antlp | grep 10052
[root@base2 zabbix]# vim zabbix_server.conf
288 JavaGateway=172.25.78.12
296 JavaGatewayPort=10052
304 StartJavaPollers=5
[root@base2 zabbix]# zabbix_server -R config_cache_reload
[root@base2 zabbix]# systemctl restart zabbix-server
# 在web網頁上
# 添加JMX接口
刷新網頁,發現JMX模塊添加成功,能夠應用