监控
Zabbix
Zabbix部署及基础配置
Prometheus
Prometheus部署
基于Consul的自动发现
Prometheus Operator部署
本文档使用 MrDoc 发布
-
+
首页
Zabbix部署及基础配置
# Zabbix的架构和原理 Zabbix是一款高度可扩展、开源的监控和警报工具,其核心架构包括以下几个部分: 1. Zabbix Server:Zabbix Server是整个监控系统的核心组件,负责接收和处理来自Zabbix Agent的监控数据。Zabbix Server可以通过多种方式收集数据,如SNMP、IPMI、SSH等。收集到的数据会存储在Zabbix数据库中,供后续处理和分析。 2. Zabbix Agent:Zabbix Agent是安装在被监控主机上的软件,负责收集并提供监控数据。Zabbix Agent可以运行在各种操作系统上,支持多种编程语言。Agent会定期将监控数据发送给Zabbix Server,以确保监控数据的实时性和准确性。 3. Zabbix Web界面:Zabbix Web界面是一个基于Java的Web应用程序,用于展示和管理监控数据。通过Zabbix Web界面,用户可以轻松查看实时监控数据、历史趋势、报警信息等。此外,Zabbix Web界面还提供了丰富的报告和统计功能,方便用户分析和诊断系统性能。 4. Zabbix API:Zabbix API是一个RESTful风格的接口,允许外部程序和脚本访问Zabbix Server的数据和功能。通过Zabbix API,您可以实现自动化操作、数据集成和其他定制功能。 5. 数据库:Zabbix使用MySQL或PostgreSQL数据库存储监控数据、配置信息和报警历史等。数据库服务器可以是本地或远程的,以便于扩展和备份。 6. 报警和通知:Zabbix支持多种报警方式,如邮件、SMS、即时通讯等。当监控项触发报警条件时,Zabbix Server会将报警信息发送给指定的用户或团队。此外,Zabbix还支持通知渠道的聚合和重试,以确保报警信息的及时传递。 7. 插件和扩展:Zabbix具有良好的扩展性,通过丰富的插件和扩展模块,可以实现对各种设备和协议的监控。此外,Zabbix社区不断推出新功能和优化性能,使得Zabbix适用于更多场景。 总之,Zabbix的架构和原理涵盖了一个完整的监控闭环,从数据收集、处理、存储到展示和报警。通过各个组件的协同工作,Zabbix能够为用户提供高效、可靠的监控解决方案。在实际应用中,您可以根据需求和场景灵活配置Zabbix,发挥其强大功能,确保系统的稳定运行。 官网:https://www.zabbix.com/cn 用户手册:https://www.zabbix.com/documentation/current/zh/manual # Zabbix Server和Agent的安装过程 **前提** 需要部署好LAMP(LNMP)环境,具体组件:httpd、mysql(mariadb)、php、php-mysql Ubuntu: ```bash $ sudo apt install apache2 mariadb-server php php-mysql -y ``` Centos: ```bash $ yum install httpd mariadb-server php php-mysql -y ``` 启动相关服务: Ubuntu: ```bash $ sudo systemctl start apache2 && sudo systemctl start mariadb # 设置服务自启动 $ sudo systemctl enable apache2 && sudo systemctl enable mariadb ``` Centos: ```bash $ systemctl start httpd && systemctl start mariadb # 设置服务自启动 $ systemctl enable httpd && systemctl enable mariadb ``` - 基础环境验证,配置一个php测试页面 ```bash $ vim /var/www/html/index.php <?php phpinfo(); ?> ``` 浏览器访问127.0.0.1/index.php,如果出现以下页面说明没问题  **安装zabbix依赖** Ubuntu: ```bash $ sudo apt install libxml2-dev libsnmp-dev libevent-dev libpcre3-dev libmysqld-dev libghc-curl-dev libcurl4-openssl-dev libsnmp-dev *snmp* libperl-dev php-bcmath php-mbstring php-xmlwriter php-xmlreader libldap-2.4-2 ldap-utils libldap2-dev php-gd ``` Centos: ```bash $ yum install net-snmp-devel libxml2-devel libcurl-deve libevent libevent-devel curl curl-devel mysql-devel net-snmp *snmp* perl-DBI php-gd php-xm php-bcmath php-mbstring php-ldap php-odbc php-xmlpc mysql-deve gcc dos2unix -y ``` #### ## Zabbix Server安装 官方文档:https://www.zabbix.com/cn/download **Ubuntu** 1、安装Zabbix存储库 ```bash $ wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb $ dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb $ apt update ``` 2、安装Zabbix server,Web前端,agent ```bash $ apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent ``` **redhat** 1、安装Zabbix存储库 ```bash $ rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm $ dnf clean all ``` 2、安装Zabbix server,Web前端,agent ``` # 切换php的dnf模块版本 $ dnf module switch-to php:7.4 $ dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent ``` 1、创建初始数据库 ```bash $ systemctl start mariadb-server $ systemctl enable mariadb-server $ mysqladmin -u root password '123456' $ mysql -u root -p 123456 mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; mysql> create user zabbix@localhost identified by 'password'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> set global log_bin_trust_function_creators = 1; mysql> flush privileges; mysql> quit; ``` 导入初始架构和数据到数据库 ```bash $ zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix ``` 导入数据库架构后禁用log_bin_trust_function_creators选项。 ```bash $ mysql -uroot -p password mysql> set global log_bin_trust_function_creators = 0; mysql> quit; ``` 2、修改zabbix server配置文件: ```bash # 进入配置文件目录 cd /etc/zabbix # 备份zabbix server配置文件 sudo cp -fp zabbix_server.conf zabbix_server.conf.bak # 修改配置文件 sudo vim zabbix_server.conf LogFile=/tmp/zabbix_server.log DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=123456 ``` 3、配置zabbix web页面: ```bash $ sudo cp -a /opt/zabbix-5.4.9/ui/* /var/www/html/ $ sudo systemctl restart mariadb # ubuntu $ sudo systemctl restart apache2 # redhat $ sudo systemctl restart httpd ``` 4、开启Zabbix服务 ```bash # ubuntu $ systemctl restart zabbix-server zabbix-agent $ systemctl enable zabbix-server zabbix-agent # redhat $ systemctl restart zabbix-server zabbix-agent $ systemctl enable zabbix-server zabbix-agent ``` 5、登录网站页面进行初始化 ```shell http://xxx.xxx.xxx.xxx/zabbix/setup.php ```    ## Zabbix agent安装 **ubuntu** ```bash # 安装Zabbix存储库 $ wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb $ dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb $ apt update # 安装agent $ sudo apt install zabbix-agent ``` **redhat** ```bash # 安装Zabbix存储库 $ rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm # 安装agent $ dnf -y install zabbix-agent ``` **修改zabbix agent配置文件** ``` $ cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak $ vim /etc/zabbix/zabbix_agentd.conf LogFile=/tmp/zabbix_agentd.log Server=192.168.10.128 #zabbix server ip ServerActive=192.168.10.128 #zabbix server ip Hostname = 192.168.10.130 ``` **启动服务** ```bash $ systemctl start zabbix-agent $ systemctl enable zabbix-agent ``` # 手动添加客户端 Zabbix ->configuration -hosts-Create host -Host name 和Agent interfaces,同时选择添加 templates 模板-选择Add -勾选Template OS Linux-选择Add 提交; - 注意:此处Host name 名称与Agentd.conf 配置文件中Hostname 保持一致,否则会报错。    查看监控主机数据: Monitoring->Hosts->Graphs   # zabbix配置详解 zabbix_server.conf 配置文件参数详解 ```bash DBHost 数据库主机地址; DBName 数据库名称; DBPassword 数据库密码; DBPort 数据库端口,默认为3306; AlertScriptsPath 告警脚本存放路径; CacheSize 存储监控数据的缓存; CacheUpdateFrequency 更新一次缓存时间; DebugLevel 日志级别; LogFile 日志文件; LogFileSize 日志文件大小,超过自动切割; LogSlowQueries 数据库慢查询记录,单位毫秒; PidFile PID 文件; ProxyConfigFrequency Proxy 被动模式下,Server 多少秒同步配置文件至proxy; ProxyDataFrequency 被动模式下,Server 间隔多少秒向proxy 请求历史数据; StartDiscoverers 发现规则线程数; Timeout 连接Agent 超时时间; TrendCacheSize 历史数据缓存大小; User Zabbix 运行的用户; HistoryCacheSize 历史记录缓存大小; ListenIP 监听本机的IP 地址; ListenPort 监听端口; LoadModule 模块名称; LoadModulePath 模块路径。 ``` zabbix_Proxy.conf 配置文件参数详解 ```bash ProxyMode Proxy 工作模式,默认为主动模式,主动发送数据至Server; Server 指定Server 端地址; ServerPort Server 端PORT; Hostname Proxy 端主机名; ListenPort Proxy 端监听端口; LogFile Proxy 代理端日志路径; PidFile PID 文件的路径; DBHost Proxy 端数据库主机名; DBName Proxy 端数据库名称; DBUser Proxy 端数据库用户; DBPassword Proxy 端数据库密码; DBSocket Proxy 数据库SOCKET 路径; DBPort Proxy 数据库端口号; DataSenderFrequency Proxy 向Server 发送数据的时间间隔; StartPollers Proxy 程池数量; StartDiscoverers Proxy 端自动发现主机的线程数量; CacheSize 内存缓存配置; StartDBSyncers 同步数据线程数; HistoryCacheSize 历史数据缓存大小; LogSlowQueries 慢查询日志记录,单位为毫秒; Timeout 超时时间。 ``` zabbix_agentd.conf 配置文件参数详解 ```bash EnableRemoteCommands 运行服务端远程至客户端执行命令或者脚本; Hostname 客户端主机名; ListenIP 监听的IP 地址; ListenPort 客户端监听端口; LoadModulePath 模块路径; LogFile 日志文件路径; PidFile PID 文件名; Server 指定Server IP 地址; ServerActive Zabbix 主动监控server 的ip 地址; StartAgents Agent 启动进程,如果设置为0,表示禁用被动监控; Timeout 超时时间 User 运行Zabbix 的用户; UserParameter 用户自定义key; BufferSize 缓冲区大小; DebugLevel Zabbix 日志级别。 ``` # 配置自动发现,创建发现规则   ```bash Name 规则名称; Discovery by proxy 通过代理探索; IP range zabbix_server 探索区域的IP 范围; Delay 搜索一次的时间间隔; Checks 检测方式,如用ping 方式去发现主机,zabbix_server 需安装fping,此处使用Agent方式发现; Device uniqueness criteria 以IP 地址作为被发现主机的标识。 ``` zabbix 发现规则创建完毕,客户端Agent 安装完后,被发现的IP 主机不会自动添加至Zabbix 监控列表,需要添加发现动作     至此,自动发现全部创建完成 可以点击Monitoring->Discovery,查看检测到的主机  # 问题汇总 ## 1、初始化页面报错  解决办法: ```bash sudo vim /etc/php/7.4/apache2/php.ini post_max_size =16M max_execution_time =300 max_input_time =300 date.timezone = Asia/Shanghai ```
阿星
2024年1月6日 18:01
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码