目录
一、Zabbix介绍
Zabbix简介
- Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。
- 使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP … 各种协定做死活监视。
- 在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。另外,Zabbix 包含 XMPP 等各种 Item 警示功能。
重要组件
1.zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;
2.database storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3.web interface:zabbix的GUI接口;
4.proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;
5.agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;
二、部署Zabbix服务器环境
部署环境
Zabbix服务器:192.168.91.10/24(监控端)
Linux服务器:192.168.91.20/24(被监控端)
部署过程
1.修改主机名,关闭防火墙
[root@localhost ~]# hostnamectl set-hostname zabbix
[root@localhost ~]# su
[root@zabbix ~]# systemctl stop firewalld
[root@zabbix ~]# systemctl disable firewalld.service
2…安装依赖包
[root@zabbix ~]# 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
3.修改apache和php配置文件
[root@zabbix ~]# vi /etc/httpd/conf/httpd.conf
ServerName www.example.com:80
DirectoryIndex index.php index.html
[root@zabbix ~]# vi /etc/php.ini
date.timezone = PRC
4.开启apache和mariadb
[root@zabbix ~]# systemctl start httpd.service
[root@zabbix ~]# systemctl start mariadb.service
5.验证服务的开启
[root@zabbix ~]# netstat -anpt | grep 80
[root@zabbix ~]# netstat -anpt | grep 3306
6.初始化数据库
[root@zabbix ~]# mysql_secure_installation
yynyy(选择项)
7.验证php网页是否可以开启
[root@zabbix ~]# vi /var/www/html/index.php
<?php
phpinfo();
?>
8.在浏览器验证验证:
http://192.168.91.10
9.连接数据库,对zabbix用户授权
[root@zabbix ~]# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
Bye
10.验证php与mysql的联动性
[root@zabbix ~]# vi /var/www/html/index.php
<?php
$link=mysql_connect('192.168.91.10','zabbix','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>
11.在浏览器验证
http://192.168.91.10
三、部署zabbix服务器
1.添加zabbix源
[root@zabbix ~]# vi /etc/yum.repos.d/CentOS-Base.repo //添加阿里云源区域
[Ali]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[root@zabbix ~]# vi /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/
enabled=1
gpgcheck=0
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgcheck=0
2.清理缓存
[root@zabbix ~]# yum clean all
3.添加缓存
[root@zabbix ~]# yum makecache
4.添加必要插件
[root@zabbix ~]# yum install -y php-mbstring php-bcmath
5.下载zabbix源,安装zabbix服务端软件
[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
[root@zabbix ~]# yum install zabbix-server-mysql zabbix-web-mysql -y --nogpgcheck
6.导入zabbix监控数据库
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.27/create.sql.gz | mysql -uzabbix -padmin123 zabbix
[root@zabbix ~]# grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf ##查看zabbix未注释的生效行
[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
100:DBName=zabbix
116:DBUser=zabbix
125:DBPassword=admin123 //修改此行即可
356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
473:Timeout=4
516:AlertScriptsPath=/usr/lib/zabbix/alertscripts
527:ExternalScripts=/usr/lib/zabbix/externalscripts
563:LogSlowQueries=3000
[root@zabbix ~]# vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai ##修改时区,将此行注释去掉修改即可
[root@zabbix ~]# vi /usr/share/zabbix/include/defines.inc.php //下面操作是修改图表中文乱码
:%s /graphfont/kaiti/g
从微软系统C:\Windows\Fonts下复制相应的字体文件到 /usr/share/zabbix/assets/fonts 目录中注意字体名称要对应配置文件改为kaiti.ttf,且注意大小写
[root@zabbix ~]# systemctl enable zabbix-server
[root@zabbix ~]# systemctl start zabbix-server
[root@zabbix ~]# netstat -anpt | grep zabbix ##监听在10051端口上,当客户机也安装好zabbix-agent后才能查询到
[root@zabbix ~]# systemctl restart httpd.service
7.浏览器访问http://192.168.91.10 /zabbix/安装
8.登录 用户名Admin 密码:zabbix
9.设置成中文
四、配置linux版zabbix客户端
1.修改主机名,关闭防火墙
[root@localhost ~]# hostnamectl set-hostname zabbix
[root@localhost ~]# su
[root@client ~]# systemctl stop firewalld
[root@client ~]# systemctl disable firewalld.service
2.设置yum源
[root@client ~]# vi /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[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
3.安装zabbix-agent
[root@client ~]# yum install -y zabbix-agent --nogpgcheck ##--nogpgcheck用于解决无密钥安装
4.修改客户端设置
[root@client ~]# vi /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=192.168.91.10
139:ServerActive=192.168.91.10
150:Hostname=client
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
5.客户端开启zabbix-agent
[root@client ~]# systemctl enable zabbix-agent.service
[root@client ~]# systemctl start zabbix-agent.service
[root@client ~]# netstat -anpt | grep zabbix //默认监听在10050端口
6.在浏览器访问http://192.168.91.10 /zabbix/,并添加监控
6.1服务器端创建被监控主机:配置-》主机-》创建主机
6.2创建模板:配置-》主机-》名称-》选中主机-》模板
五、邮箱报警(zabbix-server上设置)
1.安装邮箱报警的环境及配置文件
[root@zabbix ~]# yum -y install mailx
[root@zabbix ~]# vi /etc/mail.rc
set from=***********@qq.com ##写入想发送报警邮件的邮箱
set smtp=smtp.qq.com
set smtp-auth-user=***********@qq.com
set smtp-auth-password=***************授权码 ##邮箱 授权码
set smtp-auth=login
2.编写发邮件的脚本
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix ~]# vi mailx.sh ##编写发邮件脚本
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
touch /tmp/mailx.log
[root@zabbix ~]# chown -R zabbix.zabbix /tmp/mailx.log
[root@zabbix ~]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
[root@zabbix ~]# chown -R zabbix.zabbix /usr/lib/zabbix/
3.脚本测试
[root@zabbix ~]# ./mailx.sh 820717833@qq.com "主题" "内容"
4.Zabbix-server网页上配置邮件报警
管理-》报警媒体类型-》创建媒体类型-》
管理-用户-点击Admin-报警媒介
配置-》动作-》创建动作-》删除默认标签,修改触发条件
操作
默认操作步骤持续时间 :60
默认标题:{TRIGGER.STATUS}:{TRIGGER.NAME}
告警主机:{HOST.NAME}
告警IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
时间ID:{EVENT.ID}
恢复操作
默认标题:{TRIGGER.STATUS}:{TRIGGER.NAME}
恢复主机:{HOST.NAME}
恢复IP:{HOST.IP}
恢复时间:{EVENT.DATE}-{EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}
恢复ID:{EVENT.ID}
添加成功
七、重启服务,并进行错误测试
1.重启服务
[root@zabbix ~]# systemctl restart zabbix-server
2.测试:
可在客户机端把网卡禁用
[root@client ~]# ifconfig ens33 down
这样可以监控到ICMP项目有问题会邮件报警
将客户端的ssh服务停掉
Systemctl stop sshd
监控端监控到ssh服务有问题也会邮件
用ifconfig ens33 up恢复后,邮件也会进行通知