df -h
block、inode
df -h|awk '/\/$/{print $(NF-1)}'
1.监控命令参考文档php
1.CPU监控命令: w、top、htop、glances前端
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st us 用户态: 跟用户的操做有关 35% sy 系统态: 跟内核的处理有关 60% id CPU空闲:
2.内存监控命令: freenode
[root@ZabbixServer ~]# free -m total used free shared buff/cache available Mem: 974 440 194 4 340 328 Swap: 2047 11 2036
3.磁盘监控命令: df、iotop、iostat、dstatmysql
[root@ZabbixServer ~]# iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
4.网络监控命令: ifconfig、route、glances、iftop、nethogslinux
[root@ZabbixServer ~]# iftop bgx.com:https => 101.200.101.219:57456 0b 9.53Kb 6.11Kb <= bgx.com:https => 101.200.101.207:65254 0b 3.37Kb 1.12Kb #中间的<= =>这两个左右箭头,表示的是流量的方向。 TX: cum: 170KB #发送流量 RX: 37.1KB #接收流量 TOTAL: 208KB #总的流量 #若是单位为Mbps,换算为MB须要除以8,好比:100Mbps = 12MB
5.TCP11状态监控netstatios
[root@ZabbixServer ~]# netstat -an|grep ESTABLISHED [root@ZabbixServer ~]# netstat -lntup
6.那单机时代,如何使用shell
脚原本实现服务器的监控,好比: 每隔1分钟监控一次内存,当你的可用内存低于100m,发邮件报警,要求显示剩余内存,具体实现思路以下:
1.怎么获取内存可用的值free -m|awk '/^Mem/{print $NF}'
2.获取到内存可用的值如何和设定的阈值进行比较
3.比较若是大于100m则不处理,若是小于100则报警
4.如何每隔1分钟执行一次nginx
[root@ZabbixServer ~]# cat free.sh #!/usr/bin/bash HostName=$(hostname)_$(hostname -i) Date=$(date +%F) while true;do Free=$(free -m|awk '/^Mem/{print $NF}') if [ $Free -le 100 ];then echo "$Date: $HostName Mem Is < ${Free}MB" fi sleep 5 done
7.随着时间的推移,用户不断的增多,服务消耗的内存愈来愈多,当系统内存不足的时候可能会致使系统产生oom(out of memory)
1.当系统内存不足的时候就会大量使用swap
2.当系统大量使用swap的时候,系统会特别卡
注意: 有时可能内存还有剩余300Mb-500Mb,但会发现swap依然被使用web
[root@ZabbixServer ~]# dd if=/dev/zero of=/dev/null bs=800M #故障日志 [root@ZabbixServer ~]# tail -f /var/log/messages Out of memory: Kill process 2227 (dd) score 778 or sacrifice child Killed process 2227 (dd) total-vm:906724kB, anon-rss:798820kB, file-rss:0kB
1.配置Zabbix官方仓库(也能够是国内第三方)redis
[root@zabbix-server ~]# https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
2.安装Zabbix-Server、Mariadb-Server、Zabbix-agentsql
[root@zabbix-server ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server
3.建立Zabbix库,而且受权zabbix用户能访问该数据库(建立库必须指定字符集)
[root@zabbix-server ~]# mysql -uroot -p MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
4.初始化zabbix数据库,导入数据库表信息
[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/ [root@linux-node1 zabbix-server-mysql-3.4.15]# zcat create.sql.gz |mysql -uroot zabbix
5.编辑/etc/zabbix/zabbix_server.conf文件,修改zabbix-server链接数据库配置信息
[root@zabbix-server ~]# grep ^[a-Z] /etc/zabbix/zabbix_server.conf .... DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix ....
6.启动zabbix-server服务进程,并加入开机自启
[root@zabbix-server ~]# systemctl start zabbix-server [root@zabbix-server ~]# systemctl enable zabbix-server
7.编辑Apache的配置文件/etc/httpd/conf.d/zabbix.conf,修改时区。
[root@zabbix-server ~]# vim /etc/httpd/conf.d/zabbix.conf php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 #取消注释,设置中国时区 php_value date.timezone Asia/Shanghai
8.启动Apache Web服务,并将该服务加入开机自启
[root@zabbix-server ~]# systemctl start httpd [root@zabbix-server ~]# systemctl enable httpd
使用浏览器访问zabbix-server服务器地址,进入zabbix向导欢迎界面, 直接下一步便可
检查依赖项是否存在任何异常
配置zabbix-Web链接数据库信息
配置ZabbixServer服务器的主机名或主机IP地址和端口号, 以及安装的名称(可选)
安装前摘要,检查配置参数。若是一切都正确,请按"下一步"按钮或"后退"按钮来更改配置参数。
提示已成功地安装了Zabbix前端。配置文件/etc/zabbix/web/zabbix.conf.php被建立。
默认登录ZabbixWeb页面的用户名Admin
,密码zabbix
调整ZabbixWeb前端为中文字符集
至此Zabbix已经安装完毕
角色 | 外网IP(NAT) | 内网IP(LAN) |
---|---|---|
Zabbix-Server | eth0:10.0.0.71 | eth1:172.16.1.71 |
web01 | eth0:10.0.0.7 | eth1:172.16.1.7 |
1.安装Zabbix-Agent被监控端
[root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm
2.配置Zabbix-Agent指向Zabbix-Server的IP地址
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf Server=172.16.1.71
3.启动Zabbix-Agent,并加入开机自启。Zabbix-Agent默认监听10050端口
[root@web01 ~]# systemctl start zabbix-agent [root@web01 ~]# systemctl enable zabbix-agent [root@web01 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1103/zabbix_agentd
4.配置ZabbixWeb页面,点击配置->点击主机->建立主机->填写被监控端主机信息
5.点击模板->选择链接指示器->选择->搜索Linux->点击小按钮添加->最后添加
zabbix-agent(数据采集)-->zabbix-server(数据分析|报警)--> 数据库(数据存储)<--zabbix web(数据展现)
Zabbix单台服务: LNMP+Zabbix
Zabbix数据拆分: LAP+MySQL(修改以下两个文件中链接数据库的配置信息)
[root@ZabbixServer ~]# ll /etc/zabbix/zabbix_server.conf [root@ZabbixServer ~]# ll /etc/zabbix/web/zabbix.conf.php
Zabbix拆分数据库实践
角色 | 外网IP(NAT) | 内网IP(LAN) |
---|---|---|
Zabbix-Server | eth0:10.0.0.71 | eth1:172.16.1.71 |
MySQL | eth0:10.0.0.51 | eth1:172.16.1.51 |
1.在172.16.1.51的数据库上建立zabbix库
mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
2.在172.16.1.71旧的zabbix服务器上备份数据库文件
[root@ZabbixServer ~]# mysqldump -uroot \
--databases zabbix \ --single-transaction > `date +%F%H`-zabbix.sql
3.在172.16.1.71上备份zabbix数据库,并经过远程的方式导入172.16.1.51新的数据库中
[root@ZabbixServer ~]# cat 2018-08-2017-zabbix.sql |mysql -h 172.16.1.51 -uzabbix -pBgx123.com zabbix
4.修改/etc/zabbix/zabbix_server.conf配置文件中数据库链接信息
[root@ZabbixServer ~]# vim /etc/zabbix/zabbix_server.conf DBHost=172.16.1.51 DBName=zabbix DBUser=zabbix DBPassword=zabbix #重载zabbix-server服务 [root@ZabbixServer ~]# systemctl restart zabbix-server
5.修改/etc/zabbix/web/zabbix.conf.php配置文件中数据库链接信息
[root@ZabbixServer ~]# vim /etc/zabbix/web/zabbix.conf.php $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = '172.16.1.51'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'Bgx123.com'; [root@ZabbixServer ~]# systemctl restart httpd # 如出现以下错误:请检查数据库是否容许远程链接,对应的帐户和密码是否配置错误 [root@ZabbixServer ~]# tail -f /var/log/zabbix/zabbix_server.log 2189:20180820:173636.941 [Z3001] connection to database 'zabbix' failed: [2003] Can't connect to MySQL server on '172.16.1.51' (111)