实战综合:企业级监控(上)
1、内部自建的http文件服务器
- nginx服务器
- 管理文件
安装nginx
检查下是否有安装gcc、openssl
gcc --version
openssl
没有的话需要安装gcc、openssl
yum gcc openssl
yum install pcre pcre-devel
yum install zlib zlib-devel
下载nginx包
wget https://nginx.org/download/nginx-1.24.0.tar.gz
解压nginx gz包
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure \
--prefix=/opt/nginx \
--with-http_realip_module \
--with-http_sub_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-pcre
make
make install
创建nginx用户 (useradd -M -s /sbin/nologin nginx
命令将创建一个名为nginx
的新用户,不为其创建主目录,并设置其登录shell为/sbin/nologin
,这意味着这个用户不能登录系统)
useradd -M -s /sbin/nologin nginx
添加nginx service文件
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx -high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载服务
systemctl daemon-reload
启动nginx
systemctl start nginx
配置nginx.conf配置文件
charset utf-8;
location / {
root /nginx_packages;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
-
root /nginx_packages;
这一行定义了当请求匹配这个location
块时,Nginx应该在哪里查找请求的文件。在这个例子中,所有以/
开头的请求URI将会从/nginx_packages
目录中查找对应的文件或目录。例如,如果客户端请求/image.jpg
,Nginx会在/nginx_packages/image.jpg
中查找这个文件。 -
autoindex on;
当请求一个目录而不是具体的文件时,这一行将启用自动索引功能。这意味着Nginx会生成一个目录列表,并发送给客户端。如果autoindex
被设置为off
(默认是关闭的),请求目录将会返回403 Forbidden错误。 -
autoindex_exact_size off;
当启用自动索引时,这个指令控制目录列表中文件大小的显示方式。设置为off
时,文件大小将以易读的格式(例如 KB, MB)显示,而不是精确的字节数。设置为on
则会显示精确的文件大小(字节数)。 -
autoindex_localtime on;
这个指令控制自动索引中时间的显示方式。当设置为on
时,目录列表中的时间戳将会以服务器本地时间显示,而不是GMT(格林尼治标准时间)。如果设置为off
,时间戳将以GMT显示。
文件配置好后,重启nginx服务
systemctl restart nginx.service
创建访问目录
mkdir /nginx_packages
拷贝文件到packages目录
cp nginx-1.24.0.tar.gz /nginx_packages/
递归方式更改上面文件目录所属主
chown nginx.nginx -R /nginx_packages
测试下是另一台机器下载该文件
wget http://192.168.242.134/nginx-1.24.0.tar.gz
看到测试成功
http服务器搭建完成
为了方便管理一些常用的文件可以统一放置在这个文件服务下
2、ansible:解决大规模集群自动化运维的神器
- 同时连接数十台服务器
- 批量执行操作
- 检测健康度
ansible安装
安装epel源
yum install epel-release
yum install ansible
mkdir ansible
cd ansible
vim ansible.cfg
vim hosts
使用公钥方式登录
ssh-keygen
在这个目录下可以看到私钥和公钥
ls -l ~/.ssh/
id_rsa
id_rsa.pub
使用ansible传公钥文件到各服务器
创建目录
ansible node_exporters -i hosts -m shell -a 'mkdir /root/.ssh'
传送文件
ansible node_exporters -i hosts -m copy -a 'src=/root/.ssh/id_rsa.pub dest=/root/.ssh/authorized_keys'
批量ping hosts文件里配置的服务器
ansible node_exporters -i hosts -m ping
node_exporters表示hosts文件中设置的 192.168.242.132 192.168.242.131机器
黄色部分表示执行成功
发送公钥文件
ansible node_exporters -i hosts -m copy -a 'src=/root/.ssh/id_rsa.pub dest=/root/.ssh/authorized_keys'
现在可以直接ssh免密连接到其它机器
ssh 192.168.242.131