zabbix5.0监控安装及配置全过程
第一部分,安装
此安装配置为yum方式安装zabbix5.0
系统版本:CentOS Linux release 7.5.1804 (Core)
zabbix版本:rpm -qa | grep zabbix
[root@es3 script]# rpm -qa | grep zabbix zabbix-web-5.0.19-1.el7.noarch zabbix-web-deps-scl-5.0.19-1.el7.noarch zabbix-agent-5.0.19-1.el7.x86_64 zabbix-release-5.0-1.el7.noarch zabbix-server-mysql-5.0.19-1.el7.x86_64 zabbix-web-mysql-scl-5.0.19-1.el7.noarch zabbix-apache-conf-scl-5.0.19-1.el7.noarch zabbix-get-5.0.19-1.el7.x86_64
MySQL版本:5.7.32 glibc
以下zabbix 安装过程:
一、zabbix服务端安装
1、安装配置zabbix专用yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all yum makecache fast
2、安装zabbix服务端组件
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get
# 安装过程可能会报错,zabbix版本冲突,是因为epel源里也有zabbix,我的做法是将epel源先改名。
Transaction check error:
file /usr/bin/zabbix_get conflicts between attempted installs of zabbix-get-5.0.19-1.el7.x86_64 and zabbix40-4.0.36-1.el7.x86_64
file /usr/share/man/man1/zabbix_get.1.gz conflicts between attempted installs of zabbix-get-5.0.19-1.el7.x86_64 and zabbix40-4.0.36-1.el7.x86_64
Error Summary
cd /etc/yum.repos.d/ mv epel.repo epel-bak
然后再安装
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get
3、安装zabbix前端组件
yum -y install centos-release-scl
编辑配置文件 /etc/yum.repos.d/zabbix.repo,找到下图所示字段,并设置为1(1-启用;0-不启用)启
用前端,保存并退出文件
vi /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-frontend] name=Zabbix Official Repository frontend - $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-debuginfo] name=Zabbix Official Repository debuginfo - $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/ enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 gpgcheck=1 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1
4、安装zabbix前端页面、初始数据库、PHP及httpd组件
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
二、安装并配置MySQL数据库
(我用的glibc方式安装mysql)
1、安装yum源
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2、安装MySQL数据库组件。
yum -y install yum-utils yum-config-manager --disable mysql80-community yum-config-manager --enable mysql57-community yum install mysql-community-server -y
glibc方式安装MySQL
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz tar zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /data/server/
cd /data/server/
mv mysql-5.7.32-linux-glibc2.12-x86_64/ mysql-57
cd mysql-57
bin/mysqld --initialize --user=mysql --basedir=/data/server/mysql-57 --datadir=/data/server/mysql-57/data
#这一步需记住打印的临时密码
cp support-files/mysql.server /etc/init.d/mysqld-57 -r
vim /data/server/mysql-57/my.cnf
[mysqld]
datadir=/data/server/mysql-57/data
basedir=/data/server/mysql-57
user=mysql
socket=/data/server/mysql-57/var/mysql.sock
## Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
## instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
log-error=/data/server/mysql-57/var/log/mysql/mysql.log
pid-file=/data/server/mysql-57/var/run/mysql/mysql.pid
[client]
port=3306
socket=/data/server/mysql-57/var/mysql.sock
3、启动
/etc/init.d/mysqld-57 restart
4、登录
根据提示输入临时密码,登录数据库
5、修改密码,授权
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; //单引号内为需要设置的 MySQL超级管理员root密码,自行设置即可 create database zabbix character set utf8 collate utf8_bin; //创建zabbix数据 库 create user zabbix@localhost identified by 'Zabbix'; //创建zabbix数据库用户,并设置密码(单引号内修改为自己设置的密码) grant all privileges on zabbix.* to zabbix@localhost; //设置zabbix用户对zabbix数据库具有本地管理权限 quit
6、导入zabbix初始数据库
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'Zabbix' zabbix
四、zabbix配置初始化
1、配置数据库连接信息
编辑配置文件 /etc/zabbix/zabbix_server.conf,找到以下字段,去掉前面的#号,填入正确的zabbix数
据库连接信息,保存并退出文件
LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=Zabbix DBPort=3306 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000 StatsAllowedIP=127.0.0.1
2、配置时区信息
ll /usr/share/zoneinfo/Asia/Shanghai
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,找到php_value[date.timezone] = 字段,去掉前面的分号,并填入对应时区。
3、配置字体,避免前台监控图形中文乱码
yum -y install wqy-microhei-fonts mv /usr/share/fonts/dejavu/DejaVuSans.ttf /usr/share/fonts/dejavu/DejaVuSans.ttf.bak cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
4、启动zabbix相关服务并设置开机自启动
systemctl restart zabbix-server httpd rh-php72-php-fpm
systemctl enable zabbix-server httpd rh-php72-php-fpm
5、浏览器上访问前端,进行初始化安装
访问http://IP/zabbix,进入初始化安装界面
这一步结束后,初始化完成,并进入登录界面,默认用户名是Admin,密码是zabbix,登录后请及时修改密码
四、客户端安装及配置
1、安装
yum install zabbix-agent -y cd /etc/zabbix/
2、配置
vim zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 DenyKey=system.run[*] Server=172.16.5.53 ListenPort=10050 # StartAgents=3 #ServerActive=10.0.0.11 #Hostname=client Include=/etc/zabbix/zabbix_agentd.d/*.conf #UnsafeUserParameters=1 #UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1
3、启动
systemctl start zabbix-agent.service
4、进一步配置,加载自定义监控脚本
[root@es3 script]# cat /etc/zabbix/zabbix_agentd.d/check_jar_status.conf UnsafeUserParameters=1 UserParameter=check_jar_status[*],/etc/zabbix/zabbix_agentd.d/scripts/check_jar_status.sh $1
[root@es3 script]# cat /etc/zabbix/zabbix_agentd.d/scripts/check_jar_status.sh
#/bin/bash #zabbix键值传过来的第一个参数,jar包名 JARNAME=$1 #zhabbix键值传过来的第二个参数,端口号 #PORT=$2 #统计这个jar包进程的数量 #JARTSTATUS=`ps -ef |grep -v grep | grep "$JARNAME" | grep java |wc -l` JARTSTATUS=$(ps aux | grep ${JARNAME} | grep -v grep | grep java | grep -v $0 | wc -l) #ps aux | grep ${JARNAME} #echo "==============1=======================" #ps aux | grep ${JARNAME} |grep -v grep | grep java | wc -l #统计这个jar包监听端口的数量 #PORTSTATUS=`netstat -antlp |grep LISTEN | grep -w "$PORT" |grep -v grep |grep dddddd | wc -l` #如果jar包数量和监听端口数量都是1,则返回1,不然返回0 #if [[ "$JARTSTATUS" -eq "1" && "$PORTSTATUS" -eq "1" ]]; if [[ "$JARTSTATUS" -eq "1" ]]; then echo "1" else echo "0" fi
至此安装完成,进入配置过程 。
第二部分 配置
一、从邮箱开始
1、登录邮箱后台找到邮箱的授权码,用于配置zabbix报警邮箱,163邮箱方式是,设置-POP3/SMTP/IMAP,点进去后下边授权密码管理。加一下授权码,需复制下来保存,只显示一次。
Zabbix配置邮箱
2、然后到管理-用户,点Admin用户
3、配置-动作,按优先级选择
4、操作
custom messege 部分:
{TRIGGER.STATUS}: {TRIGGER.NAME}
故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障! 告警主机:{HOSTNAME1},IP地址:{HOST.CONN} 告警时间:{EVENT.DATE}--{EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
如需重复报警,上边的步骤里,把1-1改成1-3,就是同一事件报警3次,0表示无数次。
5、恢复操作:
{TRIGGER.STATUS}: {TRIGGER.NAME}
恢复:{TRIGGER.STATUS},服务器:{TRIGGER.NAME} 已经恢复! 告警主机:{HOSTNAME1} ,IP地址:{HOST.CONN} 告警时间:{EVENT.DATE}---{EVENT.TIME} 恢复时间:{EVENT.DATE}---{EVENT.RECOVERY.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
二、自定义监控项,脚本监控。用到上边配置客户端时的配置文件。
1、建模板
2、创建监控项
3、建触发器
可以通过上边的选择那里创建出来表达式
{java service active newpay-hktest:check_jar_status[1-java].last()}=0
4、最后将要建的模板加入相应的主机。
方法:
加入后:
三、web监控
1、进入配置
点配置-主机,之后点想要建web页面监控的主机
2、然后同一页面,点步骤
我的是http:172.16.5.53:90
3、下一步创建模板,用于报警
4、 触发器
这里边选择完主机会出现刚才的web场景的选项
5、然后把模板应用于主机
至此完成web页面状态码监控,注意这里只能监测到返回200以外的错误,像网页文件打不开这种404等之类的,而nginx挂了的超时并不会报错。可以用前边的进程监控,也可以利用nginx状态模块监控,也可以用下边的端口监控,当然nginx只监听一个端口时可以,多个端口建议用进程或状态模块。
四、端口监控
1、配置开始
点配置-主机-相应的主机-选中之前web监控建的模板。因为我这里是一个应用,所以用相同的模板,可以单独建立一个。
2、创建监控项
点进相应的主机后,创建监控项
我这里是172.16.5.53:90
3、创建触发器
接着点,触发器,创建触发器。
至此完成。