9.4、安装zabbix(3)
(10)监控mysql:
1)安装mariadb-server:
[root@slave-node1 ~]# yum install mariadb-server
[root@slave-node1 ~]# systemctl start mariadb
[root@slave-node1 ~]# systemctl enable mariadb
[root@slave-node1 ~]# mysql_secure_installation
2)创建监控使用的用户:
[root@slave-node1 ~]# mysql -uroot -p123456
MariaDB [(none)]> grant select on *.* to zabbix@"localhost" identified by "123456";
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit;
Bye
3)修改监控脚本:
[root@slave-node1 ~]# egrep -v "^#|^$" /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name='$3';" | HOME=/var/lib/zabbix mysql -u$1 -p$2 -N | 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 mysql -N'
UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -u$1 -p$2 ping | grep -c alive
UserParameter=mysql.version[*],mysql -u$1 -p$2 -V
4)重启zabbix-agent服务:
[root@slave-node1 ~]# systemctl restart zabbix-agent.service
5)本地测试:
[root@slave-node1 ~]# zabbix_get -s 172.16.1.91 -k mysql.status[zabbix,123456,Uptime]
1931
6)在zabbix-web中修改mysql监控模板:
A、
B、修改宏:
说明:该模板代表的是默认值,即传入监控脚本中$1、$2的值,在主机监控中可以被覆盖;
C、修改监控项:
7)在装有mysql的监控主机中添加mysql监控模板:
8)查看mysql检测是否已经启用:
9)查看mysql最新监测数据:
(11)创建tcp监控模板:
1)tcp的十一种状态:
[root@slave-node1 ~]# man netstat
stat
ESTABLISHED
套接字已建立连接。
SYN_SENT
套接字正在主动尝试建立连接。
SYN_RECV
已从网络接收连接请求。
FIN_WAIT1
插座已关闭,连接正在关闭。
FIN_WAIT2
连接已关闭,套接字正在等待远程端关闭。
TIME_WAIT
套接字在关闭后等待处理仍在网络中的数据包。
CLOSE
未使用套接字。
CLOSE_WAIT
远程端已关闭,等待套接字关闭。
LAST_ACK
远程端已关闭,插座已关闭。等待确认。
LISTEN
套接字正在侦听传入连接。除非指定--listening(-l)或--all(-a)选项,否则此类套接字不包含在输出中。
CLOSING
两个套接字都关闭了,但我们仍然没有发送所有数据。
UNKNOWN
套接字的状态未知。
说明:netstat -n -p|grep SYN_REC | wc -l
这个命令可以查找出当前服务器有多少个活动的 SYNC_REC 连接。正常来说这个值很小,最好小于5;
2)编写监控脚本:
[root@slave-node1 ~]# cat /etc/zabbix/zabbix_agentd.d/tcp_status.conf
UserParameter=tcp_status[*],netstat -ant | grep -c $1
3)重启zabbix-agent:
[root@slave-node1 ~]# systemctl restart zabbix-agent.service
4)本地测试:
[root@slave-node1 ~]# zabbix_get -s 172.16.1.91 -k tcp_status[ESTABLISHED]
3
5)在zabbix-web中创建tcp监控模板:
A、
B、
C、创建item监控项:
a、
b、
c、
说明:在创建监控项的时候可以使用克隆实现监控项的快速增加;
6)将模板加入到监控的主机中:
7)查看tcp_status监控模板的监控项的启用状态:
8)查看监控主机最新的tcp状态数据:
(12)监控nginx:
1)安装nginx:
[root@slave-node1 ~]# yum install nginx -y
2)停止httpd服务释放出80端口:
[root@slave-node1 ~]# systemctl stop httpd
3)修改nginx的配置文件:
[root@slave-node1 ~]# vim /etc/nginx/nginx.conf
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
4)检查配置:
[root@slave-node1 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
5)启动nginx并加入到开机自启动中:
[root@slave-node1 ~]# systemctl start nginx
[root@slave-node1 ~]# systemctl enable nginx
6)测试:
[root@slave-node1 ~]# curl -I http://127.0.0.1/nginx_status
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Thu, 04 Jul 2019 07:38:04 GMT
Content-Type: text/plain
Connection: keep-alive
7)编写监控脚本:
[root@slave-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@slave-node1 ~]# systemctl restart zabbix-agent.service
[root@slave-node1 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.sh
#!/bin/sh
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
status_number=`curl -I http://127.0.0.1/nginx_status 2>/dev/null | grep 200 | wc -l`
if [ $status_number -eq 1 ]; then
echo "1"
else
echo "0"
fi
[root@slave-node1 ~]# chmod +x /etc/zabbix/zabbix_agentd.d/nginx_status.sh
[root@slave-node1 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx_status,/etc/zabbix/zabbix_agentd.d/nginx_status.sh
[root@controller-node1 ~]# zabbix_get -s 172.16.1.91 -k nginx_status
1
8)添加监控项:
9)查看监控项的状态:
(13)jmx(java管理扩展)监控:
1)下载tomcat和jdk:
[root@slave-node1 ~]# mkdir -p /tools/
[root@slave-node1 ~]# cd /tools/
JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Tomcat下载:https://tomcat.apache.org/download-80.cgi
2)安装jdk:
[root@slave-node1 tools]# rpm -ivh jdk-8u202-linux-x64.rpm
[root@slave-node1 tools]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
3)安装tomcat:
[root@slave-node1 tools]# tar -xzf apache-tomcat-8.5.37.tar.gz
[root@slave-node1 tools]# mkdir -p /application/
[root@slave-node1 tools]# cp -a apache-tomcat-8.5.37/ /application/
[root@slave-node1 tools]# ln -s /application/apache-tomcat-8.5.37/ /application/tomcat
[root@slave-node1 tools]# /application/tomcat/bin/startup.sh
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
#访问:http://172.16.1.91:8080/
4)安装zabbix-gateway:
#说明:
因为zabbix-server是用c语言写的,tomcat是用java写的,所以监控的时候,zabbix-server会去连zabbix-gateway,然后
zabbix-gateway再去连接jmx;zabbix-gateway可以装在任何一台服务器上,但是需要有jdk环境;
#下载zabbix-gateway:
[root@slave-node1 tools]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.0-2.el7.x86_64.rpm
#安装:
[root@slave-node1 tools]# yum localinstall zabbix-java-gateway-4.0.0-2.el7.x86_64.rpm -y
[root@slave-node1 tools]# rpm -qa | grep zabbix-java-gateway
zabbix-java-gateway-4.0.0-2.el7.x86_64
#配置zabbix-gateway参数(部分修改):
[root@slave-node1 ~]# vim /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="172.16.1.91"
LISTEN_PORT=10052
#启动zabbix-java-gateway并加入到开机自启动:
[root@slave-node1 ~]# systemctl start zabbix-java-gateway.service
[root@slave-node1 ~]# systemctl enable zabbix-java-gateway.service
[root@slave-node1 ~]# netstat -tunlp | grep 10052
tcp6 0 0 172.16.1.91:10052 :::* LISTEN 72819/java
#在zabbix-server中配置连接zabbix-java-gateway(部分修改):
[root@controller-node1 ~]# vim /etc/zabbix/zabbix_server.conf
JavaGateway=172.16.1.91
JavaGatewayPort=10052
StartJavaPollers=5
#重启zabbix-server:
[root@controller-node1 ~]# systemctl restart zabbix-server.service
5)修改tomcat配置参数(部分修改):
[root@slave-node1 tools]# vim /application/tomcat/bin/catalina.sh
# OS specific support. $var _must_ be set to either true or false.
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=172.16.1.91"
#修改主机解析:
[root@slave-node1 tools]# vim /etc/hosts
172.16.1.91 slave-node1
#参数说明:
启用远程监控JMX;
默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可;
不使用用户名密码;
不使用ssl认证;
主机名,tomcat主机自己的IP地址,不要写zabbix服务器的地址;
6)重启tomcat:
[root@slave-node1 tools]# /application/tomcat/bin/shutdown.sh
[root@slave-node1 tools]# /application/tomcat/bin/startup.sh
[root@slave-node1 tools]# netstat -tunlp | egrep "12345|8080"
tcp6 0 0 :::8080 :::* LISTEN 39359/java
tcp6 0 0 :::12345 :::* LISTEN 39359/java
7)在windows中通过JConsole进行调试:
#在windows 中安装jdk;
#启动JConsole:
#连接:
#连接后会提示不安全的连接,直接点击;
8)监控测试:
#下载测试所需jar包:
[root@slave-node1 tools]# wget https://cucc.file.qiansw.com:1443/2017/06/cmdline-jmxclient-0.10.3.jar
#内存监控测试:
[root@slave-node1 tools]# java -jar cmdline-jmxclient-0.10.3.jar - 172.16.1.91:12345 java.lang:type=Memory
Attributes:
ObjectPendingFinalizationCount: ObjectPendingFinalizationCount (type=int)
HeapMemoryUsage: HeapMemoryUsage (type=javax.management.openmbean.CompositeData)
NonHeapMemoryUsage: NonHeapMemoryUsage (type=javax.management.openmbean.CompositeData)
Verbose: Verbose (type=boolean)
ObjectName: ObjectName (type=javax.management.ObjectName)
Operations:
gc: gc
Parameters 0, return type=void
[root@slave-node1 tools]# java -jar cmdline-jmxclient-0.10.3.jar - 172.16.1.91:12345 java.lang:type=Memory HeapMemoryUsage
07/09/2019 23:51:15 +0800 org.archive.jmx.Client HeapMemoryUsage:
committed: 158334976
init: 132120576
max: 1857028096
used: 18561368
[root@slave-node1 tools]# java -jar cmdline-jmxclient-0.10.3.jar - 172.16.1.91:12345 Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\" requestCount
07/10/2019 14:27:48 +0800 org.archive.jmx.Client requestCount: 0
9)通过zabbix进行监控:
A、创建监控主机:
a、
b、
c、
B、修改监控项:
因为添加的tomcat监控模板中的监控项中有和现有tomcat监控项不匹配的,所以需要修改监控项;
(14)监控windows:
1)创建一个windows虚拟机,虚拟机的ip地址为172.16.1.201/24,为了方便这里关闭该windows虚拟机的防火墙
如果不关闭的防火墙的话需要修改防火墙配置并开启相应的端口号,zabbix-agent的tcp端口号是10050,snmp的udp端口号是161;
2)使用zabbix-agent监控windows:
A、下载zabbix的源码包:
https://www.zabbix.com/downloads/4.0.7/zabbix_agents-4.0.7-win-i386.zip
B、将包上传到windows系统中,并改成如下形式进行存放:
C、修改zabbix_agentd.conf配置文件内容如下(部分修改):
LogFile=C:\zabbix\zabbix_agentd.log
Server=172.16.1.90
ListenPort=10050
ListenIP=172.16.1.201
StartAgents=3
Timeout=30
D、安装zabbix-agent:
#以管理员的身份运行cmd命令:
#安装:
C:\Windows\system32>cd c:\zabbix
c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.conf -i
zabbix_agentd.exe [1196]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [1196]: event source [Zabbix Agent] installed successfully
#启动服务:
c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.conf -s
zabbix_agentd.exe [2324]: service [Zabbix Agent] started successfully
#查看端口号:
c:\zabbix>netstat -an
TCP 172.16.1.201:10050 0.0.0.0:0 LISTENING
#查看服务:
E、测试:
[root@controller-node1 ~]# zabbix_get -s 172.16.1.201 -k agent.ping
1
[root@controller-node1 ~]# zabbix_get -s 172.16.1.201 -k system.hostname
WIN-64NVQJTN0V1
F、在zabbix-web中将创建windows主机:
a、
b、
c、
d、
3)使用snmp监控windows:
A、在windows中开启snmp功能:
B、查看snmp服务端口号:
C:\Users\lc>netstat -an
UDP 0.0.0.0:161 *:*
C、配置snmp安全陷阱:
说明:如果snmp server的属性中没有"安全选项卡"可以重启windows;
D、验证:
#安装net-snmp-utils软件:
[root@controller-node1 ~]# yum -y install net-snmp-utils
补充:下载net-snmp-utils离线包的地址:
http://mirror.centos.org/centos/7/os/x86_64/Packages/net-snmp-utils-5.7.2-37.el7.x86_64.rpm
#连接验证:
[root@controller-node1 ~]# snmpwalk -c liuchang -v 2c 172.16.1.201
[root@controller-node1 ~]# snmpwalk -c liuchang -v 2c 172.16.1.201 hrMemory
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 4193784 KBytes
E、在zabbix-web中添加windows主机:
a、
b、
c、
d、
e、
(15)使用percona监控mysql数据库:
略:
(16)监控交换机:
1)在交换机上创建ip地址和团体名:
system config
interface fastEthernet 0/0
ip address 172.16.1.201 255.255.255.0
snmp-server community liuchang ro
2)在控制主机上进行验证:
yum install net-snmp-utils.x86_64
snmpwalk -c liuchang -v 2c 172.16.1.90
说明:该测试命令在任意的主机上都可以进行测试,但只有zabbix_server才能够处理;
2)在zabbix-web界面中配置交换机snmp监控主机;
9、小结:
(1)相对于zabbix-agent来说,zabbix-agent 默认是被动的模式,由 zabbix-server 询问 zabbix-agent,本章使用的是zabbix-agent的被动模式;
(2)清空zabbix-server缓存的命令:
zabbix_server -R config_cache_reload
此命令在实际的生产环境中最好不要使用;
(3)使用特殊符号:
UnsafeUserParameters=1(默认为0表示不开启);
(4)zabbix-server连接超时,修改超时参数Timeout(默认Timeout=4);
(5)设置触发器依赖以防止某个服务挂掉后,依赖其的服务全部报警;
(6)zabbix升级:
1)
从网上下载的zabbix模板,因为模板的版本比较旧,当在比较新的zabbix版本上导入后可能会导致
模板不能够使用,所以需要在虚拟机上安装2.2版本的zabbix后打上快照(以备后期升级模板时使用),将模
板导入到2.2版本的zabbix上;
2)停止zabbix-server:
systemctl stop zabbix-server.service
3)备份数据库:
4)停止数据库:
systemctl stop mariadb.service
5)更换最新的zabbix yum 源仓库:
6)安装zabbix服务:
yum install zabbix-server-mysql zabbix-web-mysql -y
7)启动数据库:
systemctl start mariadb.service
8)启动zabbix-server:
systemctl start zabbix-server.service -y
9)导出模板并导入到线上的模板;
(8)zabbix忘记登陆密码的解决办法:
use zabbix
update users set passwd='5fce1b3e34b520afeffb37ce08c7cd66' where userid='1';
"zabbix"对应的MD5是"5fce1b3e34b520afeffb37ce08c7cd66",所以修改后zabbix Admin用户的登录密码为"zabbix"
9.4、安装zabbix(3)的更多相关文章
- Centos 源码安装zabbix 2.4.5
Zabbix简介 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统 的安全运营:并提供柔软的通知机制以让系统管 ...
- 编译安装zabbix 3.0及分开部署配置详解
实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP及角色分配如拓扑 下载地址:试验中用到mariadb软件的下 ...
- CentOS7:安装Zabbix
参考:CentOS 7 yum安装Zabbix 1. 安装Zabbix Server EPEL源里面有Zabbix的安装包,所以需要先安装EPEL. Zabbix源也可以从这里获得:http://re ...
- 使用Linux碎解三_CentOS7搭建Lamp环境安装zabbix遇到的问题
问题一: 执行不了 yum命令 解决方案:配置系统的DNS(详细参见碎解二) 问题二: make 命令的时候,出现错误 提示 和没有gcc大体相关 解决方案:yum install gcc (在网 ...
- CentOS 7.2安装Zabbix 3.2全攻略
放在最前面:鉴于网上爬虫猖獗,博客被盗时有发生,这里需要来个链接,大家请认准来自博客园的Scoter:http://www.cnblogs.com/scoter2008 1.安装环境:VMware虚拟 ...
- CentOS-6.5安装zabbix 3.0.4
关闭selinux [root@localhost /]# sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux ...
- CentOS 7 yum安装Zabbix
一.Zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统 ...
- 源码安装zabbix
源码安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:高级运维工程师之路 598432640 前言:参考网上多篇源码安装的连接,自己把安装过程丢在这 ...
- ubuntu 14.10 安装 zabbix
在ubuntu 14.10 上部署 zabbix 2.x 基本软件包安装 既然是ubuntu系统,当然要用好apt-get神器. 参考教程 URL:http://blog.csdn.net/cloud ...
- 安装zabbix
安装zabbix 1. 准备好lamp架构(安装好mysql,php) 2.在数据库中授权: MariaDB [(none)]> create database zabbix charset u ...
随机推荐
- [笔记] 《我的第一本c++书》
函数 优秀函数的五个要点 函数的返回值:直接返回和间接返回(指针) 在函数的入口处对参数有效性进行检验:if语句,断言(assert) 如果函数有返回值,不可返回一个指向函数体内局部对象的指针或引用 ...
- 单独跑ltp-20200508 ./runltp
# cat r3.sh#!/bin/bash # cat r3.sh#!/bin/bashi=1for ((; i<=1000; i++))do/opt/ltp/runltp -s fmtmsg ...
- Linux_rpm包管理
一.rpm包命令规范 1.包的组成 主包:bind-9.7.1-1.el5.i586.rpm 子包:bind-libs-9.7.1-1.el5.i586.rpm bind-utils-9.7.1-1. ...
- Linux服务之nginx服务篇二(搭建)
一.简易搭建安装步骤 0.检查环境 1.配置yum源 使用yum list nginx 检查yum源中是否有nginx安装包 #官方网络源需要安装epel-* #或使用251的adv源(老师的yum源 ...
- 004.kubernets对于pod的简单管理
一 pod简介 1.1 介绍 Pod是K8s集群中所有业务类型的基础 Pod是在K8s集群中运行部署应用或服务的最小单元,它是可以支持多容器的. Pod的设计理念是支持多个容器在一个Pod中共享网络地 ...
- 1.5linux用户权限相关命令
用户权限相关命令 目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要 ...
- SPI认识
SPI分为好几种模式 不同模式下 读取数据时 SCK线的状态不一样 STM32硬件SPI 有16BIT 8BIT的两种模式 既 收发都是8或16bit SPI缺少响应反馈机制 无法知道 ...
- docker swarm外部验证负载均衡时不生效
问题描述 我在本地创建了3个装了centos7的虚拟机, 并初始化了swarm集群, 即1个manager节点, 2个worker节点; 三台机子的ip分别是 192.168.124.8 - (man ...
- 『动善时』JMeter基础 — 26、使用txt文件实现JMeter参数化
目录 1.测试计划中的元件 2.数据文件内容 3.线程组元件内容 4.HTTP信息头管理器组件内容 5.CSV数据文件设置组件内容 6.HTTP请求组件内容 7.脚本运行结果 之前我们都是使用.csv ...
- Nextcloud 使用教程
一.简介 Nextcloud是一个网盘式文件管理系统,多用户权限管理,多客户端,使用简单.可在浏览器中运行,也可下客户端,不论使用哪种方式运行,使用教程都是一样的. 只是在客户端中运行时能及时收到相应 ...