Linux(rhel7.5)下通过API接口管理Zabbix所监控主机:https://blog.csdn.net/qq_35887546/article/details/104904867
rhel7.5下通过Zabbix监控http、nginx、mysql
一.zabbix实现对http的监控
这里针对的是server2
1.在server2端安装并打开httpd服务
[root@server2 ~]# yum install httpd -y
[root@server2 ~]# systemctl start httpd
2.在server2中添加http监控模块
由于zabbix中已经自带httpd监控模板,故只需要添加模板即可。
选择server2
添加http监控模板:
点击添加
点击更新,得到最后的效果图
二.zabbix实现对nginx的监控
这里针对的是server3
1.配置server3
在server3端编译安装nginx,配置nginx并打开nginx服务
<1>编译安装nginx
[root@server3 ~]# tar zxf nginx-1.16.1.tar.gz
[root@server3 ~]# cd nginx-1.16.1
[root@server3 nginx-1.16.1]# yum install gcc pcre-devel zlib-devel -y #解决依赖性
[root@server3 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module #预编译,这里添加了http的监控模块
[root@server3 nginx-1.16.1]# make && make install
<2>配置nginx
[root@server3 nginx-1.16.1]# cd /usr/local/nginx/
[root@server3 nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@server3 nginx]# vim conf/nginx.conf
2 user nginx;
48 location /status {
49 stub_status on;
50 access_log off;
51 allow 127.0.0.1; # #添加访问控制,只允许本机访问
52 deny all;
53 }
<3>打开nginx服务
[root@server3 nginx]# nginx #打开nginx服务
[root@server3 nginx]# netstat -antlupe | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 33211 3986/nginx: master
tcp 0 0 172.25.63.3:10050 172.25.63.4:49980 TIME_WAIT 0 0 -
2.编辑zabbix-agent配置文件
nginx状态数据信息:
[root@server3 nginx]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0
其中信息的含义:
- active connections – 活跃的连接数量
- server accepts handled requests — 总共处理了3个连接 , 成功创建3次握手,
总共处理了3个请求 - reading — 读取客户端的连接数.
- writing — 响应数据到客户端的数量
- waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.
在server3端,编辑zabbix-agent对应的配置文件,使zabbix监控活跃的连接数量,
之后重启zabbix-agent服务
[root@server3 nginx]# cd /etc/zabbix/zabbix_agentd.d/
[root@server3 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值
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent
3.配置server4
1.安装测试软件
在server1端安装软件zabbix-get-4.0.5-1.el7.x86_64.rpm,用来测试
[root@server4 4.4]# yum install zabbix-get-4.4.1-1.el7.x86_64.rpm -y
2.测试:
[root@server4 4.4]# zabbix_get -s 172.25.63.3 -p 10050 -k "nginx.active" #测试是否可以获取到数据;如果有报错,请仔细检查文件内容;这里的nginx.active是文件对应的UserParameter的内容
1
如果测试没有问题,进行zabbix浏览器监控界面完成自定义添加监控项:
5.创建server3的监控项
6.创建图形
7.在图形预览查看效果:
点击nginx_status,进入图形预览界面
我们发现汉字出现了乱码的现象。所以下面针对解决汉字乱码的问题
在server4:
[root@server4 4.4]# cd /usr/share/zabbix/assets/fonts/
[root@server4 fonts]# ls
graphfont.ttf simkai.ttf #在网上下载字体对应的tty文件(比如simkai.tty),并将其拷贝的/usr/share/zabbix/assets/fonts/目录中
[root@server4 fonts]# cd /usr/share/zabbix/include/
[root@server4 include]# vim defines.inc.php
:%s/graphfont/simkai/g #在末行模式下,输入该命令,将启动的字体graphfont替换为字体simkai
此时再次预览图形,可以看到汉字乱码的现象,已经得到解决:
8.添加新的监控项
为了监控server3 nginx服务总共处理了多少个连接,可以使用以下命令:
[root@server3 ~]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
19
[root@server3 ~]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
20
以下就实现zabbix监控server3 nginx服务总共处理了多少个连接,总体过程和上一个监控项类似:
编辑zabbix-agent配置文件
[root@server3 ~]# pwd
/etc/zabbix/zabbix_agentd.d
[root@server3 zabbix_agentd.d]
# vim userparameter_nginx.conf
加入:
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent
测试:
[root@server4 include]# zabbix_get -s 172.25.63.3 -p 10050 -k "nginx.accept"
24
说明配置成功,之后创建监控项:
之后更新图形,点击nginx status:
更新完成后即可以预览图形:
即实现了在一个图中对nginx 两种状态的监控。
三、利用pernoca模板实现对 mysqld 的监控
zabbix实现利用pernoca模板对mysql数据库的监控,这里针对的是server4
1.在server4端添加DB MySQL模块
[root@server4 ~]# mkdir /var/lib/zabbix
[root@server4 ~]# cd /var/lib/zabbix/
[root@server4 zabbix]# vim .my.cnf
[root@server4 zabbix]# cat .my.cnf
[mysql]
host=localhost
user=root
password=redhat
socket=/var/lib/mysql/mysql.sock
[mysqladmin]
host=localhost
user=root
password=redhat
socket=/var/lib/mysql/mysql.sock
2.安装percona模块
[root@server4 4.4]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
3.配置percona模块
[root@server4 4.4]# cd /var/lib/zabbix/percona/
[root@server4 percona]# cd templates/
[root@server4 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@server4 zabbix_agentd.d]# cd /var/lib/zabbix/percona/scripts/
[root@server4 scripts]# vim ss_get_mysql_stats.php.cnf
[root@server4 scripts]# cat ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';
[root@server4 scripts]# systemctl restart zabbix-agent
4.测试:看脚本文件是否有错
[root@server4 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gk #没有报错,就表示正确
1903
[root@server4 ~]# cd /tmp/
[root@server4 tmp]# cat localhost-mysql_cacti_stats.txt #可以看到内容
[root@server4 tmp]# ll localhost-mysql_cacti_stats.txt
-rw-r--r-- 1 root root 1336 Mar 14 11:01 localhost-mysql_cacti_stats.txt #可以看到该文件的所属组和所属用户都是root,而不是zabbix。这样,对后续的写入是有影响的,所以要将该文件删除
[root@server4 tmp]# rm -rf localhost-mysql_cacti_stats.txt #执行脚本之后,会生成这个.txt文件,记得将其删除
5.浏览器导入模版:
点击浏览,选择要导入的模板(zbx_percona_mysql_template.xml)——该模板是之前在网上下载好的。
看到导入成功,即成功;
6.添加模块
配置——>主机——>Zabbix server——>模板,添加 percona MYSQL 模版;
点击更新,可以看到Zabbix server的监控项增多;
测试:看是否能看到数据
在数据库中即进行一些查看表的操作。
点击配置——>主机——>Zabbix server——>监控项——>Binary Log Space,可以看到,其更新间隔为300s(5分钟)
点击配置——>主机——>Zabbix server——>图形——>MySQL Processlist——>预览,可以看到图形(当然也可以选择其他的图形进行查看
选择InnoDB Buffer Pool 查看图形: