zabbix的使用

安装zabbix

服务端安装

# 阿里云的zabbix源
[root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

[root@zabbix ~]# yum makecache fast

[root@zabbix ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server php httpd -y

配置相关服务

启动数据库

[root@zabbix ~]# systemctl start mariadb.service

创建数据,设置权限

[root@zabbix ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> exit

导入数据库sql文件
zabbix-server-mysql3.4.15 这个要查看自己所安装的版本

# 版本zabbix-server-mysql3.4.15  要查看自己所安装的版本
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-3.4.15/create.sql.gz |mysql -uzabbix -pzabbix zabbix

配置zabbix server

#配置zabbix Server连接mysql
[root@zabbix ~]# sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
#修改apache-php配置
[root@zabbix ~]# sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

启动

[root@zabbix ~]# systemctl start zabbix-server httpd

# 设置开机自启动

最后一步

打开zabbix,10.0.0.71/zabbix 。下一步进行安装,需要注意 10051是副段端口,50是客户端。配置文件在/etc/zabbix/web/zabbix.con.php,最后进行登录,用户名是Admin,密码下一步的时候进行配置的。服务端安装完成

解决中文乱码

[root@zabbix ~]# yum -y install wqy-microhei-fonts

[root@zabbix ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
cp: overwrite ‘/usr/share/fonts/dejavu/DejaVuSans.ttf’? y

客户端安装zabix-agent

在被需要监控的主机安装zabix-agent,并进行配置即可。

# centos7
[root@web01 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

[root@web01 ~]# yum install zabbix-agent -y
# 修改客户端配置文件zabbix_agent.conf的serverip 改为指向服务端的ip
[root@web01 ~]# sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.71#' /etc/zabbix/zabbix_agentd.conf

启动并设置开机启动

# centos7
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service

# centos6
chkconfig zabbix-agent on
/etc/init.d/zabbix-agent start

服务端安装zabbix-get对客户端进行测试

服务端首先配置/etc/hosts 文件 解析客户端主机名当ping主机名时会ping通

# 解析主机名
[root@zabbix ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.7 web01


yum install zabbix-get
# 返回1则表示连接正常
zabbix_get -s 172.16.1.71 -p 10050 -k "agent.ping"

添加监控主机

创建主机

添加模板

自定义监控

配置自定义key

在web01上做自定义监控项,自定义监控放在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf文件里,该文件为系统默认文件,也可以在当前目录下新建文件以.conf结尾。

语法要求,key名字要唯一,多个key以行分割:

UserParameter=key,<要执行的命令或脚本>

命令形式:UserParameter=login.user,who|wc-l
脚本形式:UserParameter=login.user,/bin/sh /scripts/test.sh

# 示例,统计系统登录用户
UserParameter=login.user,who|wc-l

# 2、修改配置和文件重启
systemctl restart zabbix-agent.service

# 3、server上检测key
zabbix_get -s 172.167.1.7 -p 10050 -k "login.user"

图形界面设置key

分为几个步骤 1、创建模板 2、创建应用集,给监控分类 3、创建监控项,监控内容 4、创建触发器,当监控获取到指定值时,达到条件就报警 5、创建图形 6、主机关联模板

首先点击配置,模板,创建模板。

选择监控项,创建监控项。

更新时间,多长时间向客户端请求数据。 历史数据保留时长,一般保留1周。

创建触发器, 名称 报警时发送的名称 添加表达式 最新的时间,login.user的值大于指定的值就报警

模板应用到主机 配置->主机->web01, 选择模板

添加报警。

使用onealert发送报警信息。在server上进行安装。

cd /usr/lib/zabbix/alertscripts

自动发现与注册

自动发现

网页上配置自动发现规则 配置->自动发现

可以去监控中->自动发现 查看

现在只是找到了主机,还需要配置, 配置->动作

自动注册

需要关闭自动发现,和对应的动作,点击原有的一起用即可关闭。

修改客户端/etc/zabbix/zabbix_agentd.conf

vim /etc/zabbix/zabbix_agentd.conf
ServerActive=172.16.1.71    #zabbix 服务端的ip
Hostname=db01   #改为当前客户端主机的主机名
HostMetadataItem=system.uname

web页面配置自动注册, 配置->动作,选择事件源里的自动注册,创建动作。

分两步,先设置动作,再设置操作,最后添加

最后等待主机添加进来即可。

分布式监控

机器准备: Zabbix Server m01 Zabbix Proxy cache01 Zabbix Agent cache02

第一步:在代理机cache01安装zabbix proxy

# 安装rpm
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# 安装代理
yum install zabbix-proxy-mysql zabbix-get -y

第二步:安装数据库,zabbix proxy也需要数据库,这个数据库只是用于存储配置信息。

yum -y install mariadb-server
systemctl start mariadb.service

# 建库 创建用户授权
mysql
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
mysql> exit

# 导入数据库文件  
zcat /usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

第三步: 配置zabbix proxy,并在zabbix网页配置

#修改zabbix proxy配置以连接数据。
[root@db01 ~]# vim /etc/etc/zabbix/zabbix_proxy.conf
DBPassword=zabbix
DBSocket=/tmp/mysql.sock    # 取消注释
Server=172.16.1.71  # 服务器端IP
Hostname=db01   # 当前proxy主机名称,需要在当前局域网是唯一的。同时需要在服务端能够解析,需要把当前Ip添加到服务端的hosts文件内。

[root@db01 ~]# systemctl start zabbix-proxy.service

第四步:配置agent指向proxy

# 最终效果
[root@web01 ~]# egrep -i "^Server|^hostname" /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.51 # 代理服务端ip
ServerActive=172.16.1.51
Hostname=web01  # 当前主机名

# 重启服务
[root@web01 ~]# systemctl restart zabbix-agent.service

配置完成后查看在proxy机器查看日志

[root@db01 zabbix]# tail -f /var/log/zabbix/zabbix_proxy.log
  9854:20191018:204217.223 cannot send proxy data to server at "172.16.1.71": proxy "db01" not found
  9854:20191018:204218.225 cannot send proxy data to server at "172.16.1.71": proxy "db01" not found

not found是因为需要在网站上进行配置,管理->agent代理程序->创建代理。