一、什么是监控,为什么需要监控
监控: 监视,控制
随着用户的增多,服务随时可能会被系统硬件的不支持的服务会挂掉。
那么你怎么判断的,web服务的正常状态,web服务是因为用户的访问过多,达到瓶颈?
还是程序代码出现了bug导致的,内存不足?
二、常见的Linux的监控命令
free df top htop uptime iftop
iostat vmstat netstat nethogs
总结:这些命令都是监控的系统的cpu ,内存 ,硬盘,网络
三、如何使用脚本来进行监控
例如:
内存:每隔1分钟监控一次内存,当你的可用的内存低于100mb,就发邮件报警,要求显示剩余的内存值
#!/bin/bash
while true
do
Free=`free -m | awk 'NR==2{print $NF}'`
if [ $Free -lt 100 ]
then
echo $Free | mail -s "当前内存" liqiandliumeiling@163.com
fi
sleep 60
done
#这个是我写的脚本
模拟一下用户返问过多的来进行一个压力测试
ab -n 10000 -c 3 http://10.0.0.100/zabbix/index.php
四、zabbix的基础服务架构
image.png五、zabbix的安装及配置
ip地址: 10.0.0.61 硬件配置1G内存1个CPU 主机名:zabbix-server
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
###配置他的zabbix的yum源,(默认用的是国外的地址)为了更快的安装这了把地址改成了清华源地址
[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
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
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(这个是数据库的安全认证)
配置完成 以后就进入数据库创建数据库的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 '123456';
导入zabbix表结构和初始数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
####这个是zabbix安装server端的时候安装下来的
检查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
六、监控一台主机服务器
A: 在客户端安装的zabbix-agent
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbixagent-4.0.11-1.el7.x86_64.rpm
B: 配置zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.61
###这个server写的地址写的是zabbix-server地址
C:启动zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
D:在web界面添加主机
image.png
image.png
image.png
七、自定义监控项
A: 在命令行主机取值
例如我们要监控内存的使用情况
[root@zabbix-server ~]# iostat|awk '$1 ~/sda/'
sda 4.07 41.98 68.30 255455 415578
[root@zabbix-server ~]# iostat|awk '$1 ~/sda/{print $2}'
4.07
B: 修改zabbix-agent的配置文件
vim /etc/zabbix/zabbix_agentd.conf
UserParameter=sda_tps,iostat|awk '$1 ~/sda/{print $2}'
systemctl restart zabbix-agent.service
C: 在zabbix的server端测试
zabbix_get -s 127.0.0.1 -k sda_tps
###这个zabbix的命令是后来安装的默认是没有的
D:在web界面添加自定义监控项
image.png
image.png
八、自定义触发器
image.png image.pngimage.png
九、配置微信报警和邮件报警
9.1 邮件报警
a:自定义发件人
image.pngb:配置收件人
image.pngC: 启动动作
image.png定制报警的内容 https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_locat
ion
9.2 微信报警
a:将weixin.py放在zabbix特定目录/usr/lib/zabbix/alertscripts
这个是Python脚本是我之前啊百度找到的,上传上去的
b: 配置发件人
image.png{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE}
这个是zabbix官方定义的脚本变量,官方文档上也有它的详细信息
c: 配置收件人
image.png这里用的微信报警是用的企业微信,也是我自己提前配置好的,百度上很多这样的配置
十、自定义图像grafana
image.pngimage.png
image.png
十一、使用grafana图像
安装grafana
yum localinstall grafana-6.3.0-1.x86_64.rpm -y
systemctl start grafana-server.service
systemctl enable grafana-server.service
浏览器访问10.0.0.61:3000
账号和密码
admin:admin
image.png
安装zabbix插件,启动插件
grafana-cli plugins list-remote|grep zabbix
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server.service
#这是grafana官方的地址下载下的,也可以用上面的命令下载
image.png
数据源--zabbix数据源
image.png
选择zabbix类型
image.png
image.png
导入模板
image.png
image.png
十二、导入模板
创建自定义的模板
利用模板可以快速添加监控项:模板可以分享
nginx模板
A:开启监控页面
vim nginx.conf
location /nginx_status {
stub_status;
}
systemctl restart nginx
image.png
B:导入模板
image.png
C:准备配置文件,并测试脚本
vim zbx_nginx.conf
UserParameter=nginx_status[*],/bin/bash /server/scripts/nginx_monitor.sh $1
systemctl restart zabbix-agent
#测试脚本取值
sh nginx_monitor.sh accepts
D:在zabbix-server上取zabbix-agent值
zabbix_get -s 10.0.0.100 -k nginx_status[accepts]
E:链接模板
网友评论