文章目录
ZABBIX 监控
1. 什么是监控,为什么需要监控
监控:监视,控制
随着用户的增多,服务随时可能会挂掉宕机
你怎么判断,web服务是因为用户访问过多,达到了瓶颈?还是程序代码bug导致的,内存过多?
当然不希望自己网站或者服务器由于各种原因而不能访问。网络状况复杂
,难以保证7×24小时100%的在线
1.1 常见软件:
zabbix(监控) + grafana(优雅展示)
nagios(难够死)+cacti
prometheus普罗米修斯 监控容器docker k8s
Open Falcon (小米)
监控宝/听云 (模拟用户访问 网站 检测速度) smokeping
2. Zabbix监控框架
- zabbix监控模式: cs client server服务端和客户端模式
3. 多维度的监控体系
- 监控框架(分层)
-
应用程序层(app)
- 书写页面
- 页面反映出 nginx + php + mysql 是否正常 代码是否正常.
- nginx+php phpinfo();
- php+mysql
-
服务层
- 各种程序 nginx mysql php tomcat xxx
- 端口
- 进程
- 服务内置方法:nginx:stub_status
- redis
-
系统层
- cpu: ps aux;top;htop;vmstat;iostat;sar;/proc/cpuinfo;lscpu
- 内存: free -h;ps aux;htop;top;jmap -heap pid;
- 磁盘 磁盘io: df -h; du -sh;iotop -o;vmstat;iostat;
- 网络带宽: iftop;nethogs;ping;nc;telnet;nmap
- 负载: top;w;uptime
-
物理硬件
- 温度 ipmitool
- 风扇转速 ipmitool
- raid卡状态 megacli
- 网络设备 流量
-
用户访问速度
- 监控宝/听云/smokeping
-
cpu | top,htop,ps aux,vmstat (procs r b) |
---|---|
MEM | top,free,ps aux,iotop(磁盘io,swap) |
磁盘IO | iotop,iostat,sar(sysstat) |
网络 | iftop, nethogs,ping |
查看raid信息工具 | Megacli |
物理服务器状态(温度 风扇) | ipmitool , lm_sensors |
3.1 VSZ RSS
- ps aux VSZ RSS
内存 虚拟内存 = 物理内存+swap`
VSZ
Virutal 占用的虚拟内存大小
RSS
占用的物理内存大小
4. 版本选择及帮助查询
LTS Long Time Support 长期维护版本
根据需求选择对应得版本
清华源官方地址
zabbix
在最后一行
- 推荐使用清华源
- 有历史版本
- 下载速度快
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.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 -y install php zabbix-server-mysql zabbix-web-mysql zabbix-agent httpd mariadb-server
5. zabbix生产环境安装
ip地址:10.0.0.61 硬件配置:2C2G 主机名:zabbix-server 环境:PHP HTTP
1:配置zabbix yum仓库
wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0- 1.el7.noarch.rpm
rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm
[root@zabbix-server ~]# cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/
enabled=1
gpgcheck=1
.....省略.....
2:安装zabbix服务端和zabbix-web前端
yum install zabbix-server-mysql zabbix-web-mysql -y
3:安装mariadb,创建zabbix库,授权zabbix用户
yum install mariadb-server -y
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
回车
n
一路y
mysql
- 设置中文字符 因为web页面也要设置以防乱码状态
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '123456';
导入zabbix表结构和初始数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
检查zabbix库是否导入成功
mysql -uroot zabbix -e 'show tables'
4:配置启动zabbix-server
vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
启动zabbix-server
systemctl start zabbix-server
systemctl enable zabbix-server
检查:
netstat -lntup
5:修改Zabbix前端的PHP配置,并启动httpd
- 更改到上海得时区
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
systemctl start httpd
systemctl enable httpd
6:前端zabbix-web的安装
浏览器:http://10.0.0.61/zabbix
后期修改zabbix数据库密码的时候,需要修改的配置文件:
`/etc/zabbix/web/zabbix.conf.php`
http://10.0.0.61/zabbix/zabbix.php
登录的账号密码;
Admin zabbix
软件包 | |
---|---|
zabbix-server-mysql-4.0.12-1.el7.x86_64 | zabbix-server服务端 |
zabbix-web-4.0.12-1.el7.noarch | zabbix服务端web页面 |
6. 监控一台服务器主机
6.1 安装zabbix-agent
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix- agent-4.0.11-1.el7.x86_64.rpm
6.2 配置zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.61
6.3 启动zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
检查agent开启得端口
ss -lntup |grep 10050
6.4 m01 zabbix 服务端操作与测试 zabbix-get
yum install -y zabbix-get
[root@oldboy-m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k agent.version
4.0.13
[root@oldboy-m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k agent.ping
1
# key 键值 相当于是 zabbix内置的函数 (后面我们可以自定义)
6.5 zabbix-web界面,添加主机
- 关联模板
- 检查结果
7.检查测试
- 服务端
- zabbix: /etc/zabbix/zabbix_server.conf
[root@oldboy-m01 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
- 客户端
[root@oldboy-m01 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.1.61
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
-
错误提示
-
查看日志
-
zabbix_get 连接测试键值
[root@m01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.12-1.el7.x86_64.rpm
[root@m01 ~]# zabbix_get -s 172.16.1.7 -k system.uname
Linux web01 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64