主页 > 软件开发  > 

监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项


监控概述

对服务的管理,不能仅限于可用性。

还需要服务可以安全、稳定、高效地运行。

监控的目的:早发现、早治疗。

被监控的资源类型:

公开数据:对外开放的,不需要认证即可获取的数据私有数据:对外不开放,需要认证、权限才能获得的数据 监控命令 # uptime可以查看系统已经运行了多久。最后的3个数字分别是CPU最近1分钟、5分钟、15分钟的平均负载。平均负载的值,不应该大于总核心数。 [root@myhost ~]# uptime 09:28:25 up 53 days, 27 min, 0 users, load average: 0.09, 0.08, 0.03 [root@myhost ~]# free -h # 主要用于查看内存 [root@myhost ~]# swapon -s # 查看swap空间 [root@myhost ~]# df -h # 查看硬盘使用情况 [root@myhost ~]# ping -c2 www.baidu.com # 发2个包,测试网络 zabbix

实施监控的几个方面:

数据采集:使用agent(可安装软件的系统上)、SNMP(简单网络管理协议,用于网络设备的数据采集)数据存储:使用mysql数据库数据展示:通过web页面

zabbix通过在远程主机上安装agent进行数据采集,存储到mysql数据库,通过web页面进行展示。

安装zabbix 6.0 安装说明:Download and install Zabbix中文手册:Zabbix 文档 主机名地址zabbixserver192.168.88.5/24web1192.168.88.100/24web2192.168.88.200/24 安装zabbix # 1. 拷贝zabbix软件包到pubserver [root@zabbixserver ~]# scp /linux-soft/s2/zzg/zabbix_soft/*.rpm 192.168.88.240:/var/ftp/rpms # 2. 更新yum仓库配置 [root@pubserver ~]# createrepo -v /var/ftp/rpms/ # 3. 在pubserver上创建ansible工作环境 [root@pubserver ~]# mkdir -p zabbix/files [root@pubserver ~]# cd zabbix/ [root@pubserver zabbix]# vim ansible.cfg [defaults] inventory = inventory host_key_checking = false [root@pubserver zabbix]# vim inventory [zabbix] zabbixserver ansible_host=192.168.88.5 [webservers] web1 ansible_host=192.168.88.100 web2 ansible_host=192.168.88.200 [all:vars] ansible_ssh_user=root ansible_ssh_pass=a # 4. 为各台主机配置yum [root@pubserver zabbix]# vim files/local88.repo [BaseOS] name = BaseOS baseurl = ftp://192.168.88.240/dvd/BaseOS enabled = 1 gpgcheck = 0 [AppStream] name = AppStream baseurl = ftp://192.168.88.240/dvd/AppStream enabled = 1 gpgcheck = 0 [rpms] name = rpms baseurl = ftp://192.168.88.240/rpms enabled = 1 gpgcheck = 0 [root@pubserver zabbix]# vim 01-upload-repo.yml --- - name: config repos.d hosts: all tasks: - name: delete repos.d file: path: /etc/yum.repos.d state: absent - name: create repos.d file: path: /etc/yum.repos.d state: directory mode: '0755' - name: upload local88 copy: src: files/local88.repo dest: /etc/yum.repos.d/ [root@pubserver zabbix]# ansible-playbook 01-upload-repo.yml # 5. 在zabbixserver上安装相应软件包 [root@pubserver zabbix]# vim 02-inst-zabbix.yml --- - name: install zabbix hosts: zabbix tasks: - name: install zabbix # 安装软件包 yum: name: - zabbix-server-mysql - zabbix-web-mysql - zabbix-nginx-conf - zabbix-sql-scripts - zabbix-selinux-policy - zabbix-agent - mysql-server - langpacks-zh_CN state: present [root@pubserver zabbix]# ansible-playbook 02-inst-zabbix.yml # 6. 启动mysqld服务 [root@pubserver zabbix]# vim 03-start-mysqld.yml --- - name: config mysqld hosts: zabbix tasks: - name: start mysqld # 启动mysqld服务 service: name: mysqld state: started enabled: yes [root@pubserver zabbix]# ansible-playbook 03-start-mysqld.yml # 7. 在zabbix上创建连接数据库的用户 [root@zabbixserver ~]# mysql mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; # 在binlog日志开启的情况下,打开函数生成器 mysql> set global log_bin_trust_function_creators = 1; mysql> create user zabbix@localhost identified by 'zabbix'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> quit; # 8. 验证数据库配置,如果登陆不到数据库表示上一步配置不正确 [root@zabbixserver ~]# mysql -uzabbix -pzabbix -hlocalhost zabbix # 9. 在数据库中创建表并导入数据 [root@zabbixserver ~]# cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz . [root@zabbixserver ~]# gzip -d server.sql.gz [root@zabbixserver ~]# mysql -uzabbix -pzabbix zabbix < server.sql # 10. 配置zabbix_server [root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.conf DBPassword=zabbix # 11. 配置zabbix_agent [root@zabbixserver ~]# vim /etc/zabbix/zabbix_agentd.conf 182 Hostname=zabbixserver # 12. 配置nginx展示zabbix [root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf # 打开第2、3行的注释,结果如下所示: server { listen 8080; server_name example.com; ...以下省略... # 13. 启动相关服务 [root@pubserver zabbix]# vim 04-start-zabbix.yml --- - name: config zabbix hosts: zabbix tasks: - name: start service # 循环启动多个服务 service: name: "{{item}}" state: started enabled: yes loop: - zabbix-server - zabbix-agent - nginx - php-fpm [root@pubserver zabbix]# ansible-playbook 04-start-zabbix.yml

访问zabbixserver的8080端口,进行初始化:

 注意:这里的用户名Admin,A是大写的!密码是小写的zabbix

此时zabbix已经开始在监控自己了,查看默认监控配置

配置zabbix监控web1服务器 在web1上安装agent # 1. 安装agent [root@pubserver zabbix]# vim 05-inst-agent.yml --- - name: install agent hosts: webservers tasks: - name: install agent # 安装agent yum: name: zabbix-agent state: present [root@pubserver zabbix]# ansible-playbook 05-inst-agent.yml # 2. 修改web1配置文件 [root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf 117 Server=127.0.0.1,192.168.88.5 182 Hostname=web1 # 3. 起动服务 [root@pubserver zabbix]# vim 06-start-agent.yml --- - name: config agent hosts: web1 tasks: - name: start agent # 启动服务 service: name: zabbix-agent state: started enabled: yes [root@pubserver zabbix]# ansible-playbook 06-start-agent.yml 在web页面中添加对web1的监控 主机:安装了agent,被监控的主机主机组:根据需求,将多台主机加入到一个主机组中,方便管理。系统默认已经创建了一些主机组。模板:是监控项的集合。将模板应用到主机,主机就可以直接拥有模板中的所有监控项。系统中默认已经创建了一些模板。

常用监控指标 Space utilization:以百分比显示的磁盘利用率Used space:已用磁盘空间Available memory:可用内存CPU idle time:CPU空闲时间。不宜过低。Load average (1m avg)、Load average (5m avg)、Load average (15m avg):CPU1分钟、5分钟、15分钟的平均负载。这个值不应长期大于核心数。Interface eth0: Bits received:网卡接收到的数据量Interface eth0: Bits sent:网卡发送的数据量Number of processes:系统运行的进程数Number of logged in users:已登陆的用户数 自定义监控项 实现监控web1用户数量的监控项 在被控端创建key。被控端被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。在web页面中创建监控项。监控项对应key值。

 

在被控端创建key 创建key的语法 UserParameter=自定义key值,命令 # 命令的执行结果,是key的value 创建自定义配置文件。文件名自定义。 [root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/usercnt.conf UserParameter=usercnt,sed -n '$=' /etc/passwd [root@web1 ~]# systemctl restart zabbix-agent.service 验证自定义监控项 # 1. 安装zabbix-get [root@zabbixserver ~]# yum install -y zabbix-get [root@web1 ~]# yum install -y zabbix-get # 2. 获取监控项的值 [root@web1 ~]# zabbix_get -s 127.0.0.1 -k usercnt 46 [root@zabbixserver ~]# zabbix_get -s 192.168.88.100 -k usercnt 46 创建模板 创建模板

创建监控项

 应用模板到主机

 查看结果

 

标签:

监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项