ELOG 是一个简单又实用的电子日志系统, 安装、部署、使用都很方便。 本篇主要介绍一下 ELOG 的安装、运行与配置。

Elog 的安装与运行

安装 Elog

从 2.0 版本开始, Elog 就开始提供一个 x86 版本的 RPM 安装包, 可以从 下载 下载安装, 目前是版本是 3.1.3.

1
$ sudo rpm -ivhU elog-3.1.3-1.i386.rpm

这会在 /usr/local/sbin 下安装 守护程序 elogd, 并将 elogelconv 安装到 /usr/local/bin/ 下, 配置文件 elogd.cfg 连同一个简单的 logbook 会被装到 /usr/local/elog/ 下,启动脚本 elogd 则被安装到 /etc/rc.d/init.d/ 目录下。

也可以通过源码包自己编译安装 Elog, 从这里 最新的版本 elog-latest.tar.gz,解压后直接 makesudo make install 就可。 Elog 依赖于 libssl,需要安装上 libssl-dev。 安装结果与安装包一样。

运行 Elog

安装好后,默认配置很简单,其监听端口为 8080,可以通过如下命令启动 Elog:

1
2
3
$ sudo /etc/rc.d/init.d/elogd start
### or
$ sudo service elogd start

停止 Elog

1
$ sudo service elogd stop

重新启动 Elog

1
$ sudo service elogd restart

设置自动启动 Elog:

1
2
$ sudo chkconfig --add elogd
$ sudo chkconfig --level 345 elogd on

RPM 安装包会创建一个 elog用户和组, 守护程序会以 elog 用户运行。 如果源码安装, 建议也创建一个 elog 用户和用户组。

在浏览器中访问 http://your.host/ , 就会看到默认的 logbook,例如:

安装 ImageMagick

当有图像添加到 Elog 条目里时,elog 可以很快地生成缩略图, 这些工作都是由 ImageMagicGhostScript 完成的,因此需要安装这两个包。

1
$ sudo yum install -y ImageMagick ImageMagic-perl ghostscript ghostscript-chinese

不安装这两个包, Elog 也会正常运行,但不会生成缩略图。

Elog 服务端设备

ELOG 守护程序 elogd 可接受以下选项:

1
$ elogd [-p port] [-n hostname/IP] [-C <url>] [-m] [-D] [-c config] [-s dir] [-d dir] [-v] [-k] [-f file] [-x]

各选项含义如下:

  • -p : HTTP 服务监听的TCP 端口号
  • -n <主机名 或 IP 地址>: 在主机有多个 IP的情况下,指定 ELOG 应该运行在哪个 IP上
  • -C : 远程克隆配置文件
  • -m 与远程的服务器同步 logbook
  • -M 同步删除条目
  • -l : 额外指定 logbook 给 -m and -M 命令
  • -D 以守护进程运行
  • -c : 如果 -D 被使用,需要指定配置文件的完整路径
  • -s : 指定 主题icons 等资源文件夹
  • -d :指定 logbook 的根目录
  • -v 输出详细的信息以用来 debug
  • -k 不使用 TCP keep-alive
  • -f : 指定 elogd 运行时的 pid 文件
  • -x :可以执行 shell 命令

使用安全连接

目前越来越多的网站开始使用 ssl 来加密连接, ELOG 也支持使用 ssl 来保证安全。 有几种方法可以实现。

单独使用 ELOG

ELOG 从 2.7.3 开始, 就支持通过 安全套接字层(SSL) 来加密连接。 如果使用了密码,强烈建议使用 HTTPS 连接。
要启用这一功能, 需在 配置文件中加入 SSL = 1URL = 如果使用了,也要改成 https://.... ELOG 自带了一个自签的证书在 ssl 子目录下, 但可以换成自己的真实的证书以免浏览器提示证书问题。

使用 Apache 或 Nginx

这里使用 Nginx 为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
### ssl
ssl_certificate /my/certificate/cer;
ssl_certificate_key /my/certificate/key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security max-age=2592000;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA";

### elog
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;

server_name your-elog-server-name;

if ($scheme = http){
return 301 https://$server_name$request_uri;
}
location / {
#if root is not default, you must write here
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
}
}

使用 SSH

使用 SSH 的隧道技术, 将远程的 8080 端口映射到本地的端口,比如 1234

1
$ ssh -L 1234:your.server.name:8080 user@your.server.name

这样,就可以访问 http://localhost:1234 安全地访问 ELOG 了。

Elog 配置

ELOG 的外观,功能等等都是由单一的 elog.cfg 决定的,可以直接在 Web 端修改,也可以编辑修改再重启服务。默认的 elog配置 /usr/local/elog/elog.cfg 非常简单,需要根据需自己进行设置。 elog.d.cfg syntax 这里给了详细的介绍。

… to be continued ..