添加http服务监控项

http是zabbix自带的监控模板

zabbix监控接口配置_mysql


zabbix监控接口配置_zabbix监控接口配置_02

添加nginx服务监控项

nginx监控项zabbix没有,需要在agent端部署nginx服务

1.部署nginx服务

[root@jing2 ~]# tar zxf nginx-1.15.8.tar.gz
[root@jing2 ~]# yum install -y gcc make pcre-devel zlib-devel -y
[root@jing2 ~]# cd nginx-1.15.8
[root@jing2 nginx-1.15.8]# vim auto/cc/gcc 
		171 # debug
		172 #CFLAGS="$CFLAGS -g"      ##关闭debug日志
[root@jing2 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx  --with-http_stub_status_module
[root@jing2 nginx-1.15.8]# make && make install

2.编译配置文件,打开nginx

[root@jing2 nginx-1.15.8]# vim /usr/local/nginx/conf/nginx.conf
 48 location /status { 
 49 stub_status on; 
 # Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的;
 如果你要使用该模块,则要在编译安装Nginx时指定:./configure –with-http_stub_status_module 
 50 access_log off; # 关闭日志记录 
 51 allow 127.0.0.1; # 只允许本机访问 
 52 deny all; 
 53 }
[root@jing2 nginx-1.15.8]# /usr/local/nginx/sbin/nginx -t    
[root@jing2 nginx-1.15.8]# /usr/local/nginx/sbin/nginx      #打开nginx 

[root@jing2 nginx-1.15.8]# curl http://127.0.0.1/status
Active connections: 1 
server accepts handled requests
 3 3 1 
Reading: 0 Writing: 1 Waiting: 0

注意:
(1)此处查看连接数时不可以输入127.25.7.102,即本机的ip
(2)访问时显示 活跃连接数1个、server接收请求数、保持的主机数(获取建立三次握手的次数)、请求次数

(一) 监控连接数

利用查看连接数并将其放至userparameter_nginx.conf文件下

[root@jing2 nginx-1.15.8]#  curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
[root@jing2 nginx-1.15.8]# cd /etc/zabbix/zabbix_agentd.d/
[root@jing2 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@jing2 zabbix_agentd.d]# vim userparameter_nginx.conf
		UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'   #注意:此时的键值一定要注意,因为后面会用
[root@jing2 zabbix_agentd.d]# systemctl restart zabbix-agent

在jing1中安装zabbix_get (此包用于server端到agent端获取数据)

[root@jing1 4.0]# yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm
[root@jing1 4.0]# zabbix_get -s 172.25.7.102 -p 10050 -k "nginx.active"
1

在浏览器中选择访问http://172.25.7.102/,发现可以成功显示页面(无论刷新多少次,连接数都不会再次增加)

zabbix监控接口配置_连接数_03

再次在jing1中查看jing3的连接数,发现变为2了,说明连接成功

[root@jing1 4.0]# zabbix_get -s 172.25.7.102 -p 10050 -k "nginx.active"
2

实现通过监控查看连接数

zabbix监控接口配置_mysql_04


zabbix监控接口配置_mysql_05


zabbix监控接口配置_连接数_06

zabbix监控接口配置_zabbix监控接口配置_07

zabbix监控接口配置_mysql_08

zabbix监控接口配置_运维_09


出现乱码,重新换一个字体即可

下载字体到/usr/share/zabbix/fonts目录下,并替换defines.inc.php 的字体

[root@jing1 ~]# cd /usr/share/zabbix/fonts/
[root@jing1 fonts]# ls
graphfont.ttf  simkai.ttf
[root@jing1 fonts]# cd ..
[root@jing1 zabbix]# cd include/
[root@jing1 include]# vim defines.inc.php
		:%s/graphfont/simkai/g

zabbix监控接口配置_运维_10

(二) 监控接收请求数

为了实现可以大幅度增加访问请求数等,我们需要利用ab命令增加

#下载httpd的主要原因是要时用命令ab
[root@jing2 nginx-1.15.8]# yum install httpd -y
[root@jing2 nginx-1.15.8]# curl http://127.0.0.1/status

编写文件

[root@jing2 ~]# cd -
/etc/zabbix/zabbix_agentd.d
[root@jing2 zabbix_agentd.d]# 
[root@jing2 zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'   # 获取连接数(nginx.active为key值,获得的连接数为value值)
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'   # 获取接受请求数
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'   # 获取建立三次握手的次数
UserParameter=nginx.requests,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'   # 获取请求次数
[root@jing2 zabbix_agentd.d]# systemctl restart zabbix-agent

在jing1中获取jing2上的数据

[root@jing1 include]# zabbix_get -s 172.25.7.102 -p 10050 -k "nginx.accept"
634
[root@jing1 include]# zabbix_get -s 172.25.7.102 -p 10050 -k "nginx.handled"
640
[root@jing1 include]# zabbix_get -s 172.25.7.102 -p 10050 -k "nginx.requests"
581

实现通过监控查看请求数

zabbix监控接口配置_zabbix监控接口配置_11

zabbix监控接口配置_连接数_12

添加mysql服务监控项

agent所要采集的和数据库有关的信息设置都在:/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
在提取信息过程中,需要使用mysql 以及mysqladmin ping 指令进行对数据库中信息进行读取,但是由于数据库存在密码,需要设定文件让该两个指令在文件中读取数据库登陆信息。存放文件的目录已经给出: HOME=/var/lib/zabbix

(一) 在zabbix中添加自带的mysql监控模块
[root@jing1 scripts]# mysqladmin -uzabbix -predhat -h 127.0.0.1 ping | grep -c alive
1             ##存活检测 1表示存活 0表示挂了
[root@jing1 ~]# mkdir /var/lib/zabbix
[root@jing1 ~]# cd /var/lib/zabbix

针对两个指令编写登陆文件(由于是登陆信息,采用隐藏文件)

[root@jing1 zabbix]# vim .my.cnf
[mysql]
user = zabbix
password = redhat
socket = /var/lib/mysql/mysql.sock


[mysqladmin]
user = zabbix
password = redhat
socket = /var/lib/mysql/mysql.sock

[root@jing1 zabbix]# systemctl restart zabbix-agent

测试是否可以获得监控数据

[root@jing1 zabbix]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping
1

然后在web界面添加数据库监控模板

zabbix监控接口配置_运维_13

zabbix监控接口配置_nginx_14


zabbix监控接口配置_运维_15

zabbix监控接口配置_nginx_16


zabbix监控接口配置_运维_17

点击预览,发现此时是正在监控MYSQL的带宽,但是没有任何数据,这是因为没有访问数据库

zabbix监控接口配置_zabbix监控接口配置_18

[root@jing1 include]# mysql -p
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
MariaDB [zabbix]> select * from users;
MariaDB [zabbix]> exit

[root@jing1 zabbix]# systemctl restart zabbix-agent

zabbix监控接口配置_连接数_19


zabbix监控接口配置_mysql_20


注意;图片路径不要错了,象下面这样就没有数据

zabbix监控接口配置_mysql_21

(二) 但是自带的模块监控项太少了,所以我们将通过添加模块增加监控项

删除自带的mysql模版

向zabbix监控中导入模块监控mysql的模板percona(开源的mysql分析工具)

1.安装percona模块并编辑配置文件

[root@jing1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm 
[root@jing1 ~]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf    /etc/zabbix/zabbix_agentd.d/     #将模块信息文件复制到zabbix监控目录下

在脚本目录中编写配置文件,提供数据库的用户以及密码。

[root@jing1 ~]# cd /var/lib/zabbix/percona/scripts/
[root@jing1 scripts]# ls
get_mysql_stats_wrapper.sh  ss_get_mysql_stats.php

由于percona的监控脚本是使用php写的,所以需要准备好php运行环境, 将zabbix的数据库和密码写入php脚本中
[root@jing1 scripts]# vim ss_get_mysql_stats.php 
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';



[root@jing1 scripts]# cd ..
[root@jing1 percona]# cd templates/
[root@jing1 templates]# ls
userparameter_percona_mysql.conf
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@jing1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d      拷贝userparameter_percona_mysql.conf 文件到被监控的mysql服务器上(此时也是jing1主机)
[root@jing1 templates]# systemctl restart zabbix-agent

测试percona的脚本,过滤监控项

[root@jing1 templates]# cd -
/etc/zabbix/zabbix_agentd.d
[root@jing1 zabbix_agentd.d]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
0
[root@jing1 zabbix_agentd.d]# cd /tmp/    # 指定缓存在/tmp中
[root@jing1 tmp]# cat localhost-mysql_cacti_stats.txt 
gg:0 gh:0 gi:0 gj:0 gk:1874 gl:117497 gm:1 gn:15 go:0 gp:0 gq:8191 gr:7182 gs:995 gt:30 gu:968 gv:27 gw:4884 gx:2122 gy:980 gz:6836 hg:1787 hh:0 hi:0 hj:0 hk:0 hl:0 hm:0 hn:0 ho:0 hp:0 hq:54 hr:54 hs:52 ht:164 hu:90 hv:168 hw:3935 hx:271 hy:2 hz:108151 ig:0 ih:17674 ii:0 ij:21 ik:113 il:87 im:300 in:1024 io:400 ip:5 iq:1 ir:60 is:0 it:0 iu:24 iv:643 iw:1 ix:151 iy:0 iz:644 jg:-1 jh:-1 ji:0 jj:-1 jk:0 jl:0 jm:0 jn:0 jo:0 jp:0 jq:0 jr:0 js:0 jt:0 ju:26713 jv:248 jw:2366 jx:10578 jy:30 jz:0 kg:0 kh:0 ki:0 kj:0 kk:0 kl:156 km:0 kn:1538 ko:0 kp:2234 kq:0 kr:1561 ks:1811 kt:124 ku:1645 kv:4 kw:6 kx:7008533 ky:2327072 kz:8388608 lg:0 lh:18925032 li:18925032 lj:-1 lk:32768 ll:0 lm:0 ln:-1 lo:0 lp:0 lq:0 lr:0 ls:0 lt:0 lu:0 lv:0 lw:0 lx:0 ly:0 lz:0 mg:0 mh:0 mi:0 mj:0 mk:23 ml:1 mm:15738 mn:2 mo:0 mp:0 mq:969 mr:66305 ms:76251 mt:44 mu:1795 mv:17485 mw:0 mx:0 my:0 mz:271 ng:3935 nh:0 ni:0 nj:276671 nk:0 nl:137756672 nm:0 nn:3619 no:1 np:0 nq:2 nr:2446960 ns:139112 nt:1615929 nu:83536 nv:338512 nw:0 nx:-1 ny:-1 nz:-1 og:0 oh:24474624 oi:134217728 oj:31 ok:4 ol:-1 om:-1 on:-1 oo:-1 op:-1 oq:-1 or:-1 os:-1 ot:-1 ou:-1 ov:-1 ow:-1 ox:-1 oy:-1 oz:-1 pg:-1 ph:-1 pi:-1 pj:-1 pk:-1 pl:-1 pm:-1 pn:-1 po:-1 pp:-1 pq:-1 pr:-1 ps:-1 pt:-1 pu:-1 pv:-1 pw:-1 px:-1 py:-1 pz:-1 qg:-1 qh:-1 qi:-1 qj:-1 qk:-1 ql:-1 qm:-1 qn:-1 qo:936 qp:441790[root@jing1 tmp]# 
[root@jing1 tmp]# rm -fr localhost-mysql_cacti_stats.txt     # 删除该文件,再次自动生成的文件就是zabbix用户的文件

导入percona模块的监控模板

zabbix监控接口配置_连接数_22


zabbix监控接口配置_运维_23


zabbix监控接口配置_mysql_24


点击Zabbix server后出现以下界面,发现此时有很多mysql模块.随便点开一个模板进行查看,发现此时有数据

zabbix监控接口配置_zabbix监控接口配置_25