zabbix监控nginx,tomcat,mysql

Zabbix监控nginx

Zabbix客户端

配置nginx的yum源

编辑yum仓库:

vi /etc/yum.repos.d/nginx.repo

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

安装nginx:yum install -y nginx

配置nginx状态信息,增加一段配置

vi /etc/nginx/conf.d/default.conf

location /nginx_status

​ {

stub_status on;

access_log off;

allow 127.0.0.1;

deny all;

}

启动nginx服务:systemctl start nginx;ps aux | grep nginx

客户端测试:

[root@localhost ~]# curl http://127.0.0.1/nginx_status

Active connections: 1

server accepts handled requests

1 1 1

Reading: 0 Writing: 1 Waiting: 0
参数含义说明:

Active Connections:当前活动连接数,其中也包括了等待状态的连接

Accepts:接收到的连接数

Handled:已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了

Requests:总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大

Reading:正在读取请求头信息的连接数

Writing:正在发送响应报文的连接数

Waiting:处于闲置状态,等待客户端发送请求的连接数

在客户端机器上编写脚本

vi /usr/local/sbin/ngx_status.sh

#内容如下

#!/bin/bash

url="http://127.0.0.1/nginx_status"

curl=/usr/bin/curl

# 检测nginx进程是否存在

function ping {

/sbin/pidof nginx | wc -l

}

# 检测nginx性能

function active {

$curl $url 2>/dev/null| grep 'Active' | awk '{print $NF}'

}

function reading {

$curl $url 2>/dev/null| grep 'Reading' | awk '{print $2}'

}

function writing {

$curl $url 2>/dev/null| grep 'Writing' | awk '{print $4}'

}

function waiting {

$curl $url 2>/dev/null| grep 'Waiting' | awk '{print $6}'

}

function accepts {

$curl $url 2>/dev/null| awk NR==3 | awk '{print $1}'

}

function handled {

$curl $url 2>/dev/null| awk NR==3 | awk '{print $2}'

}

function requests {

$curl $url 2>/dev/null| awk NR==3 | awk '{print $3}'

}

$1

给脚本设定权限:

chmod 755 /usr/local/sbin/ngx_status.sh

编辑客户端zabbix_agent.conf配置,增加一行

vi /etc/zabbix/zabbix_agentd.conf

# UserParameter=
UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1

重启服务:

systemctl restart zabbix-agent

zabbix_get 监控脚本测试:

在服务端zabbix_server执行
zabbix_get -s 192.168.19.128 -k 'nginx.status[accepts]'

Zabbix_server web UI界面操作:

配置---主机---导入---导入文件(需要下载nginx模板)

img

下载nginx模板

yum install -y git

git clone https://github.com/aminglinux/linux2019.git

sz /linux2019/zabbix_nginx_template/zbx_export_templates.xml

使用sz命令将,目录中的模板下载到pc上。然后在zabbixweb UI 上使用import导入就行了。

img

将需要监控的nginx主机链接到该模板上。

配置--主机--点击选择的主机名称---模板--链接指示器--选择--选择群组--选择模板---添加--更新---查看监控项(多了nginx的项)

img

img

Zabbix监控tomcat

监控流程:

安装zabbix_java_gateway
配置zabbix_java_gateway配置文件和zabbix_server配置文件,指定监听端口,启动进程数
编辑Tomcat配置文件,开启JMX

以下操作到zabbix WEB UI界面
添加host,指定JMX interface
链接TOMCAT模板

Zabbix-server服务端:

安装zabbix_java_gateway

yum install -y zabbix-java-gateway

修改配置文件

vi /etc/zabbix/zabbix_java_gateway.conf
# LISTEN_IP="0.0.0.0" 改成 LISTEN_IP="0.0.0.0"

# LISTEN_PORT=10052 改成 LISTEN_PORT=10052
# START_POLLERS=5 改成 START_POLLERS=5

vi /etc/zabbix/zabbix_server.conf
定义 JavaGateway 和 JavaGatewayPort 和 StartJavaPollers

JavaGateway=127.0.0.1 //java gateway地址

JavaGatewayPort=10052 //java gateway默认端口

StartJavaPollers=5 //启动进程轮训个数

启动zabbix-java-gateway服务:

systemctl start zabbix-java-gateway
重启zabbix-server服务:

systemctl restart zabbix-server

开启**JMX(先安装tomcat**):
编辑Tomcat配置文件,开启JMX

vi /usr/local/tomcat/bin/catalina.sh

#!/bin/sh
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote //启用远程监控jvm

-Djava.rmi.server.hostname=192.168.111.136 //运行tomcat主机的ip地址

-Dcom.sun.management.jmxremote.port=9999 //jmx启动远程端口,zabbix添加时必须一致

-Dcom.sun.management.jmxremote.ssl=false //不启用ssl加密传输

-Dcom.sun.management.jmxremote.authenticate=false" //不开启用户名密码认证

注意:上面内容添加进配置文件后,做成一行,不要换行,换行可能

导致报错tomcat起不来。

重启tomcat 服务:

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

链接TOMCAT模板添加Host链接模板

配置--主机---创建主机---agent代理程序的接口(移除)---JMX接口(添加)----IP地址所需要监控的主机---端口(9999)

img

模板--链接指示器---添加---群组---添加--更新

img

img

img

Zabbix监控mysql/mariadb

授权一个监控用户

mysql -uroot -padmin123

\> grant usage, process, replication client on . to 'mon'@'localhost' identified by 'x2ay9xodTvyM';

查看编辑创建配置文件

vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

HOME=/var/lib/zabbix

mkdir /var/lib/zabbix

vim /var/lib/zabbix/.my.cnf

[mysql]

host=localhost

user=mon

password='x2ay9xodTvyM'

socket=/tmp/mysql.sock

[mysqladmin]

host=localhost

user=mon

password='x2ay9xodTvyM'

socket=/tmp/mysql.sock

重启zabbix-agent服务

systemctl restart zabbix-agent

测试

zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping

若提示:sh: mysqladmin: 未找到命令

需要: ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

zabbix_get -s 127.0.0.1 -p 10050 -k mysql.version

zabbix_get -s 127.0.0.1 -p 10050 -k mysql.size

img

img

img

猜你喜欢

转载自blog.51cto.com/11451960/2640770
今日推荐