一、简介
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 3.0以上的版本最好在CentOS 7.0上安装部署,所以先在虚拟机中安装好CentOS 7.0 x86_64,并设置好IP,允许虚拟机联网。
二、关闭防护:
1.关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
2.关闭SELinux
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# grep SELINUX /etc/selinux/config
# reboot三、配置网络源
1.可使用官方网络源及拓展源
# yum -y install epel-release
# yum clean all
# yum makecache
2.也可使用163或者阿里的网络源及拓展源
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# yum clean all
# yum makecache
或
# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
# yum clean all
# yum makecache
四、环境
服务器: C7 IP:192.168.190.157
代理服务器: C7 IP:192.168.190.158
客户端1: C7 IP:192.168.190.159
客户端2: C7 IP:192.168.190.160
客户端3: C7 IP:192.168.190.161
服务器端安装zabbix server
1.安装依赖
# yum -y install net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc net-tools
2.安装Mariadb
# yum install -y mariadb mariadb-server #安装
# systemctl start mariadb #启动mariadb
# systemctl enable mariadb #设置开机自启动# mysql_secure_installation #安全初始化,设置root密码等
也可使用
mysqladmin -uroot password 123456 注意:
mysql_secure_installation
Enter current passwdord for root #回车,设置mysql密码
Remove anonymous users? #删除匿名用户?
Disallow root login remotely? #禁止root远程登陆
Remove test database and access to it? #删除测试数据库并且和访问它
Reload privilege tables now? #重新载入特权表 3.安装 zabbix
安装 server和web端,基于mysql数据库
# 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-server-mysql zabbix-web-mysql
4.Mariadb初始化完毕后,开始创建zabbix数据库及其用户
# 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"; 导入zabbix数据库结构
方法一:
# cd /usr/share/doc/zabbix-server-mysql-3.0.32
# zcat create.sql.gz | mysql -uroot zabbix
方法二:
# cd /usr/share/doc/zabbix-server-mysql-3.0.32
# gunzip create.sql.gz
# mysql -uroot zabbix -p123456 < create.sql 5.修改Zabbix Server配置,并启动服务
# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456# systemctl start zabbix-server
# systemctl enable zabbix-server 6.编辑PHP配置,修改时区
# vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai# vim /etc/php.ini
;date.timezone = --> date.timezone = 'Asia/Shanghai' 7.修改字体并启动apache
修改字体
可以从windows字体库中选择自己想要的字体文件(后缀名改为.ttf。例如msyh.ttf)到/usr/share/zabbix/fonts/目录下。
然后修改配置文件,使其识别自定义字体
# cd /usr/share/zabbix/fonts/
# vim /usr/share/zabbix/include/defines.inc.php
/graphfont
将其改为自定义字体名称,如msyh启动apache
# systemctl start httpd
# systemctl enable httpd 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 nerong9.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