zabbix监控搭建及配置邮件报警

环境配置(server端和agent端)

升级系统组件到最新的版本

1
sudo  yum -y update

关闭selinux

1
2
3
setenforce 0       #临时关闭命令
vi /etc/selinux/config #将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启才能生效
getenforce #检测selinux是否关闭,Disabled 为关闭

关闭防火墙

1
2
3
firewall-cmd --state    #查看默认防火墙状态,关闭后显示not running,开启后显示running
systemctl stop firewalld.service #临时关闭firewal
systemctl disable firewalld.service #禁止firewall开机启动

zabbix服务端配置(server端)

zabbix需要借助LAMP或者LNMP环境,LAMP比较方便配置所以先搭建LAMP环境

1
2
3
4
5
# 安装软件包和其他工具包
yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
rpm -qa httpd php mariadb
# 或者
rpm -qa httpd php mysql-community-server

添加首页支持格式 

1
2
vim  /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.php

配置时区

1
2
vim /etc/php.ini
date.timezone = PRC

启动并加入开启自启动

1
2
3
4
5
6
7
systemctl start httpd   #启动并加入开机自启动httpd
systemctl enable httpd
systemctl start mysqld #启动并加入开机自启动mysqld
systemctl enable mysqld

ss -anplt | grep httpd #查看httpd启动情况,80端口监控表示httpd已启动
ss -naplt | grep mysqld #查看mysqld启动情况,3306端口监控表示mysqld已启动

创建一个测试页测试

1
2
sudo  sh -c 'echo "<?php echo phpinfo();?>"  > index.php '  
# 直接使用sudo echo 会提示权限不足 例如:sudo echo "<?php echo phpinfo();?>" > index.php

数据库配置(server端)

初始化数据库设置数据库root密码

1
2
3
4
5
6
7
8
9
10
11
12
sudo mysqladmin -u root password 123456  

#root用户登陆数据库
mysql -u root -p123456
#创建zabbix数据库(中文编码格式)
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
#授予zabbix用户zabbix数据库的所有权限,密码admin123
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
#刷新权限
flush privileges;
#退出数据库
quit

数据库连接测试页

1
2
3
4
5
6
7
sudo vim /var/www/html/index.php 
<?php
$link=mysql_connect('172.18.20.224','zabbix','admin123');
if($link) echo "<h1>Success!!</h1>"; #显示Success表示连接数据库成功
else echo "Fail!!";
mysql_close();
?>

安装zabbix(server端)

安装依赖包和组件

1
2
3
4
5
6
7
8
9
sudo  yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 javacc.noarch  javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*
# 安装php支持zabbix组件
sudo yum install php-bcmath php-mbstring -y
# 会自动生成yum源文件,保证系统可以上网
sudo rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
# 清理yum缓存
sudo yum clean all
# 安装zabbix组件
sudo yum install zabbix-server-mysql zabbix-web-mysql -y

安装zabbix后会有一个数据库文件,需要把这个文件恢复到数据库中

1
2
3
cd   /usr/share/doc/zabbix-server-mysql-4.0.21/
#导入数据到数据库zabbix中(最后一个zabbix是数据库zabbix),且因为用户zabbix是%(任意主机),所以登录时需要加上当前主机ip(-h 192.168.1.122),密码是用户zabbix登陆密码admin123
sudo zcat create.sql.gz | mysql -uzabbix -p -h 192.168.1.122 zabbix

在配置文件中配置数据库用户及密码

1
2
3
4
5
6
sudo vim  /etc/zabbix/zabbix_server.conf 

DBHost=192.168.1.122
DBName=zabbix
DBUser=zabbix
DBPassword=admin123

确定数据库用户及密码

1
grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf

修改时区

1
2
3
4
sudo  vim /etc/httpd/conf.d/zabbix.conf  
# 将# php_value date.timezone Europe/Riga 变更成php_value date.timezone Asia/Shanghai

php_value date.timezone Asia/Shanghai

启动并加入开机自启动zabbix-server

1
2
3
4
systemctl enable zabbix-server 
systemctl start zabbix-server
# 监听在10051端口上,如果没监听成功,可重启zabbix-server服务试试
netstat -anpt | grep zabbix

默认用户和密码

1
2
默认账号Admin
默认密码为zabbix 密码经过MD5加密后为5fce1b3e34b520afeffb37ce08c7cd66

welcom zabbix(后台)

如果以上步骤无误,现在可以使用web打开

1
http://192.168.1.122/zabbix   # 注意这里IE浏览器打不开,使用其他浏览器



这里必须全部都是OK









安装成功



进入界面后设置语言



选择Chinese


Agent端配置(agent端)

安装依赖包和组件

1
2
3
4
5
6
7
8
9
sudo  yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 javacc.noarch  javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*
# 安装php支持zabbix组件
sudo yum install php-bcmath php-mbstring -y
# 会自动生成yum源文件,保证系统可以上网
sudo rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
# 清理yum缓存
sudo yum clean all
# 安装zabbix-agent
sudo yum install zabbix-agent -y

修改zabbix-agent的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim   /etc/zabbix/zabbix_agentd.conf

# 指定zabbix服务器的IP
Server=192.168.1.122
# 指定zabbix服务器的IP
ServerActive=192.168.1.122
# 指定后台显示名称
Hostname=test
# 是否支持自定义key 默认为 0 不支持
UnsafeUserParameters=1

# 自定义key 监控项
UserParameter=prod.redis,ps -ef|grep 'redis' |grep -v 'grep'|wc -l
# 自定义key 监控项
UserParameter=prod.mongo,ps -ef|grep 'mongo' |grep -v 'grep'|wc -l
# 自定义key 监控项
UserParameter=prod.node,ps -ef|grep 'node' |grep -v 'grep'|wc -l

启动agent端

1
2
/usr/sbin/zabbix_agentd  -c /etc/zabbix/zabbix_agentd.conf     # 启动agent端
systemctl restart zabbix-agent # 重启

zabbix服务器上测试(server端)

需要下载 zabbix-get

1
sudo yum install  zabbix-get   -y
1
2
3
[sgsm@localhost zabbix-server-mysql-4.0.21]$ zabbix_get -s 192.168.1.220 -p 10050 -k prod.redis     # 显示数值 代表成功
1
[sgsm@localhost zabbix-server-mysql-4.0.21]$

zabbix后台配置监控项(后台)

创建群组



设置组名





创建主机











创建监控项







创建触发器









可以在最新数据查看当前值



修改状态测试








至此监控配置完成,下面需要配置邮件服务,当有服务宕机发邮件告警

配置媒介邮件(server端)

首先需要在邮件获取授权码






本次测试使用mailx服务

1
2
3
4
5
# 关闭当前postfix邮件
sudo systemctl stop postfix
chkconfig postfix off
# 安装mailx
sudo yum install mailx -y

配置邮件服务

1
2
3
4
5
6
7
sudo  vim /etc/mail.rc

# 发件人地址
set from=xxxxxx@qq.com smtp=smtp.qq.com
# 收件人地址 授权码(邮箱IMAP/SMTP服务的授权码)
set smtp-auth-user=xxxxxx@qq.com smtp-auth-password=xxxxxx
set smtp-auth=login

测试发送邮件

1
echo "zabbix test mail" |mail -s "zabbix" xxxxxx@qq.com

配置发送邮件(后台)

管理—示警介类型—创建媒体类型

创建报警媒介类型 (脚本参数分别对应:收件人地址、主题、详细内容)



配置用户 选择admin用户



添加报警媒介



创建报警动作 配置-动作-创建动作,新建动作



新建操作





添加恢复操作


配置完成后测试(修改触发器或者关闭进程)













邮件内容以及在动作日志中查看发送记录

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2023 XIN LONG
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信