监控(利用jmx)

安装zabbix

wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

 

下载完之后,安装rpm包(实际上就是安装了一个yum源仓库)

[root@harry-01 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm 
警告:zabbix-release-3.2-1.el7.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-3.2-1.el7         ################################# [100%]
[root@harry-01 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

再有了这个zabbix.repo源之后,就可以yum安装zabbix了,并安装下面的包

# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

修改mysql的配置文件,修改/etc/my.cnf文件,设定默认的字符集

[root@harry-01 ~]# vim /etc/my.cnf

在[mysqld]下添加字符集

 

character_set_server = utf8

保存退出

修改完mysql的配置文件后,重启mysql服务,进入mysql命令行,创建zabbix库,并指定编码为utf8

[root@harry-01 ~]# mysql -uroot -p
Enter password: 

mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> 

创建用户

mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

mysql> quit 
Bye
[root@harry-01 ~]#

退出mysql的命令行后,导入原始的数据

[root@harry-01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/




[root@harry-01 zabbix-server-mysql-3.2.11]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@harry-01 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz 
[root@harry-01 zabbix-server-mysql-3.2.11]# ls
AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README
[root@harry-01 zabbix-server-mysql-3.2.11]# 

#然后拿到create.sql文件,将它导入到zabbix库里面去

[root@harry-01 zabbix-server-mysql-3.2.11]#mysql -uroot -p123123zabbix < create.sql 

启动zabbix服务

[root@harry-01 zabbix-server-mysql-3.2.11]# systemctl start zabbix-server

更改zabbix的配置文件,配置文件为/etc/zabbix/zabbix_server.conf

[root@harry-01 ~]# vim /etc/zabbix/zabbix_server.conf

 

搜索/DBHost

DBName=

DBHost=

DBPassword=

MySQL装在其他机器上,这是的DBHost,就需要写上mysql的ip

 

重启

[root@harry-01 zabbix-server-mysql-3.2.11]# systemctl restart zabbix-server 
[root@harry-01 zabbix-server-mysql-3.2.11]#

 

1.访问zabbix页面

10616327e343647c0f94444d8bf3d602a3b.jpg

è¾å¥å¾ç说æ

2.设置php的timezone时区,在php的配置文件中设置,默认php的配置文件在/etc/php.ini 里面

服务端

[root@harry-01 ~]# vim /etc/php.ini

 

搜索 /timezone

将 ;date.timezone 改为如下

 

date.timezone = Asia/Shanghai

保存退出

3.在定义完php的配置文件,还需要重启apache

[root@harry-01 zabbix-server-mysql-3.2.11]# systemctl restart httpd 

c85abda110ddf4fe70b25e86f87afaef5b9.jpg

4.根据提示一直next step 

登录管理页,默认的账号是Admin,密码为zabbix

 

5.更改密码,先选择 Administration ,然后选择 Users

è¾å¥å¾ç说æ

6.然后找到Admin,并点进去,选择 Change password 修改密码和选择语言(支持中文),然后保存退出

è¾å¥å¾ç说æ

è¾å¥å¾ç说æ

7.这时在退出zabbix,再重新进入下,使用新的密码,会看到重新进入了,这就是zabbix的web界面了

8.图形界面中文乱码解决:修改zabbix网页文件的 fonts目录下的字体文件

 

 

9.创建自动发现规则,发出网络上的主机并监控
 点击配置-自动发现-创建发现规则

2cea9620b838aebd8503a56945fc769e300.jpg

10.所有监控主机都需要安装zabbix-agent,编辑zabbix_agent.conf文件,修改如下内容

Server=192.168.1.103定义被动模式的server端
ServerActive=192.168.1.103定义主动模式的server端

11.添加监控项目

>需求1

  • 监控各个主机基础指标,CPU,内存,硬盘,网卡流量成图,web站点的可用性
创建方式:链接 OS Linux模板 然后取消链接,删除多余的监控项
模板名 Template_Base 模板应用到的所有主机
监控项保留下面这几个CPU内存相关的监控项,其余的都可以删除掉,没有监控项的应用集也可以删除
Agent ping CPU user time Number of processes Number of running processes Processor load (1 min average per core) Total memory 

自动发现网卡和硬盘

将两个自动发现的更新时间修改为 30s 当图形中有了自动发现的图形后可以改回30m 或者1h
这两个自动发现会自动创建 网卡流量 和 硬盘状态 的图形

af1ed90705c712dfbd664dff3e7e38e5ad7.jpg

 

检测web站点的可用性

在server端中写入一条 hosts:
echo '192.168.1.103 www.apelearn.com' >> /etc/hosts
在zabbix的web页面选择 配置 -- 主机 -- zbx-server -- web监测 -- 右上角创建web场景
场景选项卡中填写
名称:web可用性检测
新的应用集: web_check
客户端:随意选择一个,就是模拟什么浏览器访问监测的站点


步骤选项卡填写:
点击步骤框中的添加添加一个步骤, 填写一个自定义的步骤名称 填写要检测的站点的URL: 
填写最下面的状态码 200 点击最下边的添加按钮完成步骤的添加
点击添加按钮完成web场景的添加
再按照前面的步骤将其他两个web站点也添加上
添加完成过几十秒就可以在 监测中 -- web检测 中查看状态了

3f95e0a28581c97e446d22ad105623d1de3.jpg

031da62bab9b96dfecb75318c7b09ec4f2a.jpg

 

 

>需求2 

  • 定制自定义监控脚本,监控web服务器的并发连接数,接入zabbix,成图,设置触发器,超过100告警
     
#客户端

$ sudo vim /usr/local/sbin/estab.sh 
//内容如下
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
给脚本授权:
$ sudo chmod 755 /usr/local/sbin/estab.sh
修改配置文件
$ sudo vim /etc/zabbix/zabbix_agentd.conf
//增加
UnsafeUserParameters=1  //表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh 

#自定义监控项的key为my.estab.count(也就是在监控项中需要填写的键值),后面的[*]里面写脚本的参数,如果没有参数则可以省略,如果有需要用逗号分隔,脚本为/usr/local/sbin/estab.sh

 

重启客户端的zabbix服务:

$ sudo systemctl restart zabbix-agent

服务端验证,执行命令:

zabbix_get -s 192.168.14.103 -p 10050 -k 'my.estab.count'
0

-s:源地址
-p: 端口
-k: 键值

如上显示0即为没有任何连接

 

进入zabbix服务器的web页面,给每一台web主机创建监控项和图形并创建触发器:

名称:web1:并发连接数
严重性:警告
表达式:{web1:my.estab.count.last(,30)}>100
点击最下边的添加按钮完成触发器的添加
再将这个触发器复制到其他web主机,修改一下名称

 

自定义监控项:检测Mysql队列,超过300报警(mysql主机)
在客户端开启自定义监控脚本。修改客户端的配置文件zabbix_agent.conf,加入过修改以下内容:

UnsafeUserParameters=1
UserParameter=process.count[*],/usr/local/sbin/process_count.sh

脚本:
#!/bin/bash
# script name: process_count.sh
export  MYSQL_PWD=123456           #这里可以先定义密码,下面的命令就可以省略-p
process_count=`mysql -uroot  -e "SHOW FULL PROCESSLIST;" |wc -l`
echo $process_count

修改脚本权限,并重启zabbix-agent

[root@harry-01 sbin]# systemctl restart zabbix-agent
[root@harry-01 sbin]# 

进入zabbix网页,配置-主机-监控项-创建监控项
键值填process.count[*],就是上面自定义的键值,然后再为该项目创建触发项

0ac56b212ec8378d369be8bcdf3f9cc8f2a.jpg

 

>需求3

  • 定制自定义监控脚本,监控mysql的慢查询日志,接入zabbix,成图,设置触发器,每分钟超过60条日志需要告警
修改/etc/my.cn 配置文件 加入以下内容 
slow_query_log = ON    #开启慢查询日志 
slow_query_log_file = /data/mysql/slow.log 
long_query_time = 2 # 查询超过2秒就记录慢查询日志 

service mysqld restart

修改zabbix-agent.conf,添加以下字段

UnsafeUserParameters=1                 #表示使用自定义脚本                 
UserParameter=slow.query.count[*],/usr/local/sbin/slow_query_count.sh     #定义键值和脚本存放路径

创建慢查询统计脚本sudo vim /usr/local/sbin/slow_query_count.sh

#!/bin/bash
# script name: slow_query_count.sh
slow_log=/data/mysql/dbm-slow.log
grep 'timestamp' $slow_log | awk -F '=' '{print $2}' |awk -F ';' '{print $1}'|sort -r > /tmp/timestamp.log
now=`sed -n '1'p /tmp/timestamp.log`
alert_num=60
one_min_ago=$[$now-60]
num=0
##### 判断两个时间戳之前的差值
slow_query_sum() {
    if [ $1 -ge $2 ]
    then
        num=$[$num+1]
    else
    break
    fi
}
##### 获取在一分钟内的慢查询数

for n in `cat /tmp/timestamp.log`
do
    slow_query_sum $n $one_min_ago
done
##### 删除临时文件
rm -f /tmp/timestamp.log
# There are $num slow query in a minute.
echo $num

修改脚本权限,并重启zabbix-agent

sudo chmod 755 /usr/local/sbin/slow_query_count.sh
systemctl restart zabbix-agent

 

 

>需求4

  • 利用jmx,在zabbix上监控tomcat

编译zabbix server时需要提供java支持,即添加--enable-java该选项

 

zabbix server段配置java支持。此处编译安装zabbix的目录为/usr/local/zabbix-3.4.2

[root@localhost ]# vi /usr/local/zabbix3.4.2/sbin/zabbix_java/settings.sh   #修改如下字段的值
 LISTEN_IP="0.0.0.0"            //监听的服务器地址
 LISTEN_PORT=10052            //监听的端口
 PID_FILE="/tmp/zabbix_java.pid"    //指定zabbix_java的pid文件地址
 START_POLLERS=5
TIMEOUT=3

编辑/usr/local/zabbix/etc/zabbix_server.conf,修改完成之后,内容如下:

LogFile=/tmp/zabbix_server.log    //指明zabbix_server的日志文件地址
DBHost=localhost                //连接的数据库地址
DBName=zabbix                //连接的数据库名称
DBUser=zabbix                //连接数据库的用户名
DBPassword=zabbix            //连接数据库密码
JavaGateway=192.168.1.103       //java网关地址,即server端ip地址
JavaGatewayPort=10052            //java网关监听端口
Timeout=20                    //超时时间
FpingLocation=/usr/sbin/fping    //fping命令绝对地址
LogSlowQueries=3000
AllowRoot=1                    //允许root启动
User=root                    //zabbix服务的启动用户
StartPollers=50
StartPingers=100
StartJavaPollers=5
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts    //zabbix额外的脚本地址

重启zabbix server服务,以及启动zabbix java支持服务

/etc/init.d/zabbix_server restart
cd /usr/local/zabbix-3.4.2/sbin/zabbix_java && sh startup.sh

在zabbix agent部署的服务器上更改配置文件,修改tomcat配置文件。

vi /usr/local/tomcat/bin/catalina.sh        #在开头添加如下内容,注意要加在第二行
CATALINA_OPTS="-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.118.110"

其中,hostname=192.168.118.110需要修改为agent部署的服务器地址。更改完成需要重启tomcat应用服务器,同时查看端口12345是否处于监听状态。
[root@localhost]# netstat -lnp|grep 12345
tcp6       0      0 :::12345                :::*                    LISTEN      13453/java 

在zabbix agent部署的tomcat服务器上,下载对应的java jmx监控的相关jar包并复制到tomcat对应的目录下

wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/extras/catalina-jmx-remote.jar   
cp catalina-jmx-remote.jar /usr/local/tomcat/lib/

 

转载于:https://my.oschina.net/u/3993226/blog/3003725

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值