文章目录
一、zabbix简介
1.什么是zibbix?
zabbix又称分布式系统箭筒,是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
2.zibbix的作用
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
3.zibbix的组成
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
4.zibbix的应用场景
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
5.zibbix的特点
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
- 加粗样式等等
6.zabbix主要功能
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
7.zabbix重要组件
1.zabbix server
- 负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行
2.database storage
专用于存储所有配置信息,以及由zabbix收集的数据
3.web interface
- zabbix的GUI接口
4.proxy
- 可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力
5.agent
- 部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端
8.监控系统运行流程
- agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端
- zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图
这里agentd收集数据分为主动和被动两种模式
- 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
- 被动:server向agent请求获取监控项的数据,agent返回数据
二、部署zabbix监控
2.1 环境
zabbix-server:192.168.1.10 #监控端
zabbix-client:192.168.1.11 #被监控端
2台服务器先关闭防火墙、核心防护
[root@zabbix-server ~]# systemctl stop firewalld
[root@zabbix-server ~]# setenforce 0
2.2 监控端配置
2.2.1 部署LAMP架构
先确定能否上网
[root@zabbix-client ~]# ping www.baidu.com
安装repo镜像包
[root@zabbix-server yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@zabbix-server yum.repos.d]# yum clean all
[root@zabbix-server yum.repos.d]# yum makecache
在yum目录下,加入repo镜像包
安装依赖包
[root@zabbix-server ~]# 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
修改apache和php的配置文件
[root@zabbix-server ~]# vi /etc/httpd/conf/httpd.conf
95 ServerName www.example.com:80 # 开启域名,域名可更改或不更改
164 DirectoryIndex index.php index.html # 添加 index.php
[root@zabbix-server ~]# vi /etc/php.ini
878 date.timezone = PRC
[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# netstat -anpt | grep 80
tcp6 0 0 :::80 :::* LISTEN 75551/httpd
[root@zabbix-server ~]# netstat -anpt | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 76482/mysqld
初始化数据库
[root@zabbix-server ~]# mysql_secure_installation
Enter current password for root (enter for none): #让你输入root的当前密码(为none输入) 直接回车就行了
Set root password? [Y/n] y
New password: # 设置密码为:123456(自己设)
Re-enter new password: # 123456
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!
测试是否可以登录数据库
[root@zabbix-server ~]# mysql -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 23
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye
测试php网页是否开启
[root@zabbix-server ~]# vi /var/www/html/index.php
<?php
phpinfo();
?>
物理机测试php网页
创建数据库监控信息表并授权
[root@zabbix-server ~]# mysql -uroot -p123456
# 数据库监控信息的表叫 zabbix ,字符集为 utf8 , 每一个字符区分大小写
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'admin123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'admin123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
验证php与mysql的联动性(测试zabbix用户是否能够登陆数据库)
[root@zabbix-server ~]# vi /var/www/html/index.php
<?php
$link=mysql_connect('192.168.1.10','zabbix','admin123');
if($link) echo "<h1>Sueecee!!!</h1>";
else echo "Fail!!!";
mysql_close();
?>
2.2.2 部署zabbix服务器
添加zabbix源
- 阿里源——系统源
[root@zabbix-server ~]# 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
- 阿里源——zabbix源
[root@zabbix-server ~]# 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
建立缓存
[root@zabbix-server ~]# yum makecache
安装 zabbix 依赖包
[root@zabbix-server ~]# yum install -y php-mbstring php-bcmath
下载zabbix源,安装zabbix服务端软件
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
安装zabbix server(服务),Web前端,agent(监控),nogpgcheck(密钥)
[root@zabbix-server ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent --nogpgcheck
导入 zabbix 监控数据库
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.27/create.sql.gz | mysql -uzabbix -padmin123 zabbix
修改 zabbix 配置文件
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_server.conf
DBPassword=admin123 # 124
[root@zabbix-server ~]# vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai # 20
[root@zabbix-server ~]# vi /usr/share/zabbix/include/defines.inc.php
:%s /graphfont/kaiti/g #直接输入,替换成楷体
从微软系统C:\Windows\Fonts下复制相应的字体文件到 /usr/share/zabbix/assets/fonts
因为上面定义的字体就是楷体,小写的,所以在目录中注意字体名称要对应配置文件改为kaiti.ttf,且注意大小写
[root@zabbix-server ~]# cd /usr/share/zabbix/assets/fonts/
[root@zabbix-server fonts]# ll
总用量 11512
lrwxrwxrwx 1 root root 33 1月 18 11:22 graphfont.ttf -> /etc/alternatives/zabbix-web-font
-rw-r--r-- 1 root root 11787328 1月 18 12:11 kaiti.ttf
[root@zabbix-server fonts]# mv SIMKAI.TTF kaiti.ttf #修改名字
[root@zabbix-server fonts]# ll
开启zabbix服务及监听端口
[root@zabbix-server ~]# systemctl start zabbix-server.service
[root@zabbix-server ~]# systemctl enable zabbix-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@zabbix-server ~]# netstat -anpt | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 25598/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 25598/zabbix_server
重启apache服务
[root@zabbix-server ~]# systemctl restart httpd
访问zabbix安装及登录
登录
http://192.168.1.10/zabbix/setup.php
进入数据库查看监控账户
[root@zabbix-server ~]# mysql -uroot -p123456 进入数据库
MariaDB [(none)]> show databases; 查看所有库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| zabbix |
+--------------------+
4 rows in set (0.01 sec)
MariaDB [(none)]> use zabbix; 进入zabbix表
MariaDB [zabbix]> select * from users; #查看users表可以看到只有2个用户
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
| userid | alias | name | surname | passwd | url | autologin | autologout | lang | refresh | type | theme | attempt_failed | attempt_ip | attempt_clock | rows_per_page |
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
| 1 | Admin | Zabbix | Administrator | 5fce1b3e34b520afeffb37ce08c7cd66 | | 1 | 0 | en_GB | 30s | 3 | default | 0 | | 0 | 50 |
| 2 | guest | | | d41d8cd98f00b204e9800998ecf8427e | | 0 | 15m | en_GB | 30s | 1 | default | 0 | | 0 | 50 |
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
2 rows in set (0.00 sec)
登录成功!
2.3 被监控端配置
配置yum源
[root@zabbix-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
安装zabbix软件
[root@zabbix-client ~]# yum -y install zabbix-agent --nogpgcheck
修改zabbix-agent客户端配置
[root@zabbix-client ~]# vi /etc/zabbix/zabbix_agentd.conf
98 Server=192.168.1.10 #服务端 ip
139 ServerActive=192.168.1.10 #服务端 ip
123 StartAgents=3 #开启被动模式
150 Hostname=client1 #客户端在服务端的名字
开启客户端zabbix-agent服务
[root@zabbix-client ~]# systemctl start zabbix-agent
[root@zabbix-client ~]# systemctl enable zabbix-agent
[root@zabbix-client ~]# netstat -anpt | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 35590/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 35590/zabbix_agentd
在服务器上修改代理文件、并开启服务
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.10 # 98
ServerActive=192.168.1.10 # 139
Hostname=server # 150
开启服务
[root@zabbix-server ~]# systemctl start zabbix-agent
[root@zabbix-server ~]# systemctl enable zabbix-agent
[root@zabbix-server ~]# netstat -anpt | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 91639/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 25598/zabbix_server
tcp6 0 0 :::10050 :::* LISTEN 91639/zabbix_agentd
tcp6 0 0 :::10051 :::* LISTEN 25598/zabbix_server
将服务端监控页面换成中文
修改完后刷新页面
2.4 服务端创建被监控主机
开始在服务器zabbix界面创建监控的客户端
创建第一个
创建第二个
创建的被监控主机
2.5 创建监控主机的内容
第一台模板
第二台模板
同第一台模板操作相同
添加完后
2.6 邮箱报警
在服务器上配置
[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# vi /etc/mail.rc # 配置最后面添加
set from=2537784661@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=2537784661@qq.com
set smtp-auth-password=xcgegyujqyxgecia # QQ 邮箱授权码
set smtp-auth=login
编写发邮件脚本
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/ # 必须在此目录下创建脚本
[root@zabbix-server alertscripts]# vi mailx.sh
#!/bin/bash
#send mail
message=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${message}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
tr:删除,字符转换
\r\n:换行
2>&1:混合输出
[root@zabbix-server alertscripts]# touch /tmp/mailx.log
[root@zabbix-server alertscripts]# cd
授权
[root@zabbix-server ~]# chown -R zabbix.zabbix /tmp/mailx.log #设置日志文件属主属组
[root@zabbix-server ~]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh #授权脚本
[root@zabbix-server ~]# chown -R zabbix.zabbix /usr/lib/zabbix/ #设置脚本属主属组
脚本测试
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# ./mailx.sh 2537784661@qq.com "server mail" "success"
# server mail 为 主题、success 为内容
2.7 网页报警设置
创建报警类型
用户添加报警媒介
2.8 创建动作触发报警
创建动作
创建设置操作
2.9 恢复操作
最后在动作页面点击添加完成操作设置
2.10 监控邮箱设置测试
1.问题
客户机网卡故障
2.测试
客户端的网卡故障停止服务
先查看Admin用户的报警媒介是否存在,消失重新添加
在server上
重启zabbix服务
[root@zabbix-server ~]# systemctl restart zabbix-server
[root@zabbix-server ~]# netstat -anpt | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 90778/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 57098/zabbix_server
tcp6 0 0 :::10050 :::* LISTEN 90778/zabbix_agentd
tcp6 0 0 :::10051 :::* LISTEN 57098/zabbix_server
在客户端,网卡关闭,可以监控到ICMP项目有问题,触发报警
[root@zabbix-client ~]# ifconfig ens33 down
在监测–问题页面进行查看
2.11 恢复网卡查看
[root@client1 ~]# ifconfig ens33 up
来源:oschina
链接:https://my.oschina.net/u/4346209/blog/4921350