【Linux系统运维】软件安装部署实战--软件安装4-运维监控

一、运维监控Zabbix部署

1. 简介

Zabbix是一个 "企业级分布式开源监控解决方案" 。

Zabbix软件能够 "监控" 众多网络参数和服务器的健康度、完整性。Zabbix使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix基于存储的数据提供出色的报表和数据可视化功能。这些功能使得Zabbix成为容量规划的理想选择。

2. 安装

2.1 安装ZabbixServer需要先安装好`Mysql`数据库

bash 复制代码
# 1. 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

# 2. 跳过GPG检查安装MySQL
yum -y install mysql-community-server --nogpgcheck

# 3. 启动MySQL服务
systemctl start mysqld
systemctl enable mysqld

# 4. 检查服务状态
systemctl status mysqld

# 5. 获取初始密码
grep 'temporary password' /var/log/mysqld.log

# 修改root用户密码
mysql -u root -p -h localhost
Enter password:    #I_pberg(i3Tl
 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root!123';

2.2 安装Zabbix Server 和 Zabbix Agent

bash 复制代码
# 安装适用于CentOS 8的Zabbix 6.0 LTS仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm

# 清理缓存
yum clean all

# 安装Zabbix组件
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
问题&解决:
bash 复制代码
#1. PID 文件权限问题
#   zabbix-server.service: Can't open PID file /run/zabbix/zabbix_server.pid
# 创建 PID 目录并设置权限
mkdir -p /var/run/zabbix
chown zabbix:zabbix /var/run/zabbix
chmod 755 /var/run/zabbix

# 在配置文件中添加
echo "PidFile=/var/run/zabbix/zabbix_server.pid" >> /etc/zabbix/zabbix_server.conf

#2. Zabbix Server 日志配置缺失
#   ERROR: "LogType" "file" parameter requires "LogFile" parameter to be set
# 添加日志配置到 zabbix_server.conf
echo "LogType=file" >> /etc/zabbix/zabbix_server.conf
echo "LogFile=/var/log/zabbix/zabbix_server.log" >> /etc/zabbix/zabbix_server.conf
echo "LogFileSize=0" >> /etc/zabbix/zabbix_server.conf

# 创建日志目录
mkdir -p /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix

2.3 初始化MySQL数据库

bash 复制代码
# 登录Mysql 数据库
mysql -uroot -pRoot!123
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'Zabbix!123';
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by 'Zabbix!123';
mysql> CTRL+D

测试在Zabbix Server服务器上能否远程登录Mysql,如果可以登录继续向下走。

bash 复制代码
# 导入初始数据库结构
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
# 输入密码:Zabbix!123
问题&解决:
bash 复制代码
#1. 数据库用户创建语法错误,在 MySQL 5.7 及更高版本中,创建用户和授权的语法已经分开
-- MySQL 5.7+ 正确语法
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix!123';
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
FLUSH PRIVILEGES;

#2. 分布执行测试
# 第一步:解压 SQL 文件
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz > /tmp/zabbix_setup.sql

# 第二步:导入数据库(会提示输入密码)
mysql -uzabbix -p zabbix < /tmp/zabbix_setup.sql
# 输入密码:Zabbix!123

#3.数据库users 表是空,初始数据没有导入
# 查找包含初始数据的文件
find /usr/share -name "*.sql.gz" | grep zabbix | grep -v create
# 重新导入完整的数据库
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p'Zabbix!123' zabbix
# 检查 users 表是否有数据了
mysql -uzabbix -p'Zabbix!123' -e "USE zabbix; SELECT COUNT(*) FROM users;"

# 检查其他重要表
mysql -uzabbix -p'Zabbix!123' -e "USE zabbix; SELECT COUNT(*) FROM hosts;"

2.4 为Zabbix Server配置数据库

bash 复制代码
vim /etc/zabbix/zabbix_server.conf

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix!123
问题&解决:
bash 复制代码
[root@node1 ~]# /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf -f
zabbix_server 
[2810781]: ERROR: "LogType" "file" parameter requires "LogFile" parameter to be set

#1. 编辑 Zabbix Server 配置文件
vi /etc/zabbix/zabbix_server.conf
#文末添加
LogType=file
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
# 创建日志目录
mkdir -p /var/log/zabbix
# 设置正确的权限
chown zabbix:zabbix /var/log/zabbix
chmod 755 /var/log/zabbix
# 检查目录权限
ls -la /var/log/zabbix

2.5 配置Zabbix的PHP前端

bash 复制代码
#修改 /etc/httpd/conf.d/zabbix.conf
# 取消注释并设置:
php_value date.timezone Asia/Shanghai

systemctl restart zabbix-server zabbix-agent httpd # 启动、重启
systemctl enable zabbix-server zabbix-agent httpd  # 开机自启
问题&解决:
bash 复制代码
#1. 修改 /etc/php.ini
sed -i 's/^post_max_size = .*/post_max_size = 16M/' /etc/php.ini
sed -i 's/^max_execution_time = .*/max_execution_time = 300/' /etc/php.ini
sed -i 's/^max_input_time = .*/max_input_time = 300/' /etc/php.ini
# 验证修改
grep -E "^(post_max_size|max_execution_time|max_input_time)" /etc/php.ini

#2. 如果使用 PHP-FPM,检查其配置
systemctl status php-fpm 2>/dev/null && echo "PHP-FPM is running"

#3. 如果有 PHP-FPM,也需要重启
systemctl restart php-fpm 2>/dev/null

#4. 可选,httpd 和 nginx 端口冲突
systemctl stop nginx
systemctl disable nginx

2.6 配置zabbix 前端(WEB UI)

打开浏览器:http://node1/zabbix

bash 复制代码
#1.Zabbix Web 界面无法自动创建配置文件
#无法创建配置文件 "/etc/zabbix/web/zabbix.conf.php"
mkdir -p /etc/zabbix/web
chown apache:apache /etc/zabbix/web
chmod 755 /etc/zabbix/web
cat > /etc/zabbix/web/zabbix.conf.php << 'EOF'
<?php
global $DB;
$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'Zabbix!123';
$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = '';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
EOF

chown apache:apache /etc/zabbix/web/zabbix.conf.php
chmod 644 /etc/zabbix/web/zabbix.conf.php

初始账户密码Admin/zabbix ,登录

二、运维监控Grafana部署

Grafana支持常见的绝大多数操作系统,如windowsmac1inux同时也支持部署在docker中。

对windows mac系统或docker部署有兴趣的同学,请参考:https://grafana.com/grafana/download

1. 安装Grafana

bash 复制代码
# 创建grafana的yum源文件
sudo vim /etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

#保存退出后,安装grafana
yum install grafana -y

1.1 问题&解决:

  • 网络下载速度慢
bash 复制代码
# 删除原有配置
sudo rm -f /etc/yum.repos.d/grafana.repo

# 使用清华镜像源
sudo tee /etc/yum.repos.d/grafana.repo << 'EOF'
[grafana]
name=grafana
baseurl=https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/
repo_gpgcheck=0
enabled=1
gpgcheck=0
EOF

# 清理缓存重新安装
sudo yum clean all
sudo yum install grafana -y
  • GPG密钥验证失败
bash 复制代码
# 解决方案1:跳过GPG检查安装
sudo yum install grafana --nogpgcheck -y

# 解决方案2:修改repo文件禁用GPG
sudo tee /etc/yum.repos.d/grafana.repo << 'EOF'
[grafana]
name=grafana
baseurl=https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/
repo_gpgcheck=0
enabled=1
gpgcheck=0
EOF
  • 服务未找到:Failed to start grafana-server.service: Unit grafana-server.service not found.
bash 复制代码
# 检查是否安装成功
rpm -qa | grep grafana

# 检查服务文件
ls -la /usr/lib/systemd/system/grafana-server.service

# 如果未安装,重新安装
sudo yum install grafana --nogpgcheck -y

2. 配置MySQL数据库

bash 复制代码
# 登录MySQL(根据您的MySQL安装方式调整)
mysql -u root -p

# 在MySQL中执行
CREATE DATABASE grafana CHARACTER SET utf8 COLLATE utf8_general_ci;
exit

2.1 问题&解决:

MySQL连接被拒绝 (Error 1045): MySQL 8.0+ 默认使用 caching_sha2_password 认证插件,与Grafana不兼容

bash 复制代码
​# 修改认证插件为mysql_native_password
mysql -u root -p << 'EOF'
ALTER USER 'grafana'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Grafana1123';
FLUSH PRIVILEGES;
SELECT user, host, plugin FROM mysql.user WHERE user = 'grafana';
EOF

​

3. 配置grafana

bash 复制代码
sudo vim /etc/grafana/grafana.ini
[database]
# 数据库类型
type = mysql
# 数据库连接信息
host = 127.0.0.1:3306
name = grafana
user = root
password = Grafana!123

# 使用TLS连接(根据实际情况调整)
ssl_mode = disable

# 其他保持默认或根据需要调整
max_idle_conn = 2
max_open_conn = 0
conn_max_lifetime = 14400

4. 启动Grafana服务

bash 复制代码
# 重新加载systemd配置
sudo systemctl daemon-reload

# 启动grafana服务
sudo systemctl start grafana-server

# 设置开机自启
sudo systemctl enable grafana-server

# 检查服务状态
sudo systemctl status grafana-server

5. 访问Grafana

打开浏览器访问:http://node1:3000 默认账户密码:admin/admin

相关推荐
Robpubking1 小时前
elasticsearch 使用 systemd 启动时卡在 starting 状态 解决过程记录
linux·运维·elasticsearch
t***L2661 小时前
DevOps自动化部署
运维·自动化·devops
2501_941800882 小时前
Python高性能日志分析与Elasticsearch实战分享:海量日志索引、检索与可视化优化经验
运维·jenkins
CIANTECH_Heidi2 小时前
精准配置重构光模块成本效能:深圳光特通信1X9、SFP单收/单发光模块
运维·服务器·网络·数据库·光模块
尹蓝锐3 小时前
Linux解压各种压缩包命令
linux·运维·服务器
叫致寒吧3 小时前
web和Nginx的搭建
运维·nginx
z***I3944 小时前
Docker书籍
运维·docker·容器
小嘟嘟26794 小时前
Linux-奇怪的No such file or directory
linux·运维·服务器
shizhan_cloud4 小时前
iSCSI 服务器
linux·运维