一、简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
zabbix软件:
服务器端:zabbix server
代理服务器:zabbix proxy
客户端(被监控主机):zabbix agent
Zabbix的主要特点:
安装与配置简单,学习成本低
支持多语言(包括中文)
免费开源
自动发现服务器与网络设备
分布式监视以及WEB集中管理功能
可以无agent监视
用户安全认证和柔软的授权方式
通过WEB界面设置或查看监视结果
email等通知功能
Zabbix主要功能
CPU负荷
内存使用
磁盘使用
网络状况
端口监视
日志监视
二、工作原理
监控流程
1. zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行
2. database storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3. web interface:zabbix的GUI接口
4. proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力
5. agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端
三、3.0版本实验流程
实验环境
服务器端安装zabbix server
1.安装依赖
2.安装Mariadb
3.安装 zabbix
4.Mariadb初始化完毕后,开始创建zabbix数据库及其用户
5.修改Zabbix Server配置,并启动服务
6.编辑PHP配置,修改时区
7.修改字体并启动apache
8.登录zabbix管理网页,显示安装向导
服务器端及客户端安装zabbix agent
1.安装zabbix agent实现监控
1.安装zabbix agent # rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm # yum -y install zabbix-agent 2.修改配置文件 服务器端: # vim /etc/zabbix/zabbix_agentd.conf Server=127.0.0.1 #服务器IP ServerActive=127.0.0.1 #服务器IP Hostname=Zabbix server #监控的主机名(可自定义) 客户端: # vim /etc/zabbix/zabbix_agentd.conf Server=192.168.190.157 #服务器IP ServerActive=192.168.190.157 #服务器IP Hostname=zabbix agent159 #主机名(可自定义) 3.启动zabbix agent # systemctl enable zabbix-agent # systemctl start zabbix-agent
2.去管理页面开启监测
- 192.168.190.157 -> 配置 -> 主机 -> 创建主机
- 填写主机名称 - 可见名 - 所属群组 - 客户端IP(agent代理程序接口)
- 模板 - Template APP FTP Server - Template APP HTTP Server - Template APP SSh Server - Template OS Linux - 添加(添加监控模板) - 添加(添加监控主机)
-
警告通知(服务器端配置)
-
邮件脚本通知
1.下载并解压软件 # wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz # tar -xf sendEmail-v1.56.tar.gz 2.复制文件 # cd sendEmail-v1.56 # cp -a sendEmail /usr/local/bin 3.设置权限 # chmod +x /usr/local/bin/sendEmail 4.安装组件 # yum -y install perl-Net-SSLeay perl-IO-Socket-SSL 5.测试邮件功能 # /usr/local/bin/sendEmail -f szyllf18770942082@163.com -t 1398045053@qq.com -s smtp.163.com -u "zabbix test" -o message-content-type=html -o message-charset=utf8 -xu szyllf18770942082@163.com -xp HQIDBPZKLRKTNJEW -m "i am a test mail" -l /var/log/sendMyEmail.log -o tls=no 命令说明: /usr/local/bin/sendEmail 命令主程序 -f szyllf18770942082@163.com 发件人邮箱 -t 1398045053@163.com 收件人邮箱 -s smtp.163.com 发件人邮箱的smtp服务器 -xu szyllf18770942082@163.com 发件人邮箱的用户名 -xp HQIDBPZKLRKTNJEW 发件人邮箱密码 -u "我是邮件主题" 邮件的标题 -m "我是邮件内容" 邮件的具体内容 -o message-content-type=html 邮件内容的格式,html表示它是html格式 -o message-charset=utf8 邮件内容编码 -l /var/log/sendMyEmail.log 非必输项,邮件发送日志记录到日志文件 -o tls=no 传输是否加密
6.进入zabbix自定义的指定目录。查看zabbix_server.conf配置文件AlertScriptsPath变量是如何定义的。 # vim etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts 7.编写脚本 # cd /usr/lib/zabbix/alertscripts # vim sendEmail.sh 脚本内容如下 #!/bin/bash to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -f szyllf18770942082@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu szyllf18770942082@163.com -xp HQIDBPZKLRKTNJEW -m "$body" -o tls=no 说明: from@163.com 替换成自己的发件邮箱 smtp.163.com 表示邮箱的smtp服务器,这里展示使用的是163邮箱,替换自己的邮箱SMTP地址 password 替换成发件邮箱密码。或者授权码 8.给予脚本权限并测试 # chmod +x sendEmail.sh # chown zabbix:zabbix sendEmail.sh # ./sendEmail.sh 1398045053@qq.com biaoti nerong
9.web页面配置
#创建邮件报警机制: 1. 安装邮件客户端软件sendemail 2. 编写sendemail的发件脚本 3. 将sendemail脚本添加到zabbix的报警媒介中 管理 - 报警媒介类型 - 创建媒体类型 - {名称、类型:脚本、脚本名称} 4. 将报警媒介和管理员进行关联 管理 - 用户 - Admin{你选的用户} - 报警媒介 - 添加 - 报警媒介选择 - 收件人 - 更新
钉钉通知脚本
- # cd /usr/lib/zabbix/alertscripts
# vim dingding.sh
脚本内容如下
#!/bin/bash
to=$1
text=$2
curl 'https://oapi.dingtalk.com/robot/send?access_token=13d75a3fd6dfs2019537e171ec0cad767a5ffcc6212bb7b57e7e02bf4bc6bdfd3a26a' -H 'Content-Type: application/json' -d '{"msgtype": "text","text": {"content": "'"$text"'"},"at":{"atMobiles": [ "'"$to"'" ],"isAtAll": false}}' - 3.给予脚本权限并测试
# chmod +x dingding.sh
# chown zabbix:zabbix sendEmail.sh
# ./dingding.sh 18770942082 Trigger:xiaoxineirong
设置代理服务器
代理服务器192.168.190.158
1.安装zabbix-proxy # rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm # yum -y install zabbix-proxy 2.修改配置文件 # vim /etc/zabbix/zabbix_proxy.conf Server=192.168.190.157 #服务器IP Hostname=Zabbix proxy #主机名(可自定义) DBName=zabbix DBUser=zabbix DBPassword=123456 3.安装数据库 # yum install -y mariadb mariadb-server #安装 # systemctl start mariadb #启动mariadb # systemctl enable mariadb #设置开机自启动 # mysql -uroot # MariaDB [(none)]> create database zabbix default character set utf8 collate utf8_bin; # MariaDB [(none)]> grant all on zabbix.* to "zabbix"@"localhost" identified by "123456"; # MariaDB [(none)]> grant all on zabbix.* to "zabbix"@"%" identified by "123456"; 4.导入zabbix数据库结构 # cd /usr/share/doc/zabbix-proxy-mysql-3.0.32 # zcat schema.sql.gz | mysql -uroot zabbix 5.启动zabbix proxy # systemctl enable zabbix-proxy # systemctl start zabbix-proxy
客户端2,指向代理服务器192.168.190.158
1.安装zabbix-agent # rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm # yum -y install zabbix-agent 2.修改配置文件 服务器端: # vim /etc/zabbix/zabbix_agentd.conf Server=192.168.190.158 #服务器IP ServerActive=192.168.190.158 #服务器IP Hostname=Zabbix agent2 #监控的主机名(可自定义) 3.启动zabbix agent # systemctl enable zabbix-agent # systemctl start zabbix-agent
管理网页
1.添加代理程序 管理→agent代理程序→创建代理→agent代理程序名称必须和代理服务器配置文件中的Hostname一样 # vim /etc/zabbix/zabbix_proxy.conf Hostname=Zabbix proxy 2.添加主机客户端2,选择代理。主机名也必须和配置文件中主机名一模一样 Hostname=Zabbix agent2