监控-Zabbix

Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置

能够做到主机的性能监控、网络设备性能监控、数据库性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制,实时收集数据,软件开源免费

官网地址: https://www.zabbix.com/

Zabbix-Server端口:10051 Zabbix-Agent端口:10050

一、安装

1.yum 源配置

安装的版本为4.4, 官方文档

客户端口,服务端都配置,需要开启CentOS

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# vim /etc/yum.repos.d/zabbix.repo

[zabbix]
name=zabbix
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/x86_64/
enabled=1
gpgcheck=0
[zabbix_deps]
name=zabbix_deps
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/x86_64/
enabled=1
gpgcheck=0

安装

#服务端
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server
#客户端
yum install zabbix-agent

2.数据初始化

启动数据库:

systemctl start mariadb

创建数据库并添加用户:

create database zabbix default charset utf8;
grant all on zabbix.* to zabbix@'localhost' identified by '123456';
flush privileges;

导入表数据:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql zabbix -uzabbix -p 

3.配置

# vim /etc/zabbix/zabbix_server.conf
ListenPort=10051
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/var/lib/mysql/mysql.sock
ListenIP=0.0.0.0

#重启服务
systemctl restart zabbix-server
systemctl enable zabbix-server
lsof -i:10051    

修改时区

# vim /etc/httpd/conf.d/zabbix.conf
#打开注释,并修改为亚洲上海 (20行)
php_value date.timezone Asia/Shanghai

#重启服务
systemctl restart httpd

字体问题

当我们切换为中文后,会发现图表中的中文不能正常显示

解决方案:从windows中拷贝一个中文字体,上传至服务器

第一步:拷贝字体(微软雅黑)

文件位置:C:\Windows\Fonts\msyh.ttc

第二步:将文件拷至对应文件夹并修改后缀

mv msyh.ttc /usr/share/zabbix/assets/fonts/msyh.ttf

第三步:启用字体

vim /usr/share/zabbix/include/defines.inc.php
  #修改如下内容
  define('ZBX_GRAPH_FONT_NAME',           'msyh');

4.使用

浏览器访问: http://IP/zabbix

进行初始化配置

默认账号密码: 账号admin密码zabbix

二、主机管理

1.监控本机

#1.安装
yum install zabbix-agent
#2.配置
vim /etc/zabbix/zabbix_agentd.conf    
  #编辑如下内容
  Server=127.0.0.1
  ListenPort=10050
#3.启动服务
systemctl start zabbix-agent
systemctl enable zabbix-agent
losf -i:10050

Web端已经显示主机,不需要再添加

2.监控远程机器

客户端安装

#1.安装
yum install zabbix-agent
#2.配置
vim /etc/zabbix/zabbix_agentd.conf    
  #编辑如下内容
  Server=10.1.1.60
  ListenPort=10050
#3.启动服务
systemctl start zabbix-agent
systemctl enable zabbix-agent
losf -i:1005

服务端添加主机

在主机列表中将会看到主机

注意:有时候需要等一会才会看到主机可用性`ZBX`会亮起

3.自动发现与动作

当机器过多时,一台台添加就会很麻烦,这是可以在zabbix-server添加自动发现规则,并添加动作来添加主机

第一步:所有被监控机安装zabbix-agent,并配置Server

#1.安装
yum install zabbix-agent
#2.配置服务端IP
vim /etc/zabbix/zabbix_agentd.conf
   Server=10.1.1.60
#3.重启服务
systemctl restart zabbix-agent
lsof -i:10050

第二步:添加自动发现规则

第三步:添加动作

系统已经创建有一个,我们只需要根据需求修改下就可以

三、监控

Zabbix自带了很多模板,提供了很多监控项,触发器,图形等供我们使用,也可以自动一监控项

1.系统模板

模板:Template Module Linux CPU by Zabbix agent

图形:System load

2.自定义监控项

自定义键值

客户端创建

#1.编辑配置
vim /etc/zabbix/zabbix_agentd.conf
#2.添加如下内容
   UserParameter=my.process_count,ps -ef|wc -l
#3.重启服务
systemctl restart zabbix-agent

服务端测试(仅做测试,可以直接在web端进行测试)

#1.安装测试软件
yum install zabbix-get
#2.测试
zabbix_get  -s 10.1.1.61 -k my.process_count

Web添加监控项

其他监控项:

#统计进程数
UserParameter=my.os.process_count,ps -ef|wc -l
#统计可用内存
UserParameter=my.os.mem,free -m| awk 'NR==2' |awk '{print $NF}'

3.自定义添加图形

4.添加触发器

5.nginx监控

注意:仅做练习使用

nginx配置

#1.安装nginx
yum install nginx
#2.编辑配置文件,开启统计功能
vim /etc/nginx/nginx.conf
...
        location /status {
                stub_status on;
                allow 10.1.1.11; # 必须要允许zabbix server访问
                allow 127.0.0.1; # 允许本机访问
                allow 10.1.1.1;     # 加这个IP是为了windows宿主机访问用的
                #deny all;
                access_log off;
        }
#3.重启服务
systemctl restart nginx

②创建脚本

# vim /opt/scripts/nginx_staus.sh
#!/bin/bash
status=`curl http://10.1.1.61/status 2>/dev/null`
#根据传入参数,截取特定数据
case $1 in
   ping) pidof nginx | wc -l  ;;
   active) echo $status |awk '{print $3}' ;;
   accepts) echo $status |awk '{print $8}' ;;
   handled) echo $status |awk '{print $9}' ;;
   requests) echo $status |awk '{print $10}' ;;
   reading) echo $status |awk '{print $12}' ;;
   writing) echo $status |awk '{print $14}' ;;
   waiting) echo $status |awk '{print $NF}' ;;
esac

#为脚本添加执行权限
chmod +x  /opt/scripts/nginx_staus.sh

③配置agent

# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=nginx_status[*],/opt/scripts/nginx_staus.sh

#重启服务
systemctl restart zabbix-agent.service

服务端测试(仅做测试,可以直接在web端进行测试)

#1.安装测试软件
yum install zabbix-get
#2.测试
zabbix_get  -s 10.1.1.61 -k nginx_status[ping]
zabbix_get  -s 10.1.1.61 -k nginx_status[requests]

四、Web 检测

类似一个监控项,可以对一个url页面进行监测(监测它的状态码,页面匹配的字符串,响应时间,下载速度等)

1.添加web场景

2.查看状态

测试,停止nginx服务

3.添加触发器

添加完状态后会自动添加相关监控项,根据这些监控项可以添加相关图表或者触发器

五、接入报警平台

报警平台onealeart 官网 :http://www.onealert.com/

第一步:添加Zabbix监控

第二步:配置通知策略

六、其他

①创建聚合图形

②用户管理

③群组管理

④模板创建及导入导出

⑤Zabbix Proxy

分担组服务器压力,由Proxy手机Agnet信息然后再发至Zabbix-Server

⑥Zabbix 主动模式 被动模式

Last modification:February 28th, 2020 at 11:04 pm