zabbix监控

Posted baozexu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix监控相关的知识,希望对你有一定的参考价值。

zabbix 监控

1.什么是监控

? 监视,控制

2.为什么要做监控

? 教室: 监控学员的学生状况
? 超市: 防偷
? 马路: 事故(事后追溯)
? 监控: 本质上是 行为

系统为什么要做监控:
监控是整个运维乃至整个产品生命周期中最重要的一环.
事前及时预警发现故障,事后提供详实的数据用于追查定位问题/。

3.监控怎么做,比如我要监控内存的使用率,低于百分之20则报警

? 1.提取内存的指标
? 2.判断比对 ,与管理人员设定的阈值
? 3.大于百分之20, 则忽略
? 4.小于百分之20, 则触发警告

4.监控有哪些工具来辅助实现

? cacti 用于监控网络设备 交换机 路由器 防火墙 流量为主
? Nagios 用于监控系统
? Zabbix 用于监控系统 web界面 分布式 报警 自带模板
? open-falcon 小米公司
? Prometheus+grafana

?

5.去到一家新公司如何着手监控

    1..硬件监控      ( 交换机  路由器  防火墙  服务器 )   DELL  IRDAC   ipmi
    2.系统监控      ( CPu  内存  磁盘   IO  )
    3.服务监控      ( nginx  php   mysql   tomcat  ....... )
    4.日志监控      ( ELK 架构    )
    5.web监控     ( 请求延时 响应延时 加载时间  ..... pv uv ip )
    6.业务监控       新增用户  流量  购买量 
    7.分布式监控 多机房监控 proxy
    8.自动化监控 自动的添加主机进行监控

6.单机时代如何监控

命令监控

监控:
    cpu:    top htop
    内存: free -m     大量消耗内存会占用swap,如果没有swap 则会触发oom
    磁盘:   df -h 空间  iotop
    网络:   ifconfig route iftop nethogs nethogs -v 3
    glances

shell脚本 + crond 定时任务 (监控当前系统用户登录的数量 超过4 则报警)

for ip in {7..9}
do
    users=$(ssh root@172.16.1.$ip "who|wc -l")
    

if [ $user -ge 3 ];then
    echo "报警通知  172.16.1.$ip"
fi

done

引入zabbix监控

4.安装zabbix4.0

1.配置yum仓库

rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

2.安装zabbix相关功能组件

yum install zabbix-server-mysql zabbix-web-mysql httpd mariadb-server -y

3.创建数据库

systemctl start mariadb

systemctl enable mariadb

mysql -uroot -e "create database zabbix character set utf8 collate utf8_bin;"

mysql -uroot -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"

4.导入数据至数据库中

zcat /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql.gz | mysql -uroot zabbix

5.配置zabbix-server指向数据库

[root@zabbix-server ~]# grep '^D' /etc/zabbix/zabbix_server.conf 
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

6.启动 Zabbix server 进程

systemctl enable zabbix-server

systemctl start zabbix-server

7.配置Zabbix 前端 web页面

vim /etc/httpd/conf.d/zabbix.conf。

.....
php_value date.timezone Asia/Shanghai
....

systemctl restart httpd

8.通过url访问zabbix-server

1.根据提示填写信息即可
    2.默认的用户名和密码是
        username: Admin
        password: zabbix
    

9.登录zabbix后

? 1.修改密码
? 2.将zabbix修改为中文

10.如何快速的监控一台主机

? 1.需要安装zabb-agent
? 2.agent版本要求
? 平级zabbix-server
? 低于zabbix-server

3.安装zabbix-agent (没有依赖)

 rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.14-1.el7.x86_64.rpm

4.配置zabbix-agent,允许172.16.1.71 能够采集172.16.1.7本地的数据

[root@web01 ~]# 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.71
Include=/etc/zabbix/zabbix_agentd.d/*.conf

5.启动zabbix-agent

systemctl enable zabbix-agent

systemctl start zabbix-agent    

systemctl restart  zabbix-agent

6.登录zabbix-server web界面

1.配置-->主机-->添加主机
    2.模板-->关联-->Template Linux OS 

11.zabbix中文乱码

rpm -ql zabbix-web | grep fonts

/usr/share/zabbix/assets/fonts

cd  /usr/share/fonts/dejavu

mv DejaVuSans.ttf DejaVuSans_bak.ttf

mv msyh.ttf DejaVuSans.tt

12.zabbixserver如何监控自己本身?

  rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.14-1.el7.x86_64.rpm
    systemctl start zabbix-agent
    systemctl enable zabbix-agen

13.zabbix基础架构

    zabbix-agent
    zabbix-server
    mariadb
    zabbix-web

14.zabbix架构拆分

LAMP架构
LAP+MySQL   
    172.16.1.71 zabbix-server  zabbix-web
    172.16.1.51 数据库

1.安装数据库

    yum install mariadb-server -y
    systemctl enable mariadb
    systemctl start mariadb

2.创建zabbix库,配置远程授权用户

create database zabbix character set utf8 collate utf8_bin;
    grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';

3.在172.16.1.71上进行如下操作

    [root@zabbix-server ~]# mysqldump -B zabbix >zabbix.sql
    [root@zabbix-server ~]# cat zabbix.sql | mysql -h 172.16.1.51 -uzabbix -pzabbix zabbix

4.修改zabbix-server配置的指向

[root@zabbix-server ~]# cat /etc/zabbix/zabbix_server.conf
#DBHost=localhost
DBHost=172.16.1.51
[root@zabbix-server ~]# systemctl restart zabbix-server

5.修改zabbix-web配置的指向

[root@zabbix-server ~]# vim /etc/zabbix/web/zabbix.conf.php
$DB['SERVER']   = '172.16.1.51';
[root@zabbix-server ~]# systemctl restart httpd

15.如何快速监控一个自定义对象,比如监控当前用户登录数量

? Format: UserParameter=,
1.使用shell命令提取当前用户登录的数量 who|wc -l
2.使用zabbix-agent将shell命令提取的结果封装一个监控项 UserParameter
3.zabbix-agent自己检查该监控项是否能正确提取到对应的值 zabbix_agent -p
4.zabbix-server通过zabbix-get检查zabbix-agent端自定义的监控项是否正常 zabbix_get -s 172.16.1.7 -k user_login
5.登录zabbix-web页面, 找到对应的主机, 然后添加对应的监控项.
6.点击检测中--->最新数据--->选择主机--->选择应用级-->检查监控项指标的变化

cat /etc/zabbix/zabbix_agentd.d/all.conf 
UserParameter=user_login,who|wc -l
systemctl restart zabbix-agent
服务端检查
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.14-1.el7.x86_64.rpm
zabbix_get -s 172.16.1.7 -k user_login

7.登录zabbix-web页面, 找到对应的主机, 然后添加对应的监控项.

8.点击检测中--->最新数据--->选择主机--->选择应用级-->检查监控项指标的变化

16.如何快速设定一个自定义阈值,比如超过4个人登录则触发报警

    1.基于已创建好的监控项设定阈值
    2.如果达标则触发
    3.如果不达标,继续探测,监视

17.前端展示报警:

    1.点击右上角小人头-->正在发送消息-->勾选前端信息中

以上是关于zabbix监控的主要内容,如果未能解决你的问题,请参考以下文章

zabbix使用zabbix_java_gateway 监控java应用进程

zabbix使用zabbix-java-gateway监控jvm/tomcat性能

日志文件报警监控脚本(可用于zabbix监控文件)测试中...

使用 zabbix 自动发现监控 MySQL

为主机添加zabbix监控

使用Zabbix+Grafana监控