Zabbix 监控系统

Zabbix 监控

  • Zabbix
    • 部署netdata:
    • 部署zabbix:
      • 1. 部署zabbix-mysql
      • 2. 部署zabbix-server
        • (1)部署lamp环境
        • (2)部署zabbix-server
      • 3. 部署zabbix-agent
      • 4.Windows-agent配置
        • 防火墙入站规则
        • 防火墙出站规则
    • 监控的内容:
      • 根分区IO
      • 分区的资源使用|剩余:
      • 监控网卡的IO
      • 内存剩余率
      • CPU idle/负载
      • 监控mysql:
      • 配置报警:
      • zabbix-proxy ★★★★★
    • zabbix页面设置
      • 设置向导
        • 添加agent主机
        • 添加模板
        • 添加应用集,自定义模板
        • 设置触发
        • 钉钉报警媒介设置步骤:
          • z-server
          • 页面设置:
      • 参考:
    • 配置zabbix自动发现
    • 升级后无法使用zabbix-get

Zabbix

在centos7环境部署监控软件-zabbix

监控:

内容:
硬件:
防火墙
交换机:端口流量
服务器:CPU 内存插槽 raid卡 网卡 风扇 温度 …

系统:
centos6
centos7
windows
CPU 内存 硬盘分区 网卡

软件:
各个服务的状态

分类:
netdata实时监控
zabbix有延迟的监控

部署netdata:

netdata监控 部署

[root@zserver ~]# yum install -y libuuid-devel zlib-devel gcc make git autoconf automake pkgconfig

[root@zserver ~]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd tar          
cd ok, cwd=/tar                 
lftp 172.16.0.99:/tar> get netdata.tgz 

[root@zserver ~]# tar zxf netdata.tgz ---> 小实验的监控软件
[root@zserver ~]# cd netdata

[root@zserver ~/netdata]# ./netdata-installer.sh --install /usr/local/

[root@zserver ~]# netstat -antp | grep 19999
tcp    0      0 0.0.0.0:19999    0.0.0.0:*     LISTEN      5069/netdata        
tcp6   0      0 :::19999         :::*          LISTEN      5069/netdata 

浏览器访问:http://172.16.0.71:19999


部署zabbix:

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案

SNMP: 简单网络管理协议,zabbix用它监控网络设备,防火墙或交换机
zabbix agent: 监控centos6 centos7 windows 应用软件
fping: 监控节点的存活状态

官网:www.zabbix.com
https://www.zabbix.com/documentation/3.4/zh/manual
3.4版本的中文手册

角色介绍:
zabbix-server:通过各种介质,监控 设备、系统、软件
zabbix-mysql:保存zabbix-server收集过来的被监控端的监控数据
zabbix-proxy:在机房内部,实现分布式监控的
zabbix-agent:被监控端

1. 部署zabbix-mysql

[root@zmysql ~]# yum install -y mariadb mariadb-server

[root@zmysql ~]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd release/     
lftp 172.16.0.99:/release> get zabbix-release-3.4-2.el7.noarch.rpm 
							这个包是为了生成zabbix的源

[root@zmysql ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm  # 这个包是为了生成zabbix的源

[root@zmysql ~]# yum install -y zabbix-server-mysql	# 安装zabbix-mysql

[root@zmysql ~]# cd /usr/share/mysql/
[root@zmysql /usr/share/mysql]# cp my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

[root@zmysql ~]# vim /etc/my.cnf
# but will not function as a master if omitted
61 server-id   = 72
	标识mysql-server,ID号,不能有符号
   log_slave_updates
	AB复制,级联使用
   binlog-ignore-db=mysql
	AB复制,忽略mysql库
   datadir=/data/mysql		# 下边需要创建这个目录
	将数据目录分离出来


[root@zmysql ~]# mkdir -p /data/mysql
[root@zmysql ~]# chown -R mysql:mysql /data/mysql/

[root@zmysql ~]# systemctl start mariadb
[root@zmysql ~]# systemctl enable mariadb





进入mysql,指定字符集,建库,授权
[root@zmysql ~]# mysql

建zabbix库,并且给zabbix库指定字符集  <-----重点!!!
MariaDB [(none)]> create database zabbix default character set utf8 collate utf8_general_ci;
MariaDB [(none)]> show create database zabbix; 
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| zabbix   | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
MariaDB [(none)]> create database zabbix;
MariaDB [(none)]> grant all on zabbix.* to zabbix@'172.16.%' identified by '12345';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> select user,host from mysql.user;	# 查看用户是否添加成功
+--------+-----------+
| user   | host      |
+--------+-----------+
| root   | 127.0.0.1 |
| zabbix | 172.16.%  |
| root   | ::1       |
|        | localhost |
| root   | localhost |
|        | mariadb   |
| root   | mariadb   |
+--------+-----------+

MariaDB [(none)]> quit     <---退出



# 查看目录下存在一个数据库备份的压缩文件(.sql备份文件)
[root@zmysql /data/mysql]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/
[root@2 zabbix-server-mysql-3.4.15]# ls		
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README

[root@zmysql /usr/share/doc/zabbix-server-mysql-3.4.15]# gunzip create.sql.gz 
[root@zmysql /usr/share/doc/zabbix-server-mysql-3.4.15]# mysql zabbix < create.sql  # 将备份的sql文件导入zabbix库

[root@zmysql ~]# mysql zabbix
MariaDB [zabbix]> show tables;
	看到表,OK!

2. 部署zabbix-server

(1)部署lamp环境


[root@zserver ~]# yum install -y httpd php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash libjpeg*

[root@zserver ~]# vim /etc/httpd/conf/httpd.conf   # 进入apache的配置文件,添加index.php选项才可以支持php
164     DirectoryIndex index.php index.html

[root@zserver ~]# vim /etc/php.ini
 384 max_execution_time = 300
	##应用程序的最大执行时间,秒
 394 max_input_time = 300
	##接收数据的最大超时时间,秒
 672 post_max_size = 16M
	##接收数据的最大值
 878 date.timezone = Asia/Shanghai
	##时区

[root@zserver ~]# systemctl start httpd
[root@zserver ~]# systemctl enable httpd

(2)部署zabbix-server

[root@zserver ~]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd release/
lftp 172.16.0.99:/release> get zabbix-release-3.4-2.el7.noarch.rpm 

[root@zserver ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm	
# 这个包给本地建立网络yum源,为了下边安装zabbix各项软件做准备

[root@zserver ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-java-gateway zabbix-get		
# 安装zabbix的监控软件
zabbix-get   --->   监控centos6 centos7 windows 应用软件  执行zabbix 键值命令用到
zabbix-java-gateway   ---> Zabbix本身不支持直接监控Java,在zabbix 1.8以前,只能使用Zapcat来做代理监控,而且要修改源代码,非常麻烦。所有后来为了解决这个监控问题,Zabbix和Java双方应运生成了各自的代理监控程序:zabbix 2.0以后添加了服务进程zabbix-java-gateway;Java有了JMX,全称是Java Management Extensions,即Java管理扩展。
zabbix-web-mysql	---> Zabbix的web端会通过这些数据,来展示绘图。
zabbix-server-mysql 	---> 数据库是用来存放采集到的数据

部署中文字体:
windows字体路径--C:\Windows\Fonts
	楷体常规

[root@zserver ~]# mkdir /usr/share/fonts/simkai
[root@zserver ~]# cd /usr/share/fonts/simkai/
[root@zserver /usr/share/fonts/simkai]# ls
simkai.ttf


编辑字体的配置文件  # cd /usr/share/zabbix/include/
[root@zserver /usr/share/zabbix/include]# vim defines.inc.php 
  53 define('ZBX_FONTPATH',  '/usr/share/fonts/simkai'); 
  54 define('ZBX_GRAPH_FONT_NAME',       'simkai');

编辑zabbix-java的配置文件:
[root@zserver /etc/zabbix]# vim zabbix_java_gateway.conf
9  LISTEN_IP="0.0.0.0"
17 LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=50   #设置启动多个线程  只有这个需要改,其它注释打开
TIMEOUT=3
	这是监控java程序需要的配置文件

设置zabbix-server配置文件
[root@zserver /etc/zabbix]# vim zabbix_server.conf
91  DBHost=172.16.0.72    # 改	对应z-mysql的ip
100 DBName=zabbix
116 DBUser=zabbix
124 DBPassword=12345	# 改
131 DBSocket=/var/lib/mysql/mysql.sock # 改
139 DBPort=3306		# 开注释
	连接mysql
	
261 JavaGateway=localhost		# 改
269 JavaGatewayPort=10052		# 去注释
277 StartJavaPollers=50     # 改
	连接java-gateway


启动服务:
[root@zserver ~]# systemctl start zabbix-java-gateway
[root@zserver ~]# systemctl enable zabbix-java-gateway
[root@zserver ~]# systemctl start zabbix-server
[root@zserver ~]# systemctl enable zabbix-server

[root@zserver ~]# systemctl restart httpd

[root@zserver ~]# netstat -antp | grep :1005[12] # 查看10051 和 10052 端口的的服务启动状态
tcp    0   0 0.0.0.0:10051   0.0.0.0:*     LISTEN      8467/zabbix_server
tcp6   0   0 :::10051        :::*          LISTEN      8467/zabbix_server
tcp6   0   0 :::10052        :::*          LISTEN      8428/java

[root@1-server zabbix]# systemctl restart httpd   # 再次重启apache服务

浏览器访问:http://172.16.0.71/zabbix/

3. 部署zabbix-agent

(添加一台之前部署过mysql的机器)
(安装了mysql的centos7。)

[root@zagent-mysql ~]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd release/     
lftp 172.16.0.99:/release> get zabbix-release-3.4-2.el7.noarch.rpm 
13572 bytes transferred
lftp 172.16.0.99:/release> bye
[root@zagent-mysql ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm 

[root@zagent-mysql ~]# yum install -y zabbix-sender zabbix-agent

[root@zagent-mysql /etc/zabbix]# vim zabbix_agentd.conf
 97 Server=172.16.0.71			--->zabbix-server
138 ServerActive=172.16.0.71:10051	---> zabbix-server
149 Hostname=172.16.0.101			---> mysql-zabbix-agent

启动agent服务
[root@zagent-mysql ~]# systemctl start zabbix-agent
[root@zagent-mysql ~]# systemctl enable zabbix-agent

查看是否启动成功
[root@zagent-mysql ~]# netstat -antp | grep 10050
tcp        0      0 0.0.0.0:10050   0.0.0.0:*   LISTEN      1562/zabbix_agentd
tcp6       0      0 :::10050        :::*        LISTEN      1562/zabbix_agentd

4.Windows-agent配置

准备工作:
虚拟机端:关闭防火墙,打开允许远程控制连接
实体机:运行 输入 mstsc.exe (远程桌面连接工具),
将zabbix-agent文件夹拷贝到虚拟机端 C:\Program Files (x86)
配置文件:
使用notepad工具对 C:\Program Files (x86)\zabbix-agentd\conf\zabbix_agentd.conf 配置文件进行设置
server= (zserver的ip)
ServerActive=(zserverip : 10051) ---- > 如果端口号修改过,那这里也要修改
Hostname=(本机的名字,方便区分可以设置本机ip)

启动agent服务:
虚拟机端:运行 CMD 工具,设置如下
Zabbix 监控系统_第1张图片打开防火墙,设置防火墙规则
Zabbix 监控系统_第2张图片Zabbix 监控系统_第3张图片Zabbix 监控系统_第4张图片### 设置防火墙规则

防火墙入站规则

Zabbix 监控系统_第5张图片Zabbix 监控系统_第6张图片Zabbix 监控系统_第7张图片Zabbix 监控系统_第8张图片Zabbix 监控系统_第9张图片

防火墙出站规则

端口对应zserver 设置成10051
出站规则名字:设置成zserver即可。

监控的内容:

通过使用zabbix_get 可以检测监控键值是否可用,

Zabbix_get 一般在zabbix-server上对agent使用
如果配置了zabbix-proxy,那么zabbi_get就要在zabbix-proxy使用才可以

mysql服务需要的监控内容

根分区IO

	vfs.dev.read[,,]
	vfs.dev.read[/dev/mapper/centos-root,,]	# 根分区的lv在1分钟之内的读硬盘的速度

	vfs.dev.write[,,]
	vfs.dev.write[/dev/mapper/centos-root,,]
[root@zserver ~]# df -h 查看根分区名字(/dev/mapper/centos-root)
[root@zserver ~]# zabbix_get -s  172.16.0.101 -p 10050 -k vfs.dev.read[/dev/mapper/centos-root,,] 
[root@zserver ~]# zabbix_get -s  172.16.0.101 -p 10050 -k vfs.dev.write[/dev/mapper/centos-root,,]

分区的资源使用|剩余:

	vfs.fs.size[/,pused]		
	vfs.fs.inode[/,pused] 

	vfs.fs.inode[/,pfree]   # inode 百分比显示剩余空间
	vfs.fs.size[/,pfree]	# block 百分比显示剩余空间

监控网卡的IO

	是不是断开?
	icmpping
	
	网卡的 IO
	net.if.in[if,]	网卡的IN   
	net.if.out[if,]	网卡的OUT

[root@zserver ~]# zabbix_get -s 172.16.0.101 -p 10050 -k net.if.in[ens32]
15491364
[root@zserver ~]# zabbix_get -s 172.16.0.101 -p 10050 -k net.if.out[ens32]
2708242
当前值是总量,没用
需要的是单位时间的传输速率
每秒速率
自定义倍数 8

内存剩余率

vm.memory.size[pavailable] 剩余率的百分比
[root@zserver ~]# zabbix_get -s 172.16.0.101 -p 10050 -k vm.memory.size[pavailable]
75.282486
剩余率的百分比

vm.memory.size[total] 内存总量
[root@zserver ~]# zabbix_get -s 172.16.0.101 -p 10050 -k vm.memory.size[total]
1023688704
内存大小

CPU idle/负载

	system.cpu.util[,idle]	CPU的idle

[root@zserver ~]# zabbix_get -s 172.16.0.101 -p 10050 -k system.cpu.util[,idle]
99.666444

	system.cpu.load[percpu,avg1]	
	1分钟之内,负载率 <=1 说明正常;>1 超负荷了

agent和server之间,数据的传递方式:

  1. 主动式
    agent主动将数据传输给server。
    应用场景:
    服务器直连公网。

  2. 被动式
    agent等待server连接,将自己的数据收集到server。


自定义监控项 --> 自定义模板


监控mysql:

yum install -y mariadb	5.5
	默认没有root@localhost密码
mysql5.7 bin
	PATH变量里没有mysql命令的路径
mysql5.7 rpm
	都有初始的root@localhost密码
[root@zagent-mysql /etc/zabbix/zabbix_agentd.d]# vim userparameter_mysql.conf
	自定义键值
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix /usr/local/mysql/bin/mysql -u root -p密码 -N 2> /dev/null | awk '{print $$2}'

UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix /usr/local/mysql/bin/mysql -u root -p密码 -N 2> /dev/null'

[root@zagent-mysql ~]# systemctl restart zabbix-agent

mysql的端口状态:
	net.tcp.listen[port]
	net.tcp.port[<ip>,port]
[root@zserver ~]# zabbix_get -s 172.16.0.101 -p 10050 -k net.tcp.listen[3306]
1
[root@zserver ~]# zabbix_get -s 172.16.0.101 -p 10050 -k net.tcp.port[,3306]
1

监控nginx和tomcat的端口状态:
[root@zserver ~]# zabbix_get -s 172.16.0.111 -p 10050 -k net.tcp.port[,80]
1
[root@zserver ~]# zabbix_get -s 172.16.0.111 -p 10050 -k net.tcp.listen[80]
1
[root@zserver ~]# zabbix_get -s 172.16.0.121 -p 10050 -k net.tcp.listen[8080]
1
[root@zserver ~]# zabbix_get -s 172.16.0.121 -p 10050 -k net.tcp.port[,8080]
1

zabbix 非正常关机:
先启动 z mysql
启动完成
再启动 z server
启动完成
最后启动 z agent


监控nginx的status:

[root@zagent-nginx /usr/local/nginx]# vim conf/nginx.conf
	写在虚拟主机里面
        location /nginx_status {
     
            stub_status on;
            access_log off;
            allow 127.0.0.1;
            deny all;
        }

[root@zagent-nginx /usr/local/nginx]# ./sbin/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@zagent-nginx /usr/local/nginx]# ./sbin/nginx -s reload

[root@zagent-nginx ~]# /usr/bin/curl -s "http://127.0.0.1:80/nginx_status/"
Active connections: 1 
server accepts handled requests
 35 35 1 
Reading: 0 Writing: 1 Waiting: 0 

Active connections  Nginx正处理的活动链接数个数;重要!!!
server              Nginx启动到现在共处理了多少个连接。
accepts             Nginx启动到现在共成功创建几次握手。 
handled requests    Nginx总共处理了几次请求。
Reading             Nginx读取到客户端的 Header 信息数。
Writing             Nginx返回给客户端的 Header 信息数。
Waiting             Nginx已经处理完正在等候下一次请求指令的驻留链接,开启。
Keep-alive的情况下,Waiting这个值等于active-(reading + writing)。
请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。

[root@zagent-nginx ~]# /usr/bin/curl -s "http://127.0.0.1:80/nginx_status/" | awk '/^Active/{print $NF}'
1

[root@zagent-nginx /etc/zabbix/zabbix_agentd.d]# vim userparameter_nginx.conf 
#UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/zabbix_nginx.sh "$1"
UserParameter=nginx_active,/usr/bin/curl -s "http://127.0.0.1:80/nginx_status/" | awk '/^Active/{print $NF}'

[root@zagent-nginx ~]# systemctl restart zabbix-agent

zabbix监控tomcat:
端口
状态:堆内存 栈内存 线程信息

所有zabbix监控tomcat的通用配置:

[root@zagent-tomcat /opt/apache-tomcat-8.0.50]# vim bin/catalina.sh
#!/bin/sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=172.16.0.121"

-Dcom.sun.management.jmxremote 				启动JMX远程监控
-Dcom.sun.management.jmxremote.port=12345 	JMX使用的端口
-Dcom.sun.management.jmxremote.ssl=false 	不使用SSL加密
-Dcom.sun.management.jmxremote.authenticate=false 	不使用验证
-Djava.rmi.server.hostname=172.16.0.121		tomcat自己的IP

为了能够在有防火墙规则的情况下,查看tomcat的状态:(穿透防火墙)
[root@zagent-tomcat /opt/apache-tomcat-8.0.50]# vim conf/server.xml 
 33   <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />

允许zabbix访问tomcat访问状态
[root@zagent-tomcat /opt/apache-tomcat-8.0.50]# vim conf/jmxremote.access
admin read write

[root@zagent-tomcat /opt/jdk1.8.0_05/jre/lib/management]# cp jmxremote.password.template jmxremote.password
[root@zagent-tomcat /opt/jdk1.8.0_05/jre/lib/management]# vim jmxremote.password
monitorRole  QED
controlRole   R&D
	打开注释
	wq!

下载jar包:
[root@zagent-tomcat /opt/apache-tomcat-8.0.50/lib]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd pub  
lftp 172.16.0.99:/pub> get catalina-jmx-remote.jar 

[root@zagent-tomcat /opt/apache-tomcat-8.0.50/lib]# ls catalina-jmx-remote.jar 
catalina-jmx-remote.jar

# shutdown.sh 
# startup.sh

[root@zagent-tomcat ~]# netstat -antp | grep java
tcp6       0      0 :::8080       :::*    LISTEN      1424/java
tcp6       0      0 :::10001      :::*    LISTEN      1424/java
tcp6       0      0 :::10002      :::*    LISTEN      1424/java
tcp6       0      0 :::12345      :::*    LISTEN      1424/java
tcp6       0      0 :::8009       :::*    LISTEN      1424/java

配置报警:

z server 采集数据
数据存储 z mysql
在z GUI 呈现
设定触发器的阈值(报警的临界值)

CPU
system.cpu.util[,idle]
警告 <=15
严重 <=10
错误 <=5
可以自定义
system.cpu.load[percpu,avg1]
>1 报警

内存
vm.memory.size[pavailable]
警告 <=15
严重 <=10
错误 <=5
可以自定义

分区使用率
vfs.fs.size[/,pused]
警告 >=85
严重 >=90
错误 >=95
可以自定义
vfs.fs.size[/,pfree]
警告 <=15
严重 <=10
错误 <=5
可以自定义

端口的状态
=0


zabbix-proxy ★★★★★

Zabbix 监控系统_第10张图片
zabbix-proxy 将采集到的数据 主动模式发送给 zserver端
z-server的ip设置zabbix-proxy的ip应该是映射到防火墙的ip

功能:z-proxy为了减轻zserver压力,所以zproxy采用主动模式


lftp 172.16.0.99:/release> get zabbix-release-3.4-2.el7.noarch.rpm 

[root@zproxy ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm

[root@zproxy ~]# yum install -y zabbix-proxy-mysql zabbix-get zabbix-java-gateway mariadb-server mariadb

[root@zproxy ~]# systemctl start mariadb
[root@zproxy ~]# systemctl enable mariadb

[root@zproxy ~]# mysql
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;		# 建库并制定字符集
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix@'localhost' identified by '12345';
MariaDB [(none)]> flush privileges;

导入数据库:
[root@zproxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.4.15/
[root@zproxy /usr/share/doc/zabbix-proxy-mysql-3.4.15]# ls
AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql.gz
[root@zproxy /usr/share/doc/zabbix-proxy-mysql-3.4.15]# gunzip schema.sql.gz 
[root@zproxy /usr/share/doc/zabbix-proxy-mysql-3.4.15]# mysql zabbix_proxy < schema.sql 		# 导入数据库

[root@zproxy ~]# mysql zabbix_proxy
MariaDB [zabbix_proxy]> show tables;
	看到表,OK!


[root@zproxy /etc/zabbix]# vim zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=50

[root@zproxy /etc/zabbix]# vim zabbix_proxy.conf 
 13 ProxyMode=0
	##主动式,zproxy主动将监控数据传给zserver
 24 Server=172.16.0.71
	##指定zserver的IP,生产环境,防火墙的公网地址
 33 ServerPort=10051
	##指定zserver的端口,生产环境,公网地址的某个端口 xxxxx
 43 Hostname=SYzproxy
	##zproxy的名字,唯一的	地区+名字

156 DBHost=localhost
167 DBName=zabbix_proxy
182 DBUser=zabbix
190 DBPassword=12345
197 DBSocket=/var/lib/mysql/mysql.sock
204 DBPort=3306

244 ConfigFrequency=3
253 DataSenderFrequency=1
	##zproxy向zserver发送数据的时间间隔,秒。

323 JavaGateway=localhost
331 JavaGatewayPort=10052
339 StartJavaPollers=50
	##zserver与java之间,创建多少个线程用于数据传输
	##START_POLLERS >= StartJavaPollers

[root@zproxy ~]# systemctl start zabbix-java-gateway
[root@zproxy ~]# systemctl enable zabbix-java-gateway

[root@zproxy ~]# systemctl start zabbix-proxy
[root@zproxy ~]# systemctl enable zabbix-proxy

[root@zproxy ~]# netstat -antp | grep 1005[12]
tcp        0      0 0.0.0.0:10051   0.0.0.0:*   LISTEN      1545/zabbix_proxy
tcp6       0      0 :::10051        :::*        LISTEN      1545/zabbix_proxy
tcp6       0      0 :::10052        :::*        LISTEN      1501/java


拓扑图:

{HOST.NAME} 主机名称
cpu-idle:{ {HOST.HOST}:system.cpu.util[,idle].last(0)}%
memory-free:{ {HOST.HOST}:vm.memory.size[pavailable].last(0)}%
root-free:{ {HOST.HOST}:vfs.fs.size[/,pfree].last(0)}%
打印的监控键值

网卡流量:
OUT:{172.16.0.121:net.if.out[ens32].last(0)}
IN:{172.16.0.121:net.if.in[ens32].last(0)}
主机名称


钉钉报警:

[root@zserver /etc/zabbix]# cd /usr/lib/zabbix/alertscripts/
[root@zserver /usr/lib/zabbix/alertscripts]# ls
[root@zserver /usr/lib/zabbix/alertscripts]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd scripts/
lftp 172.16.0.99:/scripts> get token.sh

[root@zserver /usr/lib/zabbix/alertscripts]# chmod +x token.sh
[root@zserver /usr/lib/zabbix/alertscripts]# vim token.sh

钉钉配置完成后,测试脚本。

[root@zserver /usr/lib/zabbix/alertscripts]# ./token.sh zabbix test warning
{“errcode”:0,“errmsg”:“ok”}


zabbix页面设置

设置向导

Zabbix 监控系统_第11张图片

Zabbix 监控系统_第12张图片
Zabbix 监控系统_第13张图片Zabbix 监控系统_第14张图片
登录
Zabbix 监控系统_第15张图片
设置语言
Zabbix 监控系统_第16张图片

添加agent主机

Zabbix 监控系统_第17张图片

添加模板

Zabbix 监控系统_第18张图片Zabbix 监控系统_第19张图片Zabbix 监控系统_第20张图片

添加应用集,自定义模板

Zabbix 监控系统_第21张图片
Zabbix 监控系统_第22张图片
Zabbix 监控系统_第23张图片添加模板
Zabbix 监控系统_第24张图片
Zabbix 监控系统_第25张图片Zabbix 监控系统_第26张图片Zabbix 监控系统_第27张图片
Zabbix 监控系统_第28张图片

设置触发

Zabbix 监控系统_第29张图片设置取值范围

Zabbix 监控系统_第30张图片

钉钉报警媒介设置步骤:

z-server

[root@zserver /etc/zabbix]# cd /usr/lib/zabbix/alertscripts/
[root@zserver /usr/lib/zabbix/alertscripts]# ls
[root@zserver /usr/lib/zabbix/alertscripts]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd scripts/     
lftp 172.16.0.99:/scripts> get token.sh 	

[root@zserver /usr/lib/zabbix/alertscripts]# chmod +x token.sh 
[root@zserver /usr/lib/zabbix/alertscripts]# vim token.sh   # 设置成自己的token(webhook值,整段包括http),在钉钉建立群聊,添加自定义机器人,添加关键词(如warning,等预警词)

钉钉配置完成后,测试脚本。
[root@zserver /usr/lib/zabbix/alertscripts]# ./token.sh zabbix test warning
{
     "errcode":0,"errmsg":"ok"}

页面设置:

1.管理—报警媒介类型— >> 设置报警的媒介(微信,钉钉,e-mail)
Zabbix 监控系统_第31张图片2.管理----用户----报警媒介 ---- 添加 ---- >> 添加类型

Zabbix 监控系统_第32张图片
3. 配置----动作----> 设置所有媒介

Zabbix 监控系统_第33张图片

参考:

zabbix-server服务可以启动,10051端口号查询不到(配置文件无误)
解决:查看firewalld,selinux是否关闭

监控tomcat,12345 端口 不显示
查看catalina.sh配置文件是否有错误

触发器规则无法添加,提示"错误的触发器表达式"
触发器多条规则用and分割,and前后有空格

系统屏幕打印出报警状态,没有显示动作
检查邮箱信息是否配置正确,
警告级别是否对应,
参数是否书写存在问题

配置文件无问题,proxy能连接zserver和agent,不出图
tail -0f zabbix_proxy.log
查看日志状态,重启proxy服务

配置好zabbix-server,访问页面时空白页
检查 less /var/log/httpd/error_log
因为是页面问题,一般从apache的错误日志会看到问题

安装zabbix-server-mysql时提示 Requires: libiksemel.so.3()(64bit)
需要yum安装 iksemel-1.4-6.sdl7.x86_64.rpm ,然后安装zabbix-server-mysql

配置zabbix自动发现

https://blog.csdn.net/zhaoxixc/article/details/82866377

升级后无法使用zabbix-get

升级前

[root@syzproxy ~]# zabbix_get -s  172.16.1.31 -p 10050 -k vm.memory.size[pavailable]
zabbix_get [2178]: Check access restrictions in Zabbix agent configuration

检查agent端的zabbix版本

[root@ansible ~]# rpm -qa zabbix-agent
zabbix-agent-3.4.15-1.el7.x86_64
版本没有升级

更新agent

[root@ansible ~]# yum upgrade -y zabbix-agent   

再次检查

[root@syzproxy ~]# zabbix_get -s  172.16.1.31 -p 10050 -k vm.memory.size[pavailable]
80.288952

可以了。

登录设置向导,访问被拒绝,提示连接数据库的密码错误。
Error connecting to database: Access denied for user ‘zabbix’@‘zabbix-server’ (using password: YES)
检查zabbix-server。conf配置没问题,检查,账号,密码,访问地址都是正确的。
解决方法:
数据库中授权时,将“172.16.%” ,设置为“localhost”即可

MariaDB [(none)]> drop user zabbix@'172.16.%';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by '12345';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> select user,host from mysql.user;
+--------+---------------+
| user   | host          |
+--------+---------------+
| root   | 127.0.0.1     |
| root   | ::1           |
|        | localhost     |
| root   | localhost     |
| zabbix | localhost     |
|        | zabbix-server |
| root   | zabbix-server |
+--------+---------------+
7 rows in set (0.00 sec)

你可能感兴趣的:(Linux,Linux应用服务,zabbix)