配置服务监控
续上一篇博客
【server2】
1>给 server2 添加 httpd 监控
实现zabbix监控httpd服务
httpd是zabbix自带的监控模块
(1)首先在server2上安装apache,开启服务
systemctl start zabbix-agent
systemctl status zabbix-agent
进入网页:配置>主机>server2>模版>Template APP HTTP service>添加,更新> 查看主机的可用性(必须是绿色的)
可以看到server2的监控模板上有HTTPd
可以看到server2主机的触发器多了一个httpd服务的触发器,是端口的触发器,zabbix是通过端口来检测httpd服务的
在server2上安装apache,开启服务
yum install httpd -y ##安装httpd服务并启动
systemctl start httpd
可以在图形上找到对应的群组 主机 然可可以选择要查看的图形 —CPU jumps,memory usages等
实现zabbix监控nginx服务(通过zabbix监控nginx的链接数—自定义监控)
可以在server2安装nginx,监听8080,因为80被http占用,当然为了方便我们在server3上做
如果在server2上只需要 vim /usr/local/nginx/conf/nginx.conf 把监听端口改为8080,剩下操作和在server3上面做到都一样
在监控主机server3上部署nginx服务。
下载安装包并解压,安装依赖性软件并编译安装,注释掉debug日志。
【server3】
但是这个 http 监控的监控项只有一个,在 server3 上自定义 nginx 的监控
1:#源码编译 nginx,关闭 debug,添加监控模块
tar zxf nginx-1.17.4.tar.gz cd nginx-1.17.4
cd ngixn-1.17.4.tar.gz
2: vim auto/cc/gcc
172 :#CFLAGS="$CFLAGS -g"
[root@server3 ~]# yum install gcc pcre-devel zlib-devel -y
[root@server3 ~]# tar zxf nginx-1.15.8.tar.gz
[root@server3 ~]# cd nginx-1.15.8/
[root@server3 nginx-1.15.8]# ./configure --help | grep stub
--with-http_stub_status_module enable ngx_http_stub_status_module
[root@server3 nginx-1.15.8]# vim auto/cc/gcc #注释debug行
[root@server3 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module编译 这个模块至关重要!!帮助监听nginx的访问状态的,比如有多少请求,目前有多少活动链接等
[root@server3 nginx-1.15.8]# make && make install安装
4:启用监控,关闭日志,只允许本机查看状态监控
修改nginx配置文件,向nginx配置文件中添加用于网页状态的查看检测的模块,以及开启nginx服务。
[root@server3 nginx]# vim /usr/local/nginx/conf/nginx.conf
48 location /status {
49 stub_status on; #开启该模块 就是刚才预编译添加的模块
50 access_log off; #关闭日志记录
51 allow 127.0.0.1; #白名单 只允许本机访问
52 deny all;
53 }
useradd nginx
/usr/local/nginx/sbin/nginx ##启动nginx
当然也可以:(选做)
做一个软链接方便更新,同时查看nginx的路径,检查配置文件是否正确。
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
[root@server3 nginx]# which nginx
/usr/sbin/nginx
[root@server3 nginx]# nginx -t监测配置文件的语法
[root@server3 nginx]# nginx 开启nginx服务
开启服务
在server3本机curl 127.0.0.1/status来测试nginx服务是否部署成功
此处的status就对应配置文件的那个location /status
5:多访问几次,增加数据量
curl http://127.0.0.1/status
网页访问ip3进入到nginx欢迎页面
也可以ip/status进入到nginx访问数 链接数什么的
6:自定义 nginx 监控项
【server3】
【1】获取活跃链接数(三剑客)
(1):curl -s http://127.0.0.1/status | grep Active | awk ‘{print $3}’
##user -> webui -> zabbix server -> zabbix agent -> shell -> zabbix server -> mysql -> webui
(2)#编辑获取链接数的配置文件
修改server3的配置文件/etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf,创建nginx的监控项
cd /etc/zabbix/zabbix_agentd.d --> ls
cp userparameter_mysql.conf userparameter_nginx.conf #将mysql服务的监控模版给nginx服务复制一份
vim userparameter_nginx.conf ##加在文件末尾,其余全部注释
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk'{print $3}' #获取活跃连接数,nginx.active为健值,获得的连接数为value值
systemctl restart zabbix-agent #修改完成重启服务。
systemctl status zabbix-agent
注意此处的key值nginx.active特别重要!!
zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key 是否能正常获取到数据
在测试自定义监控的时候特别有用
在server1下载软件zabbix-get,来获取server3的活跃连接数
(3)【server1】
zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key 是否能正常获取到数据
在测试自定义监控的时候特别有用
#在 server1 上安装 zabbix-get,来用命令方式获取 key 值,同时为了测试是否能获取到自己设置的 key 值
yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm
zabbix_get -s 172.25.78.3 -p 10050 -k “nginx.active”
##获取到数据说明配置正确
-s:指定客户端主机名或ip
-p:客户端端口,默认10050
-k:想要获取的key,k后的参数是刚才配置文件里的
(4)【server3】
#给 server3 配置监控项
进入主机server3->创建监控项->填写信息
#这里要注意:键值一栏,填的内容需要和配置文件中 UserParameter 定义的 key 值相同,否则无效
添加图形
->创建图形,填写名称->在下面添加监控项->选择nginx_active->点击添加
进入图形点击nginx_status>预览
##新建图形并添加监控项(nginx_active) 在预览中可以看到已经产生数据,但是发现汉字无法显示,是字体原因
图形访问不到 查看下日志 cd /usr/local/zabbix/etc/zabbix_agent 查看日志所在地方 然后查看日志看有没有报错 反正得很久很久阿 可以在zabbix_server通过zabbix_get来获取数据
(5)【server1】
web界面字体的调整(因为一开始选择了中文造成了乱码,现在把zabbix汉化)
##zabbix 字体存放在下面路径
cd /usr/share/zabbix/fonts
cp /root/zabbix/simkai.ttf . --> ls
#获取字体,有simkai.ttf
#修改配置使新字体生效
vim /usr/share/zabbix/include/defines.inc.php
搜索 FONT 关键字,发现使用的是 graphfont.ttf 字体 >:%s/graphfont/simkai/g ##替换为 simkai
#网页刷新,字体正常
【2】获取接收请求数
(1):【server3】
1:curl http://127.0.0.1/status curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'`
2:vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
##写在文件末尾
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
systemctl restart zabbix-agent ##重启
(2):【server1】测试获取 key 值
zabbix_get -s 172.25.0.3 -p 10050 -k “nginx.accept”
(3):添加监控项和图形 过程和上一个监控项相同
##注意:此时添加的图形名称不能与上一个监控的名称重明,否则可能会出问题
添加监控项:
添加图形:将新建的监控项添加到原来的nginx_active的图形中,将监控项放在同一个坐标图形里面可以对比
将新建的监控项添加到原来的nginx_active的图形中,将两个监控项放在同一个坐标图形里面可以对比
为了图形界面的效果显示的更加明显,我们通过server3自己进行压力测试,自己访问自己
(4):物理机:增加数据,看的更清楚
[root@foundation63 ~]# ab -c 1 -n 1000 http://172.25.78.3/index.html
为了图形界面的效果显示的更加明显,我们通过server3自己进行压力测试,自己访问自己 安装httpd 然后压力测试
[root@server2 zabbix]# ab -c 1 -n 1000 http://172.25.2.3/index.html
当然也可以不用安装 因为server2安装了http,也可以直接进行压力测试
当然压力测试在哪台主机都是可以的,三个任选一个即可。
server3:
curl -s http://127.0.0.1/status
##实时图,网页刷新页面,数据会变
可以在图形处选择不同类型图形的切换方法----预览