zabbix

Zabbix监控

Linux监控命令

项目 对应检查命令
网站/业务/api curl/wget
服务 systemctl/service/chkconfig(c6)
进程 ps/pstree/pgrep/pidstat/top/htop
CPU top/htop/vmstat/mpstat/lscpu/cpuinfo/w/uptime/sar
内存 top/free/ps/iotop(swap)/vmstat/mpstat/sar/hcache(buffer+cache)
磁盘 iotop/iostat/sar #磁盘测试命令 dd,fio
网络 iftop(整体带宽使用情况)/nethogs(精确到进程)/nstat/ifstat/mtr/sar
硬件 Megacli(监控raid)/ipmitool(温度,cpu风扇转速)/lm_sensors(温度)

🌟🌟🌟监控对象

  1. 从单台机器的角度看

    业务(应用/api)信息 应用,程序代码是否有问题,(需要我们与开发沟通,书写一个页面) eg: lnmp的时候的 php与mysql测试页面.
    服务信息 各种服务状态, 进程,端口,状态,特定的信息(不同服务)
    系统信息 cpu,内存(内存,swap,buffer/cache) ,磁盘(io,使用率,inode),负载,网络(in/out),.......
    硬件信息 磁盘,raid状态,温度,风扇转速, 机房温度,湿度
  2. 从集群的角度看

    DNS解析: ping/dig/nslookup/host
    DNS解析域CDN是否ok 本质:通过全局访问测试工具(模仿用户在全国(全球)各地访问我们的网站)
    	任性不差钱: 全国各地(核心城市),1台服务器,在服务器访问你们的源站/cdn/dns, (对应的服务:smokeping)
    	免费: http://17ce.com http://ping.chinaz.com/ 调试工具:http://cesule.tingyun.com/cesule/home
    	商业版: 听云,监控宝 (告警)
    TCP三次握手-网站负载均衡监控 ss -ant
    HTTP请求报文-监控web日志查看(状态码) 补充: 加上HTTPS监控过期
    请求经过网站架构
    	负载均衡(Nginx)
    	web服务器(php,tomcat..)
    	缓存
    	数据库
    	存储
    HTTP响应报文-监控web日志查看(状态码)
    TCP四次挥手-网站负载均衡监控 ss -ant
    断开连接
    
  3. 其他

    错误日志监控,error.log , catalina.out
    网站性能监控: apm监控: skywalking ....
    舆情监控

Zabbix安装

官方文档传送门

zabbix为CS(Client和Service)结构分为web页面,服务端(zabbix-server),客户端(zabbix-agent2)三个部分,需要分别配置。web端需要lnmp环境支持,zabbix的数据主要存储和读取至数据库。

总结

1.安装lnmp环境

2.设置zabbix源,并下载
rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

sed -i  's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g'   /etc/yum.repos.d/zabbix.repo

yum install -y zabbix-server-mysql zabbix-agent2

2.创建数据库,同时设置字符集
create database  zabbix charset utf8    collate utf8_bin;

3.创建数据库用户,导入模板数据
zcat  /usr/share/doc/zabbix-server-mysql-5.0.18/create.sql.gz   |mysql -uzabbix -p1 zabbix

4.下载zabbix前端代码

5.复制zabbix前端ui文件夹下文件到站点目录并修改权限,编写虚拟主机文件并重启nginx

6.修改php.ini信息并重启
[root@m03 ~]# egrep -n '^(max_|date.timezone|post_max)'   /etc/php.ini 
368:max_execution_time = 300
378:max_input_time = 600
656:post_max_size = 80M
802:max_file_uploads = 20
877:date.timezone = Asia/Shanghai

7.修改zabbix-server配置信息,并重启zabbix
[root@m03-zabbix-server ~]# grep -n '^DB' /etc/zabbix/zabbix_server.conf 
91:DBHost=localhost
100:DBName=zabbix
116:DBUser=zabbix
124:DBPassword=1

8.修改/var/lib/php/session权限

9.登录 Admin: zabbix

客户端快速配置

1.客户端下载客户端安装包
rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.18-1.el7.x86_64.rpm

2.修改客户端配置文件,并重启
[root@web01 ~]# grep '^[a-Z]'  /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=172.16.1.71 ##更改为服务端IP
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@web01 ~]# systemctl restart zabbix-agent2.service

3.服务端下载zabbix_get并测试
[root@m03-zabbix-server ~]# #yum install -y zabbix-get 
[root@m03-zabbix-server ~]# 
[root@m03-zabbix-server ~]# zabbix_get -s 172.16.1.7  -p 10050    -k system.hostname
web01

Zabbix获取数据方式

支持snmp(包括trapping and polling),IPMI,JMX,SSH,TELNET

指标 监控方式
硬件监控 Zabbix、IPMI、lnterface
系统监控 Zabbix、Agent、Interface
Java监控 Zabbix、JMX、lnterface
网络设备监控 Zabbix、SNMP、lnterface
应用服务监控 Zabbix、Agent、UserParameter
MySQL数据库监控 percona-monitoring-plulgins
URL监控 Zabbix Web监控

被动模式:Zabbix-Server主动获取数据

主动模式:监控主机超过300台时设置使用,由Zabbix-Agent主动发送数据到Zabbix-Server

自动发现

web端配置自动发现规则和自动发现动作

自动注册 VS 自动发现

自动注册:客户端主动向服务端发送信息验证

自动发现:服务端主动发现网段中的客户机

自动注册

客户端修改

[root@lb01 ~]# grep -P  '^\w'  /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=172.16.1.71
ServerActive=172.16.1.71
HostnameItem=system.hostname  ##用于标识主机
HostMetadataItem=system.uname  ##主机元数据,用于校验
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

服务端配置

分布式监控

Zabbix Proxy是一个类似于代理的服务,可以代替Zabbix-server获取 zabbix-agent信息。其中数据存到本地(Proxy有自己的数据库)然后在发送给Server,这样可以保证数据不丢失。最常用的特点是适用于多机房网络不稳定的时候,因为如果直接由Zabbix-server发送信息可能agent没有收到,但是直接使用Zabbix-Proxy就不会遇到这个问题。

  1. 下载安装zabbix-proxy

    yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-proxymysql-5.0.18-1.el7.x86_64.rpm

  2. 配置并初始化数据库

    ##安装数据库
    yum install -y maraidb-server
    ##配置数据库
    create database zabbix_proxy character set utf8 collate utf8_bin;
    grant all on zabbix.* to 'zabbix_proxy'@'localhost' identified by '1';
    ##初始化数据
    zcat /usr/share/doc/zabbix-proxy-mysql-5.0.18/schema.sql.gz |mysql -uroot -py zabbix_proxy
    
  3. 配置zabbix-proxy配置文件并重启

    [root@web01 ~]# egrep -n '^Server|^Host|^DB' /etc/zabbix/zabbix_proxy.conf
    30:Server=172.16.1.71
    49:Hostname=Zabbix_proxy_beijing
    162:DBHost=localhost
    173:DBName=zabbix_proxy
    188:DBUser=zabbix_proxy
    196:DBPassword=1
    
  4. 被代理客户端配置

    [root@nfs01 ~]# egrep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
    PidFile=/var/run/zabbix/zabbix_agent2.pid
    LogFile=/var/log/zabbix/zabbix_agent2.log
    LogFileSize=0
    Server=127.0.0.1  ##改为代理服务器的ip
    ServerActive=127.0.0.1  ##改为代理服务器的ip
    HostnameItem=system.hostname
    HostMetadataItem=system.uname
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
    ControlSocket=/tmp/agent.sock
    
    

    被代理客户机,web端配置

    2中设置为代理服务器的Hostname

  5. 服务端配置

    ##zbx server
    - hosts: zabbix-server 服务端
    ####命令行配置文件 检查 是否有收集proxy数据的进程
    grep ProxyPollers /etc/zabbix/zabbix_server.conf #非0即可
    
  6. web端添加

  7. 代理效果演示

Grafrana

  1. 下载安装Grafana

    wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.3.5-1.x86_64.rpm
    yum localinstall -y /server/tools/grafana-7.3.5-1.x86_64.rpm
    systemctl enable grafana-server
    systemctl start grafana-server
    ss -lntup |grep grafana
    
  2. 修改web端配置

    web登录默认的用户名密码admin : admin
    
  3. 添加插件

    linux中下载插件

    grafana-cli plugins install alexanderzobnin-zabbix-app

  4. 下载模板

    下载模板地址官网dashboards

    导入入口

用户自定义脚本流程

1.编辑客户端配置文件,添加kv命令,然后重启
[root@web01 ~]# vim /etc/zabbix/zabbix_agent2.d/rootlogin.conf
##检查root用户登录
UserParameter= rootlogin, who|awk '$1=="root"'|wc -l

##重启客户端
systemctl restart zabbix-agent2.service

2.服务端测试
[root@m03 /server/tools/zabbix-5.0.18]# zabbix_get -s 172.16.1.7 -k rootlogin

3.web端添加监控项显示数据

额外

中文乱码

cd /code/zabbix/assets/fonts/
#上传一个中文的ttf字体 替换 zabbix自用的字体即可.
cp /code/zabbix/assets/fonts/DejaVuSans.ttf{,.bak}
cp msyh.ttc /code/zabbix/assets/fonts/DejaVuSans.ttf

问题解决

  1. 服务端自我监控报错,打开agent日志报错如图

    解决:修改服务端中的agent配置,将Server的IP改为127.0.0.1
    
    [root@m03 /app/code/zbix/assets/fonts]# egrep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf 
    PidFile=/var/run/zabbix/zabbix_agent2.pid
    LogFile=/var/log/zabbix/zabbix_agent2.log
    LogFileSize=0
    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=Zabbix server
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
    ControlSocket=/tmp/agent.sock
    
    
  2. 服务端报错

    zabbix服务端无法自动注册客户端

    1.客户端配置文件错误
    2.hosts文件错误
    
posted @ 2022-04-12 18:32  carlrxu  阅读(609)  评论(0)    收藏  举报