目录
一,Nginx 监控
二,MYSQL
三,zabbix 监控Tomcat
在node2上源码编译安装nginx服务并安装监控模块;
1).编译nginx
[root@node2 ~]# tar zxf nginx-1.22.0.tar.gz
[root@node2 ~]# cd nginx-1.22.0/
[root@node2 nginx-1.22.0]# yum install -y gcc pcre-devel openssl-devel
[root@node2 nginx-1.22.0]# vim auto/cc/gcc
[root@node2 nginx-1.22.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
[root@node2 nginx-1.22.0]# make
[root@node2 nginx-1.22.0]# make install
[root@node2 nginx-1.22.0]# ln -s /usr/local/nginx//sbin/nginx /usr/local/bin/
[root@node2 nginx-1.22.0]# cd /usr/local/nginx/conf/
[root@node2 conf]# vim nginx.conf
[root@node2 conf]# nginx -s reload
编辑配置文件,让其怎么对外开放;
[root@node2 conf]# vim nginx.conf
48 location /status {
49 stub_status on;
50 access_log off;
51 allow 127.0.0.1;
52 deny all;
53 }
[root@node2 conf]# 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
[root@node2 conf]# nginx -s reload
[root@node2 conf]# cd[root@node2~]# curl http://127.0.0.1/status #外部访问有问题
Active connections: 1
server accepts handled requests
4 4 7
Reading: 0 Writing: 1 Waiting: 0那么主要问题就是Server端如何拿到这串信息中有用的部分了。
[root@node2 ~]# curl -s http://127.0.0.1/status | grep Active
Active connections: 1
[root@node2 ~]# curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
1
[root@node2 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@node2 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@node2 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
[root@node2 zabbix_agentd.d]# vim ##将这一操作编写为规则userparameter_nginx.conf
[root@node2 zabbix_agentd.d]# cat userparameter_nginx.conf
UserParameter=nginx_active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
[root@node2 zabbix_agentd.d]# systemctl restart zabbix-agent.service #重启服务以上的过程是手动的取,前端监控页面完成规则的添加,让其自动获取;
创建监控项:
在前端界面进行监控项的设置:
此模板所用的监控项太少,换成下面的方式。
1).percona-mysql 模板结合 mysql 与 zabbix
与前面的相比 Percona Monitoring Plugins 带有190多个监控项。
下载软件包并配置信息:
[root@node1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@node1 ~]# cd /var/lib/zabbix/percona/scripts
为了能够正确链接数据库获取信息,需要修改ss_get_mysql_stats.php php脚本中数据库登陆相关内容:
[root@node1 scripts]# vim ss_get_mysql_stats.php
[root@node1 scripts]# ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php做链接
通过调用脚本来确定功能呢个是否能够实现:
[root@node1 scripts]# ./get_mysql_stats_wrapper.sh gg
[root@node1 scripts]# cd /tmp
[root@node1 tmp]# ls
systemd-private-eb6d6e16e5d14164a204696c7d55f681-httpd.service-5zs18D
systemd-private-eb6d6e16e5d14164a204696c7d55f681-rh-php72-php-fpm.service-nbEgA3
[root@node1 tmp]# cd /var/lib/zabbix/percona/templates
[root@node1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@node1 templates]# cd /etc/zabbix/zabbix_agentd.d/
[root@node1 zabbix_agentd.d]# ls
userparameter_percona_mysql.conf
[root@node1 zabbix_agentd.d]# systemctl restart zabbix-agent.service
测试结束删除/tmp/下生成的文本文件,用为root用户下测试的文件器与用户无法写入;
[root@node1 ~]# cd /tmp
[root@node1 tmp]# rm -rf localhost-mysql_cacti_stats.txt
为监控页面导入模板,方便进行自动化扫描:
此时再次查看时会发现多了一百多个监控项;图形处也变了很多。
Tomcat 在java虚拟机中默认操作无法实现对其监控;不过 zabbix也提供了组件zabbix-java-geteway.
先在node3上部署java环境,然后下载Tomcat的包;
[root@node3 ~]# yum install -y java-1.8.0-openjdk.x86_64
[root@node3 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[root@node3 ~]# cd /usr/local/
[root@node3 local]# ln -s apache-tomcat-7.0.37/ tomcat
[root@node3 local]# cd tomcat
[root@node3 tomcat]# cd bin/
[root@node3 bin]# ./startup.sh
此时便开启8080端口。
修改配置文件,增加额外监听端口:
[root@node3 bin]# vim catalina.sh
[root@node3 bin]# ./shutdown.sh
[root@node3 bin]# ./startup.sh
在node1上安装监控java的组件并完成配置:
[root@node1 ~]# yum install zabbix-java-gateway.x86_64
[root@node1 ~]# cd /etc/zabbix/
[root@node1 zabbix]# systemctl enable --now zabbix-java-gateway.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-java-gateway.service to /usr/lib/s
[root@node1 zabbix]# netstat -antlp|grep :10052
tcp6 0 0 :::10052 :::* LISTEN 31789/java
[root@node1 zabbix]# vim zabbix_server.conf
[root@node1 zabbix]# systemctl restart zabbix-server.service
在网页信息中添加对JMX接口的支持:
添加完成之后会多很多JVM的包;