文章目录
一、zabbix概述
- zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。是一个高度集成的网络监控套件。
1.1 zabbix的特性
- 数据收集
- 灵活的阀值定义
- 高级告警配置
- 通过内置的绘图方法实现监控数据实时绘图
- 允许自定义创建多监控项视图
- 历史数据存储
- 配置简单
- 模板中可以添加组监控
- 自动发现网络设备
- 快速的web接口
- Zabbix API提供程序级别的访问接口,第三方程序可以很快接入
- 安全的权限认证
- 全特性、agent易扩展
- C开发,高性能,低内存消耗,易移植
- 通过Zabbix proxy可以非常容易的创建远程监控
1.2 zabbix重要组件
-
zabbix server
负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行 -
database storage
专用于存储所有配置信息,以及由zabbix收集的数据 -
web interface
zabbix的GUI接口 -
proxy
可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力 -
agent
部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端
1.3 监控系统运行流程
- agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端
- zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。
1.3.1 agentd收集数据的两种模式
-
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
-
被动:server向agent请求获取监控项的数据,agent返回数据。
二、zabbix部署
2.1 部署zabbix监控环境
角色 | IP |
---|---|
服务器(监控端) | 192.68.1.14 |
客户端(被监控端) | 192.68.1.15 |
2.2 部署LAMP架构
安装依赖软件包
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
修改配置文件
vim /etc/httpd/conf/httpd.conf
ServerName www.example.com:80 # 95
DirectoryIndex index.php index.html # 164 添加 index.php
vim /etc/php.ini
date.timezone = PRC # 878
开启服务
systemctl start httpd
systemctl start mariadb
netstat -anpt | grep 80
netstat -anpt | grep 3306
初始化数据库
mysql_secure_installation
Enter current password for root (enter for none): #直接回车,输入root的当前密码(为none输入)
Set root password? [Y/n] y
New password: #设置密码为(自己设)
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] y #移除匿名账号
… Success!
Disallow root login remotely? [Y/n] n #不允许root账号远程登录
... skipping.
Remove test database and access to it? [Y/n] y #移除test数据库,空数据库
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] y #重置权限列表
... Success!
mysql -uroot -p123456
测试php网页
vi /var/www/html/index.php
<?php
phpinfo();
?>
通过网页访问网页即可:192.168.10.14
连接数据库,对zabbix用户授权
mysql -u root -p
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
flush privileges;
验证php与mysql的对接
vi /var/www/html/index.php
<?php
$link=mysql_connect('192.168.1.11 ','zabbix','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>
2.3 部署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
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
清空并添加yum缓存
yum makecache
yum clean all
安装插件
yum install -y php-mbstring php-bcmath #下载zabbix源,安装zabbix服务端软件
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql -y --nogpgcheck #导入zabbix监控数据库
zcat /usr/share/doc/zabbix-server-mysql-4.0.27/create.sql.gz | mysql -uzabbix -padmin123 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
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai //修改时区,将此行注释去掉修改即可
vi /usr/share/zabbix/include/defines.inc.php //下面操作是修改图表中文乱码
:%s /graphfont/kaiti/g
从微软系统C:\Windows\Fonts下复制相应的字体文件到 /usr/share/zabbix/assets/fonts 目录中注意字体名称要对应配置文件改为kaiti.ttf,且注意大小写
启动zabbix-server服务,并重启httpd服务
systemctl enable zabbix-server
systemctl start zabbix-server
netstat -anpt | grep zabbix //监听在10051端口上
systemctl restart httpd.service
网页的配置步骤
http://192.168.1.11 /zabbix/ //安装登录 用户名Admin 密码:zabbix
状态检查
登录zabbix网页
根据mysql数据库中的zabbix数据库中的user表中得到
进行语言的修改时很重要的一步,方便我们后续的操作
然后刷新即可
在zabbix中创建主机
为主机添加模板
2.4 在zabbix-server上设置邮箱报警
yum -y install mailx
vi /etc/mail.rc # 在文末添加以下内容
set [email protected]
set smtp=smtp.qq.com
set [email protected]
set smtp-auth-password=***************授权码
set smtp-auth=login
编写发邮件的脚本
cd /usr/lib/zabbix/alertscripts
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
chown -R zabbix.zabbix /tmp/mailx.log
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix.zabbix /usr/lib/zabbix/
进行脚本的测试
./mailx.sh [email protected] "test" "nihao"
在zabbix网页浏览器上设置报警媒介
添加后更新即可正常使用
需要做到报警操作,还要在浏览器上面设置动作操作
需要点击编辑区域的添加,不然会一直显示添加不了
最后点击动作窗口的添加任务,即可正常的添加动作成功
2.5 故障模拟
我们可以再被监控端关闭网卡,这样就可以查看是否收到报警邮件来判断之前的设置是否生效
ifconfig ens33 down
我们的邮箱中也收到了报警邮件
在我们进行了紧急的故障修复之后,zabbix也会再次向邮箱发送修复信息,
总结
不仅仅是连接的故障问题可以报警,我们可以根据生产环境中的不同需求在网页上设置不同的动作操作来达到不同的报警条件,这样人性化的设置让工作的压力会减轻很多。