其他分享
首页 > 其他分享> > zabbix5.0监控安全配置全过程

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 安装过程
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数据库(我用的二进制方式安装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

 

# 二进制安装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配置邮箱

 

 

 然后到管理-用户,点Admin用户

 

 

 

 

 

 

配置-动作,按优先级选择

 

 

 

 

 

 

 

 

 

 

 

 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表示无数次。

 

 

 

 

 

恢复操作:

 

 

 

 

{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

 

最后将要建的模板加入相应的主机。

方法:

 

加入后:

 

 

 

 

 

三、web监控及tcp监控

1、web监控

点主机,之后点想要建web页面监控的主机

 

 

 

 然后同一页面,点步骤

 

 

 

 

 我的是http:172.16.5.53:90

 

下一步创建模板,用于报警

 

 

 

 触发器

 

 

 

 

 这里边选择完主机会出现刚才的web场景的选项

 

 

 

 

 然后把模板应用于主机

 

 

 

 

 至此完成web页面状态码监控,注意这里只能监测到返回200以外的错误,像网页文件打不开这种404等之类的,而nginx挂了的超时并不会报错。可以用前边的进程监控,也可以利用nginx状态模块监控,也可以用下边的端口监控,当然nginx只监听一个端口时可以,多个端口建议用进程或状态模块。

2、端口监控

 

 

 

 

 点进去后创建监控项

 

 

 

 

 

我这里是172.16.5.53:90

 

 

 

 接着点,触发器,创建触发器。

 

 

 

 

 至此完成。

标签:grep,zabbix5.0,server,etc,zabbix,yum,全过程,监控,mysql
来源: https://www.cnblogs.com/amhk/p/15768093.html