Zabbix实战--监控Nginx、MySQL与JAVA应用

Zabbix支持的主要监控方式:

(1).Agent监控方式

在Agent监控方式下,zabbix-agent会主动收集本机的监控信息并通过TCP协议与zabbix-server传递信息。
Agent监控方式分为主动和被动模式。
在被动模式下,zabbix-agent监听10050端口,等待zabbix-server的监控信息收集信息请求;
在主动模式下,zabbix-agent收集监控信息并通过10050端口主动将数据传给zabbix-server所在服务器的10051端口。

优点:
(1)是zabbix最常用的监控方式,监测指标深入细致有针对性。
(2)内置监控功能强大,内置监控项目丰富。
(3)TCP方式实现通讯,可靠性也有保证。

缺点:
(1)需要在被监控机器上安装zabbix-agent客户端,部署相对麻烦,最初需要逐个机器安装代理软件
(2)zabbix-agent客户端运行在被监控机上,会收集本机信息

(2).Trapper监控方式

Trapper监控方式使用zabbix-sender程序主动向zabbix-server发送数据。key的名称和发送的数据内容都可以灵活定义。
发送的信息采用JSON格式,遵循zabbix-sender协议。可以自定义脚本利用zabbix-sender协议来zabbix-server发送信息。

优点:
(1)不需要在被监控机器上安装zabbix-agent
(2)不收集被监控机器的信息
(3)可以自定义发送的信息内容
(4)可以使用自定义脚本发送信息

 缺点:
(1)需要自定义发送的信息内容
(2)无内置监控项目

(3).SNMP监控方式

SNMP全称Simple Network Management Protocol,即网络管理协议,包括进程管理和被管理设备两部分。
作为一种国际通用的网络管理协议被广泛的应用于各种交换机,路由器等网络设备的管理上,而现在也越来越多被用于对服务器的监控上。

优点:
(1)服务器一旦部署SNMPAgent,任何能实现SNMP协议的软件都可以对其进行监测。
(2)通过这种手段进行监测不需知道被监测服务器的用户名和密码,比较安全。

缺点:
(1)很多服务器并非默认安装SNMPAgent,如果通过这种方式监测则需要对所有服务器安装部署。
(2)能监测的参数指标比较固定不够深入,无法满足用户的特殊需求。
(3)由于SNMP协议是通过UDP方式实现的。在网络状况不佳的情况下其可靠性能以保证。

(4)JMX监控方式

JMX,全称Java Management Extensions,即Java管理拓展,是Java平台为应用程序,设备,系统等植入管理功能的框架。
在zabbix中,JMX数据的获取由zabbix-java-gateway代理程序来负责数据的采集。

优点:
可以详细的监控各类Java程序的运行状态

缺点:
被监控机上需要安装zabbix-java-gateway

(5)IPMI监控方式

IPMI,全称Interlligent Platform Management Interface,即智能平台管理接口,原本是Intel架构中企业系统的周边设备所采用的一种工业标准,以后成为业界通用的标准。
用户可以利用IPMI监控服务器的物理特性,如温度,电压,电扇工作状态,电源供应以及机箱等指标。

实验前提:已经完成了zabbix的安装部署,以及添加server主机(zabbix-agent)

点击此处即可查看zabbix的安装部署详细步骤

1.自定义监控 Nginx

 

zabbix自带apache监控,但没有nginx监控,所以需要自定义。

实验环境:

server1:192.168.1.7 zabbix-server
server2:192.168.1.20  zabbix-agent nginx

1.配置nginx

(1).下载并解压nginx

#1.在官网上下载nginx
[root@server2 ~]# ls
nginx-1.16.1.tar.gz  zabbix-agent-4.0.5-1.el7.x86_64.rpm
#2.解压
[root@server2 ~]# tar zxf nginx-1.16.1.tar.gz 
[root@server2 ~]# ls
nginx-1.16.1  nginx-1.16.1.tar.gz  zabbix-agent-4.0.5-1.el7.x86_64.rpm

(2).关闭debug日志

[root@server2 ~]# cd nginx-1.16.1
#关闭debug日志
[root@server2 nginx-1.16.1]# vim auto/cc/gcc 

  Zabbix实战--监控Nginx、MySQL与JAVA应用

(3).源码编译

#1.安装依赖包
[root@server2 nginx-1.16.1]# yum install -y gcc make pcre-devel zlib-devel
#2.configure配置
[root@server2 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
#3.编译与安装
[root@server2 nginx-1.16.1]# make && make install

(4).更改配置文件

[root@server2 nginx-1.16.1]# cd /usr/local/nginx/conf/
#1.更改配置文件
[root@server2 conf]# vim nginx.conf
####################
 location /status {
            stub_status on;          #加载模块
            access_log off;
            allow 127.0.0.1;         #访问控制;仅允许本机可以访问
            deny all;
        }

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

#2.检测语法
[root@server2 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
#3.开启nginx
[root@server2 conf]# /usr/local/nginx/sbin/nginx 
2.采集数据并添加nginx监控项

(1)采集Nginx发起的活跃连接数

1.利用shell命令获取活跃连接数

#多访问几次
[root@server2 conf]# curl http://127.0.0.1/status
Active connections: 1 
server accepts handled requests
 10 10 10 
Reading: 0 Writing: 1 Waiting: 0 
[root@server2 conf]# curl http://127.0.0.1/status | grep Active
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   100  100   100    0     0   229k      0 --:--:-- --:--:-- --:--:--   97k
Active connections: 1 
[root@server2 conf]# curl -s http://127.0.0.1/status | grep Active
Active connections: 1 
[root@server2 conf]# curl -s http://127.0.0.1/status | grep Active | awk ‘{print $3}‘
1

2.指定key-value

[root@server2 conf]# cd /etc/zabbix/zabbix_agentd.d/
[root@server2 zabbix_agentd.d]# ls
userparameter_mysql.conf
#1.拷贝模板文件
[root@server2 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf 
#2.更改文件
[root@server2 zabbix_agentd.d]# vim userparameter_nginx.conf 
###############################
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk ‘{print $3}‘

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

#重启zabbix-agent
[root@server2 zabbix_agentd.d]# systemctl restart zabbix-agent

3.在zabbix-server端测试

(1).安装zabbix_get工具

安装包:

zabbix-get-4.0.5-1.el7.x86_64.rpm 
[root@server1 ~]# yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm 

(2).测试agent

#若可以获取到数据即时为配置成功
[root@server1 ~]# zabbix_get -s 172.25.66.2 -p 10050 -k "nginx.active"
1

4.网页配置

(1).在server2主机中,创建nginx_active监控项

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 Zabbix实战--监控Nginx、MySQL与JAVA应用

 

(2).数据绘图

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

 (3).预览图形

图形中有数据,即说明监控nginx并采集数据成功 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

发现问题:无法显示中文(中文乱码) 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

 

 解决乱码问题:

#查看graphfont.ttf软连接,发现它链接到了本机系统
[root@server1 fonts]# pwd
/usr/share/zabbix/fonts
[root@server1 fonts]# ls
graphfont.ttf
[root@server1 fonts]# ll
total 0
lrwxrwxrwx 1 root root 33 Mar  9 10:23 graphfont.ttf -> /etc/alternatives/zabbix-web-font
[root@server1 fonts]# ll /etc/alternatives/zabbix-web-font
lrwxrwxrwx 1 root root 38 Mar  9 10:23 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@server1 fonts]# ll /usr/share/fonts/dejavu/DejaVuSans.ttf
-rw-r--r-- 1 root root 720012 Feb 27  2011 /usr/share/fonts/dejavu/DejaVuSans.ttf

  

#1.在windos系统中拷贝某种字体,并将其放到/usr/share/zabbix/fonts目录下
[root@foundation66 Desktop]# scp simkai.ttf root@172.25.66.1:/usr/share/zabbix/fonts
[root@server1 fonts]# ls
graphfont.ttf  simkai.ttf
[root@server1 fonts]# cd ..
[root@server1 zabbix]# cd include/
[root@server1 include]# pwd
/usr/share/zabbix/include
#2.启用该字体
[root@server1 include]# vim defines.inc.php 
#######################
:%s/graphfont/simkai/g

  Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

测试:刷新网页,发现中文正确显示

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

(2)采集Nginx总共处理的请求数

1.利用shell命令获取总共处理的请求数

[root@server2 ~]# curl http://127.0.0.1/status 
Active connections: 1 
server accepts handled requests
 40 40 40    #Nginx总共处理了40个连接,成功创建40次句柄(证明中间没有失败的),总共处理了40个请求
Reading: 0 Writing: 1 Waiting: 0 
[root@server2 ~]# curl -s http://127.0.0.1/status | awk NR==3 | awk ‘{print $1}‘
46

2.指定key-valus

[root@server2 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@server2 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}‘

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

#重启zabbix-agent
[root@server2 zabbix_agentd.d]# systemctl restart zabbix-agent

3.在zabbix-server端测试

[root@server1 include]# zabbix_get -s 172.25.66.2 -p 10050 -k "nginx.accept"
103

4.配置网页

(1).在server2主机中,创建nginx_accept监控项

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

(2)数据绘图

注意:此时无需重新创建图形,直接将其添加到刚创建的nginx_status图形中即可

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

(3)预览图形

图形中有数据,即说明监控nginx并采集数据成功 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

 

Zabbix实战--监控Nginx、MySQL与JAVA应用

上一篇:Symmetric 同步Oracle数据库


下一篇:JdbcTemplate