Linux下利用zabbix实现对http(http模块)、nginx、mysql数据库(DB MySQL模块)的监控,以及通过pernoca模板实现对mysql数据库的监控(三)

续我的上篇博文:https://mp.csdn.net/postedit/88538021

 

一.zabbix实现对http的监控(这里针对的是server2)

 

1.在server2端安装并打开httpd服务

 

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# systemctl start httpd

 

2.在server2端添加http模块

 

 

点击选择,选择http模块

 

 

 

点击添加

 

 

点击更新,得到最后的效果图

 

 

二.zabbix实现对nginx的监控(这里针对的是server2)

 

前期准备:

在server2端,停掉httpd服务,以供80端口给nginx服务用

[root@server2 ~]# systemctl stop httpd

 

配置server2:

 

1.在server2端编译安装nginx,配置nginx并打开nginx服务

 

<1>编译安装nginx

[root@server2 nginx-1.15.8]# yum install gcc -y
[root@server2 nginx-1.15.8]# yum install pcre-devel -y
[root@server2 nginx-1.15.8]# yum install zlib-devel -y

[root@server2 ~]# tar zxf nginx-1.15.8.tar.gz 
[root@server2 ~]# cd nginx-1.15.8
[root@server2 nginx-1.15.8]# vim auto/cc/gcc 
171 # debug
172 #CFLAGS="$CFLAGS -g"          #对172行加注释

[root@server2 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module   #预编译,这里添加了http的监控模块
[root@server2 nginx-1.15.8]# make && make install   #编译并安装

 

<2>配置nginx

[root@server2 nginx-1.15.8]# vim /usr/local/nginx/conf/nginx.conf    #在文件的48-53行添加如下的内容
 48         location /status {
 49             stub_status on;
 50             access_log off;
 51             allow 127.0.0.1;     #添加访问控制,只允许本机访问
 52             deny all;
 53         }

 

<3>打开nginx服务

[root@server2 ~]# /usr/local/nginx/sbin/nginx -t    #监测nginx服务
[root@server2 ~]# /usr/local/nginx/sbin/nginx       #打开nginx服务

 

2.在server2端,编辑zabbix-agent对应的配置文件,并重启zabbix-agent服务

 

[root@server2 ~]# cd /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}'    #提取链接数。其中active这个名字,可以随便起
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'    #提取接收数。其中accept这个名字,可以随便起
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'    #提取处理数。其中accept这个名字,可以随便起
UserParameter=nginx.request,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'    #提取请求数。其中accept这个名字,可以随便起
[root@server2 zabbix_agentd.d]# systemctl restart zabbix-agent

 

配置server1:

 

1.在server1端安装软件zabbix-get-4.0.5-1.el7.x86_64.rpm,用来测试

 

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

 

2.测试:

[root@server1 ~]# zabbix_get -s 172.25.83.2 -p 10050 -k "nginx.active"   #测试是否可以获取到数据;如果有报错,请仔细检查文件内容;这里的nginx.active是文件对应的UserParameter的内容
1
[root@server1 ~]# zabbix_get -s 172.25.83.2 -p 10050 -k "nginx.accept"
37

 

如果测试没有问题,进行zabbix浏览器监控界面完成自定义添加监控项:

 

1.删除server2的http模块;

 

 

点击Template  App  HTTP Service后面的,取消链接并清理

 

 

2.创建监控;

 

点击配置——>主机——>server2——>监控项

 

 

点击创建监控项

 

 

填入,名称:nginx_active(这个名字是随意起的名字);键值:nginx.active(键值必须和文件的UserParameter保持一致),点击,最下方的添加,进入下一个界面。

 

再次点击创建监控项

 

 

填入,名称:nginx_accpet(这个名字是随意起的名字);键值:nginx.accpet(键值必须和文件的UserParameter保持一致),点击,最下方的添加,进入下一个界面。

 

再次点击创建监控项

 

 

填入,名称:nginx_handled(这个名字是随意起的名字);键值:nginx.handled(键值必须和文件的UserParameter保持一致),点击,最下方的添加,进入下一个界面。

 

再次点击创建监控项

 

 

填入,名称:nginx_request(这个名字是随意起的名字);键值:nginx.request(键值必须和文件的UserParameter保持一致),点击,最下方的添加,进入下一个界面。

 

 

 

点击图形

 

 

点击创建图形

 

 

填入,名称:nginx_status(这个名字是随意起的名字);添加两个监控项(nginx_active,nginx_accpet,nginx_handled和nginx_request)点击,最下方的添加,进入下一个界面。

 

 

3.在图形预览查看效果:

 

点击nginx_status,进入图形预览界面

 

 

我们发现汉字出现了乱码的现象。所以下面针对解决汉字乱码的问题

 

[root@server1 ~]# cd /usr/share/zabbix/fonts/
[root@server1 fonts]# ls
graphfont.ttf  simkai.ttf  #在网上下载字体对应的tty文件(比如simkai.tty),并将其拷贝的/usr/share/zabbix/fonts目录中


编辑字体对应的配置文件/usr/share/zabbix/include/defines.inc.php文件
[root@server1 fonts]# cd /usr/share/zabbix/include/
[root@server1 include]# vim defines.inc.php     
:%s/graphfont/simkai/g    #在末行模式下,输入该命令,将启动的字体graphfont替换为字体simkai

此时再次预览图形,可以看到汉字乱码的现象,已经得到解决

 

 

为了使实验效果更加明显,我们进行下面的操作

 

[root@foundation83 Desktop]# ab -c 100 -n 1000 http://172.25.83.2/index.html   #在物理机访问nginx服务(172.25.83.2主机上的index.html文件)
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'1291     #此时在server2上可以通过命令查看到接收数剧增
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'1310    #此时在server2上可以通过命令查看到处理数剧增
[root@server2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'1231     #此时在server2上可以通过命令查看到请求数剧增

 

此时,再次预览图片

 

三.zabbix实现对mysql数据库的监控(这里针对的是server1)

 

1.在server1端打开mariadb服务

 

[root@server1 ~]# systemctl start mariadb

 

2.在server1端添加DB  MySQL模块

 

[root@server1 ~]# mkdir /var/lib/zabbix/
[root@server1 ~]# cd /var/lib/zabbix/
[root@server1 zabbix]# vim .my.cnf 
[mysql]
host=localhost
user=root
password=root
socket=/var/lib/mysql/mysql.sock

[mysqladmin]
host=localhost
user=root
password=root
socket=/var/lib/mysql/mysql.sock
[root@server1 zabbix]# systemctl restart zabbix-agent

 

点击配置——>主机——>zabbix  server——>模板

 

 

在链接指示器,这一栏,点击选择,选择Template DB MySQL,点击,添加

 

 

点击更新,得到最后的效果图

 

 

测试:查看DB  MySQL模块对应的图形有没有数据,来确保该实验配置是否成功

 

点击配置——>主机——>zabbix  server——>图形——>MySQL bandwidth——>预览

 

 

点击配置——>主机——>zabbix  server——>图形——>MySQL operations——>预览

 

我们可以看到DB MySQL模板中的内容过于少,所以接下来,我们通过percona模板实现对mysql数据库的监控

 

四.zabbix通过pernoca模板,实现对mysql数据库的监控(这里针对的是server1)

 

逻辑:php脚本存储为文本文件,通过shell脚本进行相应的分析

 

1.首先,下载软件percona-zabbix-templates-1.1.8-1.noarch.rpm ;

1.##安装软件
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm 
#安装完成之后,会在/var/lib/zabbix目录中生成percona目录

2.##拷贝配置文件到/etc/zabbix/zabbix_agentd.d目录下
[root@server1 ~]# cd /var/lib/zabbix/percona/templates/
[root@server1 templates]# ls
userparameter_percona_mysql.conf
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

3.##脚本的改动
[root@server1 ~]# cd /var/lib/zabbix/percona/scripts/
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh  ss_get_mysql_stats.php 
[root@server1 scripts]# vim ss_get_mysql_stats.php.cnf
[root@server1 ~]# systemctl restart zabbix-agent

 

 

4.##测试:看脚本文件是否有错
[root@server1 ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
0            #没有报错,就表示正确
[root@server1 ~]# cd /tmp/
[root@server1 tmp]# cat localhost-mysql_cacti_stats.txt    #可以看到内容
[root@server1 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@server1 tmp]# rm -rf localhost-mysql_cacti_stats.txt  #执行脚本之后,会生成这个.txt文件,记得将其删除

 

2.浏览器导入模版:

 

 

点击右上角的导入,进入下一个界面

 

 

点击Browse,选择要导入的模板(zbx_percona_mysql_template.xml)——该模板是之前在网上下载好的。

 

 

点亮聚合图形的两个钩,点击导入。

如果看到导入成功,即成功;

 

在配置——>模板——>群组(Percona Templates)中,可以看到刚刚导入的percona模板

 

 

配置——>主机——>Zabbix server——>模板,清除原来的mysql的模版,添加 percona MYSQL 模版;

 

 

点击更新,可以看到Zabbix  server的监控项增多;

 

 

测试:看是否能看到数据

 

点击配置——>主机——>Zabbix  server——>监控项——>Binary Log Space,可以看到,其更新间隔为300s(5分钟)

 

点击配置——>主机——>Zabbix  server——>图形——>MySQL Processlist——>预览,可以看到图形(当然也可以选择其他的图形进行查看)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是在 CentOS 7 上安装 Zabbix 6.0、NginxMySQL 8、PHP 7.4 的步骤: 1. 安装 EPEL 和 Remi 源: ``` yum install -y epel-release rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm ``` 2. 安装 Nginx: ``` yum install -y nginx systemctl start nginx systemctl enable nginx ``` 3. 安装 PHP 7.4: ``` yum install -y php74-php-fpm php74-php-mysqlnd php74-php-xmlrpc php74-php-gd php74-php-intl php74-php-mbstring php74-php-soap php74-php-xml php74-php-json php74-php-zip systemctl start php74-php-fpm systemctl enable php74-php-fpm ``` 4. 安装 MySQL 8: ``` rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum install -y mysql-community-server systemctl start mysqld systemctl enable mysqld ``` 5. 配置 MySQL: ``` mysql_secure_installation ``` 6. 创建 Zabbix 数据库: ``` mysql -u root -p CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` 7. 导入 Zabbix 数据库: ``` cd /usr/share/doc/zabbix-server-mysql-6.0.0/ zcat create.sql.gz | mysql -u zabbix -p zabbix ``` 8. 安装 Zabbix Server 和 Agent: ``` yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent ``` 9. 配置 Zabbix: ``` vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=password ``` 10. 启动 Zabbix Server 和 Agent: ``` systemctl start zabbix-server zabbix-agent systemctl enable zabbix-server zabbix-agent ``` 11. 配置 Nginx: ``` vi /etc/nginx/conf.d/zabbix.conf server { listen 80; server_name localhost; root /usr/share/zabbix; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass unix:/run/php74-php-fpm/zabbix.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` 12. 重启 Nginx: ``` systemctl restart nginx ``` 13. 打开浏览器,输入服务器 IP 地址,进入 Zabbix Web 界面,按照提示进行 Zabbix 配置即可。 注意:以上步骤仅供参考,具体操作根据实际情况进行调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值